22 ms·
Non-Apple's Mistake
- cpr 17y agoAmid the ranting, he's making a good point. And that is that there is no serious competition for the hard combination of serious good taste, obsession with details that seem negligible but ultimately matter a lot, etc., embodied in Apple's recent products. I know this sounds like raving Apple fanboy stuff, but I do think it's rarely acknowledged explicitly; it's either assumed by those in the know, or ignored by those not. For example, I would never in a million years want to develop Android software; why? Because it's written in a language I loathe, and the API is workmanlike but completely uninspired (disclaimer: I've never written any code for it). In contrast, the Cocoa Touch APIs are delightful, and MIT-style (vs. New Jersey) at most levels. Perfect? No. Amazingly crafted? Yes. I claim the secret sauce to their APIs is actually a character at Apple named Ali Ozer who, along with his crew, has maintained a firm hand on the tiller, and learned a huge amount about object-oriented design for interactive systems over the past couple of decades. iPhone OS is the result of throwing out a lot of the cruft and starting over, but keeping the hard-earned knowledge. (Core Animation being one of the key underlying technologies for iPhone OS that found its way back to the desktop, but only partially due to all the cruft in normal desktop Cocoa.) And Apple works hard at the silicon-to-UI whole-stack integration and performance tuning, something that other vendors famously haven't been able to do (because they don't control the whole stack), or haven't wanted to do. Microsoft has recently figured this out, according to Ballmer, and intends to do the same. I could go on, but I'm sure I'll get downmodded to death already. ;-)
- pohl 17y agoThank you for making me Google "mit style versus new jersey style". I had heard of "worse is better", but had not heard those terms: http://en.wikipedia.org/wiki/Worse_is_better http://en.wikipedia.org/wiki/Worse_is_better
- deleted 17y ago[deleted]
- fr0man 17y agoYou loathe Java but you like Objective-C? Madness.
- cpr 17y agoYes, because Obj-C is truly just Smalltalk with C-style control structures. Maybe I'm damaged, because I've used Smalltalk in a previous existence, and loved it. Java is not a dynamic language.
- ajross 17y agoFor what definition of "dynamic language" is that statement true? Both languages do late binding of methods to objects, Java merely happens to smear on a layer of typesafety above it. Frankly, the two languages are semantically all but identical, modulo the ability of Obj-C to fall back to a "bare memory" data model when you want to.
- astrange 17y agoThey certainly don't bind methods to objects at the same time - Obj-C does it when you send the message. You can send and catch messages with no methods attached to them, or that weren't even declared in the first place (at the expense of a compiler warning). Of course there are other differences, but the most important one is just that the class library is much better - UI doesn't rely on inheritance, there's no class named LinkedHashMap (see http://ridiculousfish.com/blog/archives/2005/12/23/array/ http://ridiculousfish.com/blog/archives/2005/12/23/array/), and there _is_ a class named NSMutableArray.
- deleted 17y ago[deleted]
- catch23 17y agoYou can do mixins fairly easily in ObjC, but in Java, you'd essentially have to resort to runtime bytecode rewriting. Take a look at what popular libraries like Hibernate, Spring, AspectJ use under the covers to perform their magic.
- vito 17y agoThe nice thing about Android is you don't have to use Java. Many other languages target the JVM, which is often trivial to convert to Dalvik (it depends on the language). Right now I'm working on an entire app in Duby (a Ruby-like language with static typing and type inference, with no baggage; reaches native Java speed easily), and loving it. All I had to do was change my compile command to dubyc and I was ready to go. JRuby is in the works, and apparently Scala is possible, and I'm sure many others are working on it too. I've never written an iPhone app, and this is my first Android app, but I find the API and the SDK to be perfectly easy to work with; it was very easy to get started and quickly start prototyping. I'd like to know what parts of the Cocoa APIs you consider delightful though, just out of curiosity.
- amock 17y agoWhat makes Cocoa and Cocoa Touch really nice isn't that parts of them are delightful, it's that all of the parts work really well together. They were written to take advantage of Objective-C and the tools were built for using them. Interface builder makes UIs really easy and CoreData makes persistence almost automatic. You should try building an iPhone app and see how it compares.
- orangecat 17y agoYou should try building an iPhone app and see how it compares. I have, and Android wins for me. Cocoa Touch is a decent API (in most cases; what's with NSImage vs CGImage vs CIImage?), but Objective-C is seriously outdated. It usually needs more boilerplate than even Java, and manual memory management, lack of namespaces, and header files are silly in 2010.
- KirinDave 17y agoWell ObjC straddles a very interesting place. It's as low-level as C++ but has high level message passing method dispatch as well. If it seems a little crufty, it's because it's living in a very peculiar place trying to serve a variety of masters. Hopefully 4.0 will start to pave the way for the ObjC2.0 stuff to come to iPhone. They are really big improvements to the language. Also, rule-based syntax translators could give you a ton of stuff as a preprocessing pass to your code. Write something for NSArray literals and you'll be a hero.
- gamble 17y agoApple designs a product knowing it will sell millions of copies, so it makes sense for them to spend the time to get it right. PC manufacturers have greater volume, but no individual product is anywhere near as ubiquitous as a Macbook Pro or iMac. They're stuck in a trap where no single model can sell well enough to justify an Apple level of quality even if they had the design sense to produce one.
- mattparcher 17y agoClose, but Apple's real secret is that they make premium products, with profit margins that allow them to invest in researching the next big thing and spend time doing it right. Dell, HP, Sony, Acer, Toshiba, Lenovo: these guys live and die by razor-thin margins of the "we'll make up for it in volume" strategy. Ultimately I think a (un)healthy share if consumers just don't care about the details of the experience enough to spend more money.
- WildUtah 17y agoAndroid software; why? Because it's written in a language I loathe Okay, you despise Java -- and that's fine -- but you prefer a product that can only be programmed in Objective-C? Schizophrenia much? I've written for both platforms. Cocoa Touch with XCode is certainly nicer than Android but Android's language is slightly better than the choices available for iP[ad|hone]. Either of them would be nicer with Python, Ruby, Lisp, or even JavaScript.
- KirinDave 17y ago> Okay, you despise Java -- and that's fine -- but you prefer a product that can only be programmed in Objective-C? Schizophrenia much? I don't see how holding an opinion would constitute schizophrenia. What's inconsistent about this choice?
- KirinDave 17y ago> I claim the secret sauce to their APIs is actually a character at Apple named Ali Ozer who, along with his crew, has maintained a firm hand on the tiller, and learned a huge amount about object-oriented design for interactive systems over the past couple of decades. I agree with this. One of the things that makes most Apple APIs great is that they are not part of the Taligent legacy that so infects other languages. They keep class hierarchies relatively flat and lean heavily on the relatively inexpensive delegation that ObjC offers. It's very refreshing and feels far more smalltalk-ish than Java-ish.
- dannyr 17y ago"I would never in a million years want to develop Android software; why? Because it's written in a language I loathe, and the API is workmanlike but completely uninspired (disclaimer: I've never written any code for it). " i.e. I'm making a judgement on something I'm ignorant about and never made an effort to know.
- bmalicoat 17y agoI've done Android stuff for a year or so and vastly prefer Cocoa Touch. However the OP is wrong, Android is inspired, they are inspired to use idiotic API names; spinner (rather than picker, chooser, or dropdown), toast, intent, etc.
- nitrogen 17y agoWhat is a picker or chooser? I know exactly what a spinner is: it's named for a spinning number control (like a mechanical odometer with a knob), unless they're using "spinner" to describe something completely different from what a spinner is in desktop UI parlance. My point is that the API decisions are probably based on experience with a different developer culture, in which those words make perfect sense and "picker" and "chooser" are completely vague. Different groups have different terminology.
- bmalicoat 17y agoI agree the odometer-style widget makes sense as a spinner, this [1] doesn't in my opinion. First choice would probably be popup menu or drop down possibly, then picker and chooser. [1] http://www.designerandroid.com/wp-content/uploads/2008/11/dspinner_5.png http://www.designerandroid.com/wp-content/uploads/2008/11/ds...
- nitrogen 17y agoOkay, I stand enlightened. Yeah, popup, drop-down or combobox makes more sense for a radio button popup list.
- 17y ago
- deleted 17y ago[deleted]
- barrkel 17y agoI'm not sure why "Microsoft free" is a product category? I mean, if you start out from such an odd ideological position, there's no telling what else you can convince yourself of.
- pohl 17y agoThe tacit claim that you're making here is that ideology is the only possible reason that one might have for wanting to avoid any particular vendor. Maybe you need to support that claim a bit. Surely a company of their magnitude has a healthy share of run-of-the-mill disgruntled former customers.
- wmf 17y agoWhile there are legitimate reasons to avoid MS products, it's lazy for the author to say "Microsoft-free" without explaining why. Also, it may not be wise to hold grudges when the original reason is gone (e.g. Win7 is a lot better than old Windows).
- daeken 17y agoBy saying "Microsoft-free", you're generally saying "I don't want to use this company's products, regardless of the product." That's ideology, period. There are obviously exceptions to this, but in 99% of cases, it's ideology.
- notauser 17y agoTo pick one particular nit: The fabled Google Android? It is entirely the piece of junk one ought to expect from a development process driven by committees and steered by non-creative minds. And it appears that many would-be buyers know it. The actual numbers are around 100k/day (iPhone) vs 60k/day (Android). Considering that Sony Ericsson and LG still coming up to speed, so those sales are mostly HTC+Motorola, that's pretty impressive. It's also missing the point that others are free to design their own UI on top of Android and indeed the big players are. Sense (HTC) is really rather nice and definitely doesn't feel like it was designed by a committee. Edit: Here's a source for the sales numbers http://industry.bnet.com/technology/10005344/android-unit-sales-catching-iphones/ http://industry.bnet.com/technology/10005344/android-unit-sa... - I'm afraid the opinion about Sense is just my own personal view.
- danudey 17y agoIt's also missing the point that others are free to design their own UI on top of Android and indeed the big players are. Sense (HTC) is really rather nice and definitely doesn't feel like it was designed by a committee. But this can be a downside as well. You say 'Android' and people associate the one with the other, but there are a multitude of 'Android' devices which are either inherently incompatible (http://news.cnet.com/8301-17938_105-20002508-1.html http://news.cnet.com/8301-17938_105-20002508-1.html) or whose basic interfaces are different enough because of that customization that it can be confusing to initial users. Also, the fragmentation of Android by hardware leads to fragmentation by software. Software designed for too large of a screen might not work on smaller screens. Software designed with a hardware keyboard in mind might not work on the onscreen keyboard. People are still selling Android phones with version 1.6 on them, which won't run software requiring newer versions (which software won't show up in the marketplace at all, confusing users). Customization is great, but by not mandating any sort of rules, the market is getting fragmented in a lot of different ways, and people are just going to get more confused, presented with an overwhelming list of options. This one has a hardware keyboard, this one has better GPS, this one has newer software, this one is faster, this one has a higher-resolution screen. The very purpose behind Android - customization, distinguishing yourself from the competition - is what fragments the market. Apple's approach, however, is very simplistic. Here's the iPhone. How much storage do you want? 16GB? Ok, here you go. Apps will work. Accessories will work. Cables will work. Cases will fit. There's little to no confusion for the user. That seems to be what the original article is suggesting. Simplicity and ease of use that starts before you even make your purchase.
- drivebyacct 17y agoThis article is simply obnoxious. Pathetic ramblings about how great and unique Apple is just because he doesn't like the software offered by Microsoft or the hardware offered by its competitors. Then just cheap, inaccurate, unarticulated attacks on Android.
- technomancy 17y agoThat's par for the course for this guy. No surprise here.
- voxcogitatio 17y agoIt continues to amaze me how many and adamant apple's apologists are. Stockholm syndrome?
- alanh 17y agoOops, we're all spambots now: http://www.loper-os.org/?p=91 http://www.loper-os.org/?p=91
- vtail 17y agoIt seems that most people's strong reaction to Apple's decision is not just because it's a mistake (which I think it is), but because it directly affects their life and there is no serious alternative to avoid the consequences. Example: I don't really care what restrictions Microsoft will impose on developers for its next phone OS, because I don't care about their products. It does matter for me, however, that Lotus Notes design is horrible (and getting worse with every version), as that's what I'm forced to use at work and there is no alternative for me. If HTC/Android were such a strong alternative to iPhone/iPhone OS, most developers would simply ignore Apple's move: "They made a stupid decision?" - "Very well, our community and market share will grow as a result". Unfortunately, as Stanislav notes above, for many developers and users there are not many alternatives to the iPhone, with it's high quality design and strong eco-system. And that's what makes people furious.
- gamble 17y agoExactly. The real problem with the anti-Apple arguments is that - for the moment - Apple's behavior hasn't hurt them. The iPhone still has more apps, and iPhone owners are far more likely to buy apps. The Android app store is still a wash, despite all Android handsets sold this year. I think that in the long run Apple's App Store policies would hurt the iPhone if they weren't willing to make the platform more open, but the walled garden approach probably makes more sense while the public is still getting used to the idea of mobile applications. Apple deserves some credit for persuading people to actually pay for software. How much does the average person spend on third-party software for their PC? Judging from how much shelf space Best Buy devotes to PC software, I'd bet it's pretty small compared to what people are spending on apps now.
- stanleydrew 17y agoThis seems a rather trollish article. Sadly hn appears to have taken the bait.
- joe_the_user 17y agoAmazing article, raises crucial questions. What is to be gained from corporate sainthood? From a refusal to fleece eagerly willing suckers for all they’re worth? Long-term Loyalty of those who matter? It's a question worth pondering. The point that Apple rests on good protocols, from GUIs to APIs is also key. I don't think that only Steve-Jobs-like-management produces such things but the need for a protocol spring-forth from a consistent idea is absolutely crucial. It has happened in past - the Ruby language is cool example (and it's not a coincidence that Ruby is more or less the idea of Matz but it can be the idea of Matz without us suffering the dictatorship of Matz). Especially for open source development, we should be asking how we can duplicate that process at a high level - and not copying friggin awful GUI elements from Aero.
- grellas 17y agoHuman creativity can never be bent over a sustained period to the will of one man, however gifted and prodigious he may be, and especially in an area so vast and fruitful as that of digital creativity. That is why Steve Jobs, all-powerful as he may be today, will (if he is not careful) watch developers gleefully flee from his grip as occasion permits at some point in the future, or from the grip of his company if he is no longer around to affect the outcome directly. I am not a developer and I do not pretend to know how developers think but I have worked with countless developers over the years and still remember them chafing, for example, under Microsoft's sway in the 1990s even as they were forced to conform to its arbitrary and often harmful edicts and dictates that so affected their financial well-being. Well, Microsoft got away with it for a long time but burned its goodwill in the process (Microsoft had goodwill? You bet. In the 1980s, developers were tripping over themselves to get their new apps out in sync with Microsoft's initiatives and a regular amen chorus would sing Microsoft's praises at every such step - with a breathless PC Magazine and many others waiting to review every step and a herd of authors primed to write about them). Today, Apple is dominating in an analogous vein and getting away with it, but it too is beginning to burn the goodwill it has had over many years with significant groups of loyal developers who now have no choice but to adhere, however grudgingly, to the ever-changing and seemingly capricious guidelines and restrictions being imposed upon them by Apple in hopes of continuing to build their companies or preserving their livelihoods. Perhaps its all-controlling policies will prove benign and wise and will only serve to maintain quality on its various platforms, as the company and its apologists contend. If, however, Apple is instead headed down a more nefarious path, there is nothing that will eventually shield it from the resentment and abhorrence it will face from developers as it burns goodwill with each step it takes in that direction. It was precisely those loyal developers who carried Apple through its darkest days, when by all accounts it should have failed as a company, and it will be precisely those developers who will in time be nowhere in sight should Apple permanently burn them.
- api 17y agoWords cannot describe how right he is. Apple is becoming an 8000 pound gorilla because nobody else can design a user interface! Windows is crap committee-ware, and open source UIs insist on imitating Windows (look at Gnome, KDE) which means they're imitation crap. There are other aspects to Apple that matter too. Their code performs well and doesn't tend to break. There's a polish that Apple's code has that nobody else puts on their product. Their hardware is decent (not excellent, but decent) on the quality factor too, but it's also well-designed just like their UIs are. The biggest feature of Apple's hardware is what it doesn't have: loads of useless buttons (stupid blue ThinkVantage button, I'm looking at you!), connectors you never use, etc. Note that Linux rules the server space for the same reason. Open source UIs are crap, but under the hood the open source ecosystem obviously cares. So in markets where under the hood matters most, Linux and other OSS operating systems are the dominant players. The moral of the story? Stop listening to the idiots that tell you that the way to design software is to slap it together and focus exclusively on marketing. This only works if your market is not crowded. This worked for Microsoft in the 80s and 90s because there weren't many affordable alternatives. People actually do care about quality.
- mojuba 17y agoPeople care about aesthetics, and quality is, I think, one form of it. Can't agree more, and I think there could have been many more Apples if more companies were run by technical people with a good sense of aesthetics (in a broader sense), rather than by business people.
- doron 17y agoI disagree, Apple's offering in terms of servers (both hardware and software) is downright ridiculous, no ability to virtual the servers. and the software doesn't scale well (they are very far from Microsoft in that regard). Disclaimer: All the desktop hardware we use are Apple, but we switched the OS's to windows 7, its more suitable for an organization.
- jon_dahl 17y agoApple's aesthetics are important, no doubt. But equally important was its decision to standardize its computers on BSD and Intel. Before OS X, Apple was a niche product, and its niche didn't include most developers. After OS X, the dev community started to trickle in, but it really took off after the Intel switch. Partly because the Core Duo was much faster than the PowerPC, but also because the PowerPC was a form of lock-in. It kept good software out, and made it hard to develop for other platforms. Apple owes a lot to standardization and opening up. It's not all App Store lockdown. The question is, is this App Store crap a general trend? Are they going to bring that to the desktop?
- jrockway 17y agoNo one else makes a portable where every hardware component simply works, including suspend mode, while entirely freeing me from Microsoft. Uh, everyone makes this? All decent laptops are Centrino these days, and guess what, all that hardware works fine under Linux. I haven't owned a machine in years that wasn't perfectly supported by Linux. Suspend / hibernate also works fine with modern BIOSes.
- asciilifeform 17y ago> Uh, everyone makes this? All decent laptops are Centrino these days Which laptop maker will sell a machine where every single hardware component is guaranteed to work perfectly under Linux? Without endless driver-hunting, Dependency Hell, crashes, and "small" but intolerable imperfections. My Centrino-based Thinkpad (circa 2007) failed to properly suspend the video chip under a perfectly-configured Linux, draining a freshly charged battery in only twelve hours. Note that I do not care if this (documented) bug has since been fixed. Neither do I care just who was at fault (the chip vendor, for failing to release docs; the slacking developers; the devil - I simply don't care.) Such cases are rampant, the culprits are unrepentant, and there is no vendor which will offer a money-back guarantee of nothing of this kind happening. > Suspend / hibernate also works fine with modern BIOSes. Which ones? Is this authoritatively documented anywhere, in real time? What is "fine"? Apple-fine, Microshit-fine, or sea-of-hacks-Gentoo-fine?
- deleted 17y ago[deleted]
- nnutter 17y agoHe's right about how Apple got here but now that it's #1 they are using contract law to maintain a monopoly. No less evil than Microsoft at its worst.
- mattmaroon 17y agoThis is silly. I could take a dump and then say I have a monopoly on things floating in my toilet. It's true, but meaningless. Most people don't desire to be "freed from Microsoft". They don't give much of a damn one way or the other. They want a $600 laptop so they can check their Facebook page. If having a monopoly on something only some tiny % of users (not even all Mac users, which is 5%) care about ever becomes illegal, I'm expatriating. Legally speaking Apple is doing nothing wrong. And ethically. Whether their walled garden approach is a solid business decision remains to be seen but it's not monopolistic. Other companies do make great CE devices. Ignore phones (a topic about as fruitful to argue over as religion) and you can probably think of 10.