Nexus 7

Nexus 7, iPhone 4, and Kindle Fire
Nexus 7, iPhone 4, and Kindle Fire

My Nexus 7 (16GB) showed up yesterday — two business days after I ordered it. Shortly after activation I received my $25 of Google Play credit which kind of nullified the non-free shipping (insofar as $25 Google Play credit can be considered to be worth $25).

Cutting to the chase: I like it. Overall, I like it better than the (nearly one year old) Kindle Fire. (I like the Kindle Fire a lot more now than when I got it because of significant improvements to the OS, including password protection for purchases.)

My wife and I recently changed jobs, as a result of which we both had to give up employer-provided iPad 2s, and we’re now using our old iPads when the girls let us. So the contrast in performance between the iPads and the newer Android (ish) devices couldn’t be made more stark, and by-and-large it’s not terribly stark. In flat out performance (e.g. loading complex web pages) the newer devices are noticeably faster, but in general use the iPads are more fluid and pleasant, which seems to indicate to me that there are fundamental architectural issues in Android which are never going to be fully addressed (much as Flash sucked in ways Adobe simply couldn’t fix).

Seven Inches

I find both the Kindle Fire and the Nexus 7 to be totally usable for reading, web surfing, and watching video. If anything, I would suggest they are — overall — slightly superior devices to the iPad for those purposes for the simple reason that smaller size, lower weight, and better performance trump display size.

As soon as it comes to use as a computer substitute, the iPad simply wins. I have bought Sketchbook for all three devices (I have the cheaper phone-centric version on the Kindle Fire). I am a huge sketchbook pro user and I find the 7″ version to be frustrating at best (at least the Kindle OS has been improved such that it’s not horribly jerky any more).

Android v. iOS

As alluded to before, based on the jerkiness of Android 4.1.1 (insert dessert name) on the Nexus 7, Android’s UI/graphics subsystem is significantly behind iOS and it’s not going to catch up. But aside from the niceties of UX animation, I’m not sure that matters. If UX mattered that much, Microsoft wouldn’t have been worth more in 1999 — in inflation-adjusted terms — than Apple is today. Yes, these are different times, but give most people a 30% discount and make their UX clunkier and less tasteful and they’ll say “why yes, I will buy a new PC”. (As Don Norman mentions in the Design of Everyday Things, even his family is not immune — opting for price or features over aesthetics and usability when purchasing things like stovetops.)

Icons: one area where the Nexus 7 is seriously (but trivially) handicapped is aesthetics. While the system as a whole looks quite nice, there are some truly horrible icons. For example, the “Applications” icon — a white circle with six small white squares in it — which manages to be unintuitive, ugly, impossible to remove or replace (as far as I can tell — I’m sure it can be replaced) and locked to the center of the “dock”. There are plenty of butt-ugly icons — the music app is a pair of orange headphones that look like an escapee from Program Manager circa 1994, and the book reader is a blue book cracked open to face away from the user.

System: I find the basic Android “launchpad”, at least for the Nexus 7, to be pretty confusing. The Kindle Fire was pretty bad, but I’ve gotten used to it, and find it quite pleasant now. That said, once I figured my way around there are some ways in which the Nexus 7’s UI is markedly superior to both iOS and (as I understand it not having used it for more than a few seconds) Windows Phone 7. In essence, “widgets” (which are provided by apps) allows you to allocate a subgrid of icons in the launcher screens to be a small panel owned by an app. E.g. a mail widget might display a small inbox.

If there were one feature of the Nexus 7 / Android which I would like to see Apple copy into iOS it would be widgets. On the screen of my Nexus 7 in the photo you can make out the Gmail widget, an analog clock widget (sigh), a calendar widget, and a Flipboard widget.

Applications: iOS is ahead but the gap is definitely closing. Angry Birds — yes. Sketchbook Pro — yes. Tiny Wings — no. Grand Theft Auto Chinatown Wars — no. And, notably, when you try to search for games like Infinity Blade the name autocompletes (it’s a common search) but you get nothing but crapware. Perhaps more importantly, Pages — no. iMovie — no. Apple itself makes nicer software than Google and this has follow-on effects on the ecology that don’t change (just look at how Microsoft’s poor and inconsistent application design degrades the entire Windows ecosystem, or how Apple’s worst missteps — metal! — have been imitated slavishly).

One area where Android excels compared to iOS is its openness. I’ve got Firefox and could easily install one of a number of programming environments that don’t have any of Apple’s restrictions (e.g. Codea on the iPad won’t let you share your code with anyone else, short of email and copy-and-paste). The fact that there are no compelling development tools on Android (that I can see) is pretty telling.

Installing Apps: when I first tried to install an app I got mysterious errors which turned out to be quite common (the solution was to turn Gmail syncing off and on). Once I got it working I found installing new apps markedly quicker and more painless than achieving the same thing in iOS (and I appreciate having automatic update as an option, although I’d prefer it to be on a per-app basis). (Also — hint to Apple — I’d like to be able to delete an app instead of update it.)

Silos: why is there a Message app and a Talk app? Why is there a Gmail app and an Email app? And why a navigation app and a Maps app? If Apple’s insistence on dividing communication into silos based on the medium is annoying, Google’s rises to mystifying. At least on my iPhone I can see email from Gmail, Exchange, and vanilla POP and IMAP in one place.

3D Game Performance: I know that the Nexus 7 should be running rings around the iPad (and iPhone 4) but from my brief experiments with 3d games (I tried Pocket Legends and Space Legends, both from the same vendor, which may be telling) I found games to run more choppily on the Nexus 7. In any event the difference wasn’t marked, so I call it a wash.

Notifications: Android fans make a lot hay over the superiority of Android notifications. Thus far, I’d call it a wash (perhaps Android’s the weird little icons in the sometimes-visible “menubar” will prove to be helpful).

Content Offerings: Google’s Play store is ubiquitous but a tad confusing. On the one hand they offer you the option to get everything from magazines to apps to movies in one place, on the other hand there are a ton of different storefronts that are all slightly different. One thing I found pretty annoying is that it’s not made clear whether the “price” of a movie is purchase or rent (or what resolution is being sold to you). And, in the end, it just seems to be the same stuff sliced up differently (insert joke about Taco Bell’s menu options). In the end, Kindle, Netflix, and Hulu+ all run dandy on the Nexus 7 (I noticed Super 8 was available via Netflix streaming and watched it last night).


None really. I like the Nexus 7, and I think it’s a worthy competitor to the iPad in a Windows vs. Mac kind of way (i.e. it’s not as good, but has some nice things I wish the iPad had, and the price is right). Unlike the Windows vs. Mac comparison, the ecosystem is squarely on Apple’s side (for the time being, at least) — the iPad has a significantly better game selection. Notably, in key areas Android still hasn’t caught up with the original iPad. My Kindle Fire languished largely unused for about six months (I’ve been using it quite a bit since having to return my iPad 2) — I might have more definite conclusions after the rumored iPad mini ships or doesn’t ship.

Let’s Talk iPhone

Apple has, apparently, sent out invitations to an iPhone-related event on October 4. John Gruber says that someone has told him that there will only be one new phone (which is almost certainly accurate). Of course it’s entirely possible that the existing iPhone 4 will become the entry-level phone with 8GB of storage which would kind of qualify as a “new” phone.

The simplest option, which would be underwhelming but still very good, would simply be an A5-based iPhone 4, which could presumably be thinner and lighter (as the iPad2 relative to the iPad) or have even better battery life. If thinner and lighter then expect the camera to be inferior in at least some respect (e.g. sharpness or low light capability) owing to the lack of room. The general consensus seems to be that it will be thinner but have a slightly larger screen.

Apple doesn’t iterate its physical designs lightly. Samsung et al may be able to deliver a dizzying array of form factors on a monthly basis, but Apple takes care over its designs and only changes them rarely. I would not be at all surprised if the new iPhone is very close in appearance to the model it replaces — but “Antennagate” might argue for some more dramatic change. Also, a lot of us would like a less frictionless and easily broken device (mine is in near mint condition, but my wife’s is shattered on both sides).


iOS5. One thing that hasn’t been getting much attention is that while it’s obvious iOS5 will be released, there remain some credible rumors that it will feature as-yet-unrevealed features. Nuance voice recognition and speech synthesis is one possibility. Facebook integration (groan) is another.

A6. Perhaps the most likely surprise would be that the iPhone 5 skips the A5 (which is made by Samsung) in favor of a more advanced — or simply different — chip. This could be purely out of spite (although to ascribe a giant corporation’s behavior to an emotional root is generally naive), strategic based on Samsung’s clear intent to leverage the capabilities and scale it gets from supplying Apple to compete against Apple, or strategic based on Apple’s supply chain problems earlier this year with the iPad2 (was the A5 one of the bottlenecks?).

Free with plan. A “free with plan” iPhone wouldn’t have to be a new product to have a huge impact. Apple is pretty close now (I’ve seen the 3GS offered at under $40 with plan). The real problem here is that if we’re only getting one new phone then we’re almost certainly not getting a cheap model that can connect to networks other than AT&T, Verizon, and kind-of with T-Mobile.

iPod Touch replacement is the iPhone4. An iPhone 4 sold at a reasonable (sub $300) price without any plan requirement as an iPod Touch replacement would be truly awesome. (As a developer I’d actually love to see Android handsets along the same lines, but the only plan-free Android handsets I see are horribly expensive or rubbish, certainly nowhere near as nice as a two year old iPod Touch.)


Thunderbolt Support would be damn cool but probably suicidal. Of course the cables are insanely expensive still, there’s no easy way to retrofit support into older computers (which most of us have), and it’s not Apple’s style to provide two connection options when one will almost do (we still have a bunch of useless FireWire-to-iPod accessories lying around, for example).

A serious camera option is my favorite crazy idea. Apple could license a sensor and lens mount such as Olympus’s M4/3 or Nikon’s CX system (the latter would be doable with little increase in thickness — and the Nikon J1 is smaller in other dimensions than an iPhone). It might not even be positioned as an iPhone (iTake? iMage?). Such a device would disrupt the camera industry (one of the few consumer electronics industries still actually shipping single-purpose devices and making some money), sucking the money out of its heart the way the iPhone did to smart phones and the iPod did to “Hi Fi”. (Remember when companies like Bose, B&O, and Pioneer were “cool” and sold more than high-end headphones and iPod docks?)

Supposedly the digital still market is projected to reach $43.5B per year by 2015, which presumably means it’s quite a bit smaller right now. Even so, that’s not chump change, and presumably there’s some profit in there somewhere. (Of course, annihilating the camera companies could be a bit self-defeating for computer hardware companies, since they also make tools necessary for chip fabrication.)

Inertial Locator. It seems as though, having embraced GPS, the world has forgotten about the inertial locater, a device (long since reduced to a tiny solid-state component) that determines your position relative to a last known place. Adding an inertial locator to the iPhone would allow it to have a good idea of where it was inside buildings and other places GPS is no good, and also reduce the need to use the GPS system to locate itself (thus allowing more precise tracking of one’s location with less battery power). And even nicer, it wouldn’t require new APIs — so existing location-aware software would simply work better immediately.

Standardized case-with-game-controller. Hey, I can dream can’t I?

A stupidly rugged iPhone for the ages. Textured steel and/or rubber exterior designed to age gracefully, with weather seals and recessed screen. Now that computers don’t become obsolete every 18 months how about we start design shit to last? How many folks with kids would jump all over this? (Literally!)

Adventures in Mobile Development

My initial foray into mobile development was to create an iPhone app from scratch using XCode. I wrote a simple mortgage calculator in an evening, and then spent a ridiculously long time trying to figure out how to arrange my signing certificates and whatnot so as to let me actually run it on my iPhone. (I never did get it running on anyone else’s.) Given that I am only superficially familiar with Obj-C and Cocoa, this was not terribly painful. If I could write apps for iOS and Android using XCode and Interface Builder, I’d be very happy. (And, from my point of view, XCode 4 is looking like a huge step forward from XCode 3.)

More recently, I ported my Manta game to iOS.

(Actually, I just realized that my first foray into mobile development, back in 2001, was an attempt to build a Mobile Flash-based multimedia detailing tool for the Compaq iPaq, but I had successfully repressed that memory. You think Flash sucks on mobile devices today? Shudder.)

Lately, I’ve been trying to figure out a good strategy for rapidly prototyping, developing, deploying, and supporting mobile apps for a large enterprise, and it’s been … educational. (“Experience,” Randy Pausch noted, “is what you get when you didn’t get what you wanted.”)

The first step in this latest adventure was an excellent tutorial: How to Create an HTML5 iPhone App (Alex Kessinger). I didn’t bother with his Tetris clone, as I was trying to build a data-driven productivity app, so I simply used his tutorial as a shortcut to figuring out the basics of manifests and the stupid HTML incantations necessary to get a non-scrolling full-screen web app working. This persuaded me that pure HTML5 web apps are a perfectly viable way to go for most business stuff, but you’ll still need to build a minimal wrapper to deploy via an App Store.

I should state at this point that this does not qualify as a review so much as a disjoint set of observations based on generally shallow experience of a number of mobile development options. It is, in effect, a quick brain dump of my current impressions rather than any kind of careful analysis.

Mobile development options range between two extremes: mobile-friendly web pages and Native development using platform-specific SDKs. (It should be noted that if you want to provide a “real” app through an “app store” the platform-specific SDK is pretty much unavoidable, but you might be able to avoid writing all your code in an IDE you despise.)

Mobile-Friendly Web Development

The purest web option is, of course, to simply create a website. You don’t need to do anything except test to see that your website isn’t pathological on a mobile platform (e.g. do you use Flash for UI elements, are your article’s coerced into bizarre multi-column layouts or otherwise broken up in a way that makes them hard to zoom in on and read?).

You can be a bit more mobile-friendly by creating custom CSS to cater for mobile web browsers, including a mobile (or at least iOS) friendly favicon, and possibly even providing manifests and so forth to make some or all of your pages work offline (although working with manifests is an absolute nightmare during development). It’s possible to make web pages look arbitrarily similar to a native app just using a bit of CSS and Photoshop magic, but it’s very hard to create native behavior and responsiveness, and you won’t have access to platform-specific functionality (e.g. the camera or GPS).

Personally, I think that all websites should be mobile-friendly, but making mobile-specific websites is generally a Bad Idea. (Even when done well, e.g., I think I’d rather just get the “real” site if the real site weren’t horribly heavy.)

PhoneGap + Your Favorite UI Library

PhoneGap allows you to build a “native” app out of HTML and JavaScript by essentially building a mini-site into a simple custom app framework that simply provides an interface between the JavaScript runtime and the underlying mobile OS. PhoneGap doesn’t attempt to solve the problem of providing native look and feel — that’s between you, Photoshop, and the JavaScript programming deities.

Luckily, the JavaScript programming deities have smiled on us and provided both free/open source and non-free solutions to the other side of the problem in the form of jQuery MobilejqTouch, and Sencha Touch. (Sencha being the folk who produce ExtJS, which is a superb JavaScript widget library.)

I should mention that while jQuery Mobile and jqTouch are implemented as jQuery extensions, Sencha Touch is perfectly compatible with jQuery (I actually first learned jQuery and ExtJS together, since I was working on a site that used both). This is hardly surprising since both jqTouch and Sencha Touch are from Sencha! From what I can see (and from this response on StackOverflow) jqTouch was an experiment that got open-sourced, Sencha Touch is what was built based on what the devs learned building jqTouch (and it’s bigger, more complex, and actively maintained library), and jQueryMobile is the official jQuery mobile platform (which may or may not have borrowed stuff from jqTouch, I don’t know). More importantly, working with Sencha Touch is more like pure coding, while jqTouch and jQueryMobile apps are, at the bottom, web pages.

jQueryMobile has, unquestionably, the most impressive website of the three — go to the Docs and Demos pages and then try resizing your browser Window. (Here’s a link, but note that the url seems to be version-specific and may stop working.)

Visual Basic Reloaded

A little further along the spectrum there are Appcelerator Titanium and Ansca Mobile’s Corona SDK which essentially remove HTML from the equation and replace it with a native canvas (in essence, Appcelerator is “Visual JavaScript” and Corona is “Visual Lua”). Appcelerator Titanium seems to have quite a bit of traction (supporting JavaScript is probably a good marketing move) but Corona has probably produced more commercially successful results (Lua is generally more performant than JavaScript).

Corona is more 2d-game focused (your ability to use native widgets is pretty limited, and there are lots of iOS-centric examples of faux native controls) while Appcelerator is more enterprise-app focused (and makes a point of exposing platform-native controls). As a personal aside, Appcelerator is a huge pain in the ass to get going (it is Eclipse-based but requires an appropriate version of XCode to be installed for iOS development and the Android SDK to be installed “just right” for Android development) with while Corona SDK simply provides a very nice simulator that “just works” (it doesn’t do platform native stuff, but works fine for many purposes) that lets you use whatever development tools you like.

If you don’t need a lot of OS-level widgets (and don’t mind learning Lua) Corona is much easier to get up-and-running with. But if you want to create native productivity apps that run on both iOS and Android, Appcelerator is much more capable.

The 800lb 3D Gorilla

Unity differs from Appcelerator and Corona in three key ways. First, its runtime is 3d-game oriented rather than 2d or productivity oriented. Second, its runtime is both more capable in some ways than its competitors because it contains a chunk of Mono (i.e. .NET) functionality and less capable in others because not all native platform capabilities (e.g. browser panels and other UI widgets) are supported. Finally, it runs compiled code against its own APIs. This means that Unity is going to be useless for certain kinds of development (e.g. want Google Maps integration? Forget it) and vastly superior, perhaps even to native development, for others (i.e. 3d games and other realtime 3d stuff).

HTML PhoneGap+ Corona Appcelerator Unity
IDE n.a. XCode for iOS, Eclipse for Android n.a. Eclipse Unity
Native Widgets Kind Of Kind Of No Yes No
Best Feature You’re already done Free Lightweight Native Widgets Awesome Dev Tools
Worst Feature DIY Still kind of DIY Need to build app to see supported native widgets Fiddly to get going Not intended for non-games
Language JavaScript JavaScript Lua JavaScript JavaScript[1], C#, Boo[2]
Price free free $199 p.a.+ $49/month+ $400+
Personal Opinion manifests are a pain to deal with (because stuff gets cached on your iPhone and it’s hard to dislodge) haven’t gotten too far down this road, but Sencha Touch looks great very click, but productivity apps seem to be a poor relation absolute pain in the ass in every conceivable respect love unity but it’s kind of heavy and for productivity stuff you’re on your own

Notes: [1] Unity JavaScript is not quite the same as JavaScript, but it’s easy to get up-and-running if you know JavaScript. [2] Boo is a Python-like language with curly braces instead of parens, and just enough dynamism removed to allow it to compile.

I need a Mobile App tomorrow!

If all you want is a mobile-friendly landing page (and you’re willing to pay), Widgetbox has a tool for creating a mobile “web app” with point-and-click simplicity. I’ve played around with their tools enough to verify that the work, but I haven’t actually tried to deploy their tool so I don’t know how well it works offline (e.g. can you bookmark the site on your iPhone and have it work offline correctly?) It would be pretty neat to have a tool along those lines that actually let you build a proper app.

Going Native

Finally, there’s native development, which I won’t go into. (I like XCode and loath Eclipse so I’m pretty biased.) Aside from producing a truly native app, the iOS SDK has a bunch of functionality that none of these tools match (I don’t know enough about Android to know whether the Android SDK does too). E.g. that way iOS lets you handle screen orientation and user interface transitions is simply light years ahead of most of these tools (where you’re pretty much on your own) and solidly ahead of the best (which would be Sencha Touch).

The Story So Far…

At this point, I should mention two of my biases and get them out of the way. I don’t care for Eclipse, and I don’t like subscription-based models, and Appcelerator Titanium has both. Now, to be fair, my opinion of Appcelerator was perhaps unduly harshed by my having been using Mac OS X [redacted for NDA reasons] on my Macbook Pro which meant nothing much seemed to work (although I also spent a huge amount of time not getting it working on my Mac Pro, which is running 10.6.x). Basically, in order to work, Appcelerator seems to need all the stars to be in alignment and I have yet to get them so aligned. I like the idea of Appcelerator, but thus far I’ve found the execution leaves much to be desired.

Corona SDK on the other hand (which is not without OS X [redacted] issues of its own) was a joy. The download was small and I was able to get the simulator up and running in minutes, and complete the excellent tutorial with no problems. I immediately grokked how things worked and was able to dive into their API documentation and add extra functionality to my toy tutorial app immediately. (Despite not really knowing Lua.) I should add that this is the experience I’d hoped Appcelerator would deliver, but no. (I’d also add that the Appcelerator site has a bunch of getting started video tutorials that never actually seem to get to the point of doing anything interesting. In terms of “five minute demo” Corona SDK has Appcelerator beat.)

The problem with Corona (for me) is that if I’m going to use a game-centric development tool, I might as well use Unity. Corona does have the advantage of seeming lighter (and it’s certainly cheaper). I guess if the right project came along I’d probably consider Corona, but business productivity apps just doesn’t seem to be Corona’s strong suit.

Frustrated by Appcelerator’s lengthy and fiddly installation process (and being forced to use Eclipse) and Corona’s lack of support for native widgets, I started looking at the PhoneGap+ options once more, and I have to say that I’m very impressed by jQueryMobile and Sencha Touch. Simply based on the jQueryMobile doc site (and its “eat your own dogfood” approach), I’m leaning towards PhoneGap + jQueryMobile. That said, I finally managed to get Titanium Developer to launch the “Kitchen Sink” app in my iPhone Simulator, which means I might be able to code with Accelerator the way I was able to code in Corona (modulo a much more cumbersome build/debug cycle).

So, to sum up, I like Corona. It’s lightweight, really easy to pick up and use, and fun. Needing to learn a new and not especially widely used language is a bit annoying but it’s no big deal. But I really can’t use it — it’s not a general purpose app development platform but a 2d game platform (e.g. it has no selector widget, but it does provide a system for managing virtual currency).

I’ve not yet built a PhoneGap app but, assuming it all works as advertised (which is clearly a huge assumption for mobile development), it looks like this is a useful option, but it’s probably never going to be as refined as a truly native application (e.g. none of Sencha’s widgets look native on an iPhone, and a few of jQueryMobile’s widgets are downright ugly).

Unity continues to rule the roost for game development, but it’s virtually useless for what I’m currently trying to do.

And finally, there’s Appcelerator. In some respects it seems like the Holy Grail, but it’s been such a pain in the ass so far that I’ve just spent the last two days scouring Google for alternatives (culminating in this blog post). The fact that getting up and running was so painful isn’t promising, the documentation on the website has strange gaps (“hello world”, anyone?), I find the instructor in their video tutorials to be infuriatingly slow, and I’ve read nightmare stories about bugs in the platform that have brought projects to a screeching halt.

I also don’t see a single example of a “cool app” developed with Appcelerator. What I see is a bunch of giant corporations that are using Appcelerator for reasons that probably make no sense to end-users. (What App does NBC Universal ship and why do I care?)

So, right now, I’m probably going to experiment with PhoneGap and Sencha Touch or jQueryMobile. If not, I guess I’ll bit the bullet. At this point, if I could ignore other platforms and just code in Obj-C for iOS I would avoid Appcelerator altogether. Oh well.


I came across this blog post (Martin Kou) in my meanderings. The main takeaway is that the writer finds jQueryMobile to be pretty flaky, and hasn’t tried Sencha Touch but says that it is “purportedly, much more mature and is faster”.

How Apple “Lost” the PC Wars

From a high-level perspective, Apple is fighting the same battle that it fought–and lost–in the 1990s. It is selling an integrated hardware-and-software device and a closed development platform, while its competitors are aiming for ubiquity and spraying their platforms across every device that will have them.

Apple’s iPhone 5 Delay Just Opened The Door For Google And Microsoft, Business Insider

I started writing this post in response to a different, equally stupid article, but set it aside. Then a few days later I come across the piece quoted above. (Never mind that the “iPhone 5” delay is a speculated delay of a speculated launch.) So I dusted it off and here it is.

Probably the one anti-Apple meme that annoys me more than any others is the idea that Apple lost the PC wars because it wasn’t “open” for some value of “open” (e.g. “open” to cloning, or “open” to third-party music subscription services, or “open” to third-party developers, or “open” source). The reason this meme has currency is that random idiots want to predict Apple’s demise in various new markets (digital music, smart phones, tablets) based on its “failure” in the PC wars.

A very brief history of the PC Wars

  • A few companies create the home computer market, of which the largest and most successful by far is Apple.
  • Most of the others run CP/M (on which DOS will be based) a product of Digital Research and BASIC (ported by Microsoft).
  • Apple’s computers are simply ridiculously good compared to its rivals (including an robust homegrown OS and BASIC) and Visicalc suddenly makes them useful in business. All this without Apple ever having dominant market share. (One estimate I found suggested that, at its peak, Apple had a 40% share of the “micro-computer” market.)
  • IBM notices Apple starting to gain tiny footholds in business and decides to enter the market with its own computer, but it’s in a hurry and mostly uses off-the-shelf components. It tries to buy CP/M from DR, but the head of DR stands them up, so they go to Microsoft. Microsoft says it can provide an OS for the new computer and in fact buys a clone of CP/M that runs on x86 from a local developer which it then non-exclusively licenses to IBM.
  • The IBM PC is a huge success because, despite being incredibly expensive, proprietary, closed, and pretty much horrible, it’s from IBM. By the time Macintosh enters the market, Apple is already facing an uphill battle against an entrenched competitor with dominant market share.
  • Because it was created in a hurry, the one part of the IBM PC that isn’t a commodity item (the BIOS) is easy to clone.
  • IBM tries to prevent clones from taking off by suing them (leading to “clean room” clones) and deriding their “compatibility”, but neither approach works.
  • Because Microsoft only gave IBM a non-exclusive license to DOS, and because the only part of the IBM PC that IBM really owns is the BIOS and the BIOS is nothing special, clonemakers — notably Compaq — are able to make their clones not only better and cheaper, but competely compatible with IBM’s.
  • IBM tries to create a new and harder-to-clone hardware architecture (“Microchannel”) that it will fully own, it’s insufficiently compelling and clonemarkers respond with EISA.
  • IBM loses control of the PC market.

In summary, Apple lost the PC wars because it couldn’t make inroads against IBM in the enterprise. IBM then lost the PC wars because its platform was way too open for its own good.

Apple never dominated the home computer market, nor did it dominate the “enterprise” PC market which didn’t exist until IBM legitimized it. (It was frequently referred to as “IBM PC” market, even when talking about clones, until the mid-90s.) So any story about Apple having created some new market and then slowly losing its dominance because of its closed attitude is simply ridiculous on every possible count. Apple was defeated by an inferior, more expensive, and equally closed product — the IBM PC. The IBM PC was then defeated by cheaper, better, more open clones.

A second question might be why the Mac didn’t carve out a huge share of an existing niche market the way that the iPhone, say, did. After all, wasn’t the Mac as superior to DOS computers as the iPhone was to the smartphones that preceded it? This is an interesting question, and it would be nice if some tech pundits tried to address it instead of trying to draw analogies to an imagined historical event (the “defeat” of the Mac by cheaper, more open clones). You could make the argument that Apple did exactly this — it carved a huge share of the market for “computers for creative people” (eliminating more specialized niche players such as HP and Xerox) — and has pretty much hung on to most of that market ever since.

Short version: IBM defeats Apple in the enterprise because it’s IBM. IBM then is defeated by cheaper, better clones.

So, why did the Mac fail to defeat DOS?

When the Mac was launched in 1984 a typical PC was — for the vast majority of people — pretty much useless, at least for work. It wasn’t networked. It had terrible software that most people had no idea how to use. If you were lucky it was attached to a Daisy Wheel printer (essentially an electric typewriter) which could produce good text output. If you weren’t it was attached to a dot matrix printer and produced horrible output.

Out of the box a Mac could network. It came with MacWrite which, alone, allowed anyone to produce good-looking documents using a variety of fonts and font sizes and print them very easily. It even included a graphics package that was easy to use. Soon, there would be Excel, Pagemaker, Illustrator, the LaserWriter, and Thunderscan.

But, why did most people own a computer? The most popular home computer of the time was the Commodore 64. People used it to play games. Before the C64, the most popular computers had been the TRS-80 and the Apple II. They were used to play games. When people bought PCs for their own use, it was for games. Apple pointedly did nothing to encourage game developers on the Mac at the very time when anyone other than a professional writer or graphic artist had pretty much no use for one other than playing games.

Short version: games.

Why did the Mac fail to defeat Windows?

Even small children were able to memorize the sequence of characters you needed to type to make a game launch off a floppy disk on a C64. I only used one a few times and I remember it involved the number 8. It wasn’t “user-friendly” but it wasn’t that hard to learn. Games players were motivated.

By the time Windows came out, DOS had emerged as the most important game platform in the world, having defeated a number of competitors all of which had, at least at some point, marked technical superiority. Here’s the thing: when the only real reason for buying an expensive piece of hardware is to play games, you tend to be price sensitive. People who used Macs to edit TV commercials or design magazines didn’t care that much about the existence of a significantly cheaper but significantly inferior alternative — their time was valuable. But games players cared deeply, and Apple’s continuing anti-games attitude didn’t help.

Even when Windows failed (i.e. Windows 1.0 and Windows 2.0) it was self-inflicted. Macintosh didn’t defeat those products. People didn’t even use them when they got them for free on computers they had to use. Windows simply became the software that ran on the computers people bought to play games on, and eventually it got good enough that people actually started using it. Not until Windows 95 came out did AAA games actually run under Windows 95 rather than bypassing it altogether.

Somewhere along the way Windows got good enough that important applications started to work decently on it (e.g. Photoshop, Avid) and that meant that people who only used a few pieces of software could now buy a cheaper, faster box to run their favorite programs. At this point Apple started actually losing significant market share, but this was over ten years after the Mac came out.

Short version: games.

What do you do with a gadget for fun?

The elephant in the room for the entire duration of the ongoing PC wars has always been games. At this point we’re way, way beyond the point that a desktop computer is able to handle “office” tasks such as word-processing. The average person doesn’t spend their disposable income on stuff that isn’t fun, for some value of fun. On the other hand, the average person is generally willing to spend more on something that’s fun if spending more will make it more fun.

If you are willing to pay $12 for a movie ticket and $10 for snacks to see Cars 2, will getting a discount persuade you to see some random film that isn’t Cars 2? No. Maybe you’d like cheaper, off-brand snack. Maybe, but probably still no.

How will Apple lose the Mobile Wars?

A good friend of mine once explained to me that there are three important positions in any market: the most respected, the biggest market share, and the cheapest acceptable. (The conversation was about how Commodore had achieved total domination of the home computer market, just before they canned Jack Tramiel.) If you look in the smart phone market that would be Apple, Apple or perhaps RIM by a hair, and Apple. In the tablet market that’s Apple, Apple, and Apple. In the portable music player market that’s Apple, Apple, and… who knows? SANdisk maybe. In the portable computer market that’s Apple, brand P, and brand Q. And in the desktop computer market that’s Apple, brand X, and brand Y. (In online services it would be Google, someone that isn’t Apple, and someone else that isn’t Apple.)

Traditionally, Apple has been willing to cede all but the first position. It has consistently held or been in contention for the position of “most respected” in the markets in which it plays, and if and when it has been in danger of losing that position it has simply left the market altogether. Apple’s lowest point was probably that at which it was in danger of not even being the best maker of Macintosh computers. (A situation which abruptly ended with the advent of the G3 processor followed by Steve Job’s ending of clone licensing.)

I see a number of major trends in digital devices, all of which are completely obvious to anyone paying attention. Moore’s Law continues doing what it does, making anything built out of circuits smaller, faster, cheaper, and better every day. Convergence is eliminating specialized devices and merging multiple devices into smaller numbers of devices. Business and technical problems are being thrashed out with expensive experiments such as The Daily, the NY Times pay wall, Hulu, and GoogleTV. And commodification is creating leverage for converged multirole devices. This is a world with lots of loose threads and usability problems moving forwards, and no-one is going to be better at helping users navigate the mess than Apple.

The only thing that can kill Apple right now is Apple. Maybe the most likely way for Apple to commit suicide would be to get into some kind of stupid fight with Google over online services as “revenge” for Google invading its hardware turf. In the long run, a lot of Apple’s ideas — or ideas attributed to Apple — have have been absorbed into the fabric of software development. Many years ago, one of the original Mac teams (Andy Herzfeld or Bill Atkinson, I think) was asked in an interview how he felt about Apple’s having lost the platform wars. He replied that he felt fine: Apple had won. What? responded the interviewer. He replied (and obviously I paraphrase): every computer you see now is either a Mac, or a copy of a Mac. Apple won the war of ideas, which was what really matters.

In terms of ideas, Apple has already won the OS wars (every OS is now a copy of the Mac), the laptop wars (every laptop is a copy of the PowerBook), the music player wars, the tablet wars, and the cell phone wars.

Microsoft vs. Google

I’ve been seeing some comparisons of Google and Microsoft lately, with the word “monopoly” being bandied about. It seems like it might be time to do a bit of comparison for perspective.

Update: Microsoft Files Monopoly Complaint Against Google (The Register). Better coverage of Microsoft’s case (which seems pretty solid to me, but nowhere near as solid as the case against Microsoft in the 90s, and we all know how that went).

Microsoft Google
Alleged Monopoly Desktop OS (and Applications?) Search (and Web Advertising?)
Using revenues from monopoly to damage/destroy competitors Created Internet Explorer and bundled it in a deliberate and eventually successful bid to destroy NetScape Created Android and gave it away to make more phones able to use Google Search and see Google Ads, incidentally perhaps damaging rival smartphone vendors (mainly Apple) — and possibly not helping Google in the long run.
And then… Made it impossible to remove IE or even hide its icon. Can’t think of any similar thing Google has done.
Did I mention… Developed Access and bundled it with Office in a successful attempt to take desktop database market away from Borland. Tried similar things with Microsoft Money and Expression Studio with marked lack of success. Arguably Google’s purchase of Writely which formed the basis for Google Docs was an attempt to replace Microsoft Office. It’s hard to get worked up about someone trying to break a monopoly by giving stuff away, though.
Oh and… Allegedly introduced incompatibilities into its OS to damage reputation of rival software products (e.g. Lotus 1-2-3) I’m at a loss here.
Used control of market dominating product to make rivals look bad Inserted error messages in operating system application loader to make rival development tools (from Borland) seem less reliable Either deliberately or incidentally reduces visibility of rival search sites in rankings because they’re “just sites with links to other sites”.
And let’s not forget… Inserted error messages in Windows to make rival versions of DOS (from Digital Research) seem less reliable Nope.
and… Designed the Video for Windows installer to remap QuickTime’s files to make QuickTime seem less reliable Arguably Google’s attempt to derail h264 support in HTML5 is similarly motivated, but it’s not even in the ballpark. The stakes, however, are much higher.
Created its own version of the JVM Created its own version of the JVM which worked better than the original, and then added functionality designed to break its cross-platform mission. Created its own version of the JVM which works better than the original.

There’s all kinds of stuff Google is doing that might be considered “evil” outside this topic, e.g. the way it’s handling copyright in its effort to put all books online, or its attitudes to privacy, but these aren’t really anything to do with its being a “monopoly”. (And there’s a ton of nasty stuff Microsoft does that constitute normal operating practice in the software world that are egregious even when you aren’t a “monopoly” but even worse when you are, such as using file format obfuscation to create lock-in.)

On the whole though, I don’t think Google is in Microsoft’s super-villain league. (That said, if the founders of Google take their cash and spend it on curing malaria, or some similarly laudable cause, all will be forgiven, right?)