Web Applications and the API War
Joel Spolsky’s essay on how Microsoft lost the API war is typical Joel. It’s informed and well-written, and yet because some of the minor points and assumptions are unsupported, I don’t quite believe the conclusion. When I read an essay at Daring Fireball (which you should support), the points usually click into place. I can often see early on where Gruber is going to take an argument and how he’ll get there. Then it’s just a matter of watching the exquisitely crafted dominos fall. Would Joel on Software read like that if I had a Windows background instead of a Mac background?
In any case, my main problem with Spolsky’s argument is that he sees .Net as almost a Netscape 6 kind of rewrite. But imagine if Mac OS 9 applications ran as first-class citizens on Mac OS X and if Carbon had automatic memory management and were accessible from a variety of modern languages. Now, maybe I’m all wrong, but I see this as good for Microsoft. They’ve maintained compatibility for Win32 applications. If there’s no return on your investment for porting to .Net, then don’t do it. At the same time, it is now much more attractive for developers to write new applications that will only work on Longhorn. Good developers like good tools; by providing good tools (and lots of marketshare—large numbers of people will upgrade to Longhorn), Microsoft will ensure that Windows development remains vibrant.
The “MSDN Magazine” technologies that Microsoft is always trying to sell to developers sound like QuickDraw GX, OpenDoc, and PowerTalk. Nice as these technologies were, Apple was never fully behind them. But by Spolsky’s own admission, the MSDN Magazine Camp has won. .Net is not a novelty, but a bet-the-company initiative. And not a very risky bet at that—unlike sticking with Win32 forever. Long-term, Win32 is a lose, and not just because of the Web. Microsoft realized this before most people. There was no way to restore the old jewel’s luster, so they built a new one, .Net, to keep desktop developers locked in, and to try to lock in the Web developers as well.
Speaking of Web developers, John Gruber has some interesting thoughts about Web applications:
The persnickety little UI details I obsess over — these are nothing compared to the massive deficiencies of even the best web app. But most people don’t care, because web apps are just so damned easy to use. What’s interesting is that web apps are “easy” despite their glaring user experience limitations.
What I missed when I dismissed them a decade ago is that web apps don’t need to beat desktop apps on the same terms. What’s happened is that they’re beating them on an entirely different set of terms. It’s all about the fact that you just type the URL and there’s your email.
I have two things to say about Web applications. First, they will continue to only make sense for certain kinds of functionality. The Web is becoming more important, and yet desktop isn’t going away. This is because software isn’t a zero-sum game like mindshare is. New Web applications don’t necessarily mean fewer desktop applications. On the contrary, we’ll need more desktop applications just to help build Web applications, and wrappers like Watson and Netflix Freak to make them easier to use. These are, of course, markets that .Net is aimed at capturing.
Second, I think the interesting thing about Web applications is how they play with our expectations. As bad as even the best Web applications are, they somehow feel better than non-native Mac applications—because they’re good for what they are. Exclude, for the moment, the benefits of being able to use a Web application, with your data, on any computer. Would you rather use Gmail or Chandler? Yahoo! Calendar or the original Palm Desktop?