17 Jun

Microsoft Lost the API War? Not So Fast

Joel Spolsky is getting a lot of mileage for his essay, How Microsoft Lost the API War, and it’s deserved because there are a lot of good things in there. For instance, the fact that you (mostly) don’t have an install process to run web apps (or console games for that matter) is definitely something Microsoft should think long and hard about (and I’m sure they do). I’m just fed up with installing and configuring apps, and it’s even worse when you want them available across 3 or 4 home PCs.
However, Joel’s whole argument relies on a premise that he never bothers to back up: “[the web as a platform] is Good Enough for most people and it’s certainly good enough for developers, who have voted to develop almost every significant new application as a web application.”
That’s quite a radical assertion but it isn’t reflected by facts. From digital audio, photography and video to gaming, whole software categories have grown strongly those last years, on Windows primarily but also on the Mac and consoles. Nothing more convicing than amusing demos and gizmos exist on the (HTML) web in those areas, which, by the way, happen to be the fast-expanding frontier of digital lifestyles, so that’s what matters in terms of consumer adoption and developer interest (and just look at what software people buy and use). The fact is, developers kept targeting Windows and other non-web platforms all along, and users have asked for more. Even online there’s been an explosion of desktop applications. Don’t bother telling Joel Spolsky about the many developers who create instant messaging or file sharing applications or newsreaders (many of them on Windows) and the dozens of millions of users who download and install them, he’s busy making an important point. After reading Joel’s memo, no doubt Epic Games will surely stop using DirectX (gasp, the latest version even) and commit to creating Unreal Tournament 2005 in the browser.
The platform switch challenge for Microsoft is well known and Joel may yet be proved right in the long run, but the game is far from over and his calling the score is quite premature. Remember that he said .NET was vaporware four years ago only to say now that ASP.NET is the best web dev platform. In this week’s essay, where’s the acknowledgement that at the time he got excited by a vague whitepaper but his sanguine statements were since then proved wholly incorrect? You’re right, there’s none. We’ve heard this kind of hubris about the end of the Microsoft API from the Java guys for years and look where it got them: definitely somewhere, but even more definitely, far from everywhere, and certainly in less computers than Microsoft.


Well guess what, maybe .NET is actually a good way to get web developers into Windows as well, so that they can create both web frontends and rich clients with a common code core. It’s exactly what’s happening, for instance, around the Outlook platform. Yes, Gmail and Oddpost are more than decent apps, but let’s wait until they’ve been through a whole lifecycle to judge whether it’s cost effective to develop apps that way. Gmail has lots of resources behind it, and we don’t know how well it will scale and evolve, or at what cost. Oddpost is done by a couple passionate guys and is by choice not cross-platform (it runs on… MSIE). More generally speaking, who else has the skills (Javascript, come on)? How easy are those apps to maintain? And is the final frontier of HCI to have keyboard shortcuts that work, or can we expect a little more from those ever more powerful computers? What a startling lack of ambition, and again, customers have proved time and again with their wallet that the "good enough" status quo was in fact, not good enough.
There are other problems as well in Joel’s essay, such as this complete strawman that somehow, the fact .NET supports several languages is confusing. Hello, are web apps done in a single language? How is this supposed to be a problem? Making grand statements springled with smart quotes sure will get you lots of attention in the blogosphere. But for a healthy diet, just take it with a grain of salt (that’s worth for my own writing as well of course, my own biases are I think quite transparent to long-time readers, starting with the fact I’m long on MSFT).
Update: similar doubt elsewhere.
Update #2: some continuing discussion at Ensight. I’m again being opposed Salesforce.com’s success, like Trip Foster, VP of Marketing at Intellibank, did in a great answer to one of my posts earlier this year (this is why I’ve changed my mind about comments on blogs: you can get good feedback from people who don’t necessarily have a blog to anwer you).
Ok, so I’ll admit readily that web apps make sense in an enterprise software context, though I’d argue that Outlook in many ways provides a compelling alternative. Those frontends often replace either ancient text-only applications (and it’s about time terminal emulation and screenscraping died), or badly written client-server apps that never fully delivered on their promise (the UI and feature richness often translated into klunkiness and poor performance). But those apps are mostly handling text, which doesn’t need much local processing power or storage to start with. Good luck doing anything else through a browser.
And notice Joel now has a whole shopping list that he’d like to see implemented in browsers. Huh, I thought the current generation would already “get us 95% there”? Those features are only playing catch up with things that have been available on Windows for years. Yep, it’s nicer to have a result list filtered on the fly based on the field you’re currently filling in (a service provided for instance by Data Views in Windows Forms). And, gee, on the topic of developer productivity dear to Joel’s heart, shouldn’t developers have better things to worry about in 2004 than how to do menus?
06/18/04 update: Seven Reasons Why the API War is Not Lost After All, Some Thoughts on Joel Spolsky’s “Microsoft Losing the API War”
06/19/04 update: Defending the Rich Client, Rich versus Reach Debate Heats Up.
06/20/04 update: mciSendString(“Wrong, Joel”), Joel Spolsky and the Temple of Doom, One Run-time to Rule them all…, Prasenjeet Dutta.
09/21/04 update: Rich Clients or Browser Interface?.
02/11/05 update: Client definitions, Rich Internet Apps To Tie SOA To Desktops.

6 thoughts on “Microsoft Lost the API War? Not So Fast

  1. It’s funny that the first two top-selling software products that you point to on Amazon are anti-virus products.
    If web applications were enough, computer users would just slap a Linux CD in there and be done with it. However, they are putting up with viruses and even shelling out money to protect against them. They’re doing that because they still want their desktop applications.

  2. I think it’s notable that I’m using a local rich client (BlogJet) for editing my blog, rather than using the online editing tools at Blogger.
    Fundamentally, I don’t get a rich-text editor at Blogger, and I can’t edit a post offline.

  3. The web is a “disruptive” technology ala Clayton Christensen. Disruptions are specifically inferior for many of the purposes listed above (such as Unreal Tournament). But it has made such a large number of people able to do so many things that they couldn’t do before, that it will win the lion’s share of development time and attention going forward, and will eventually evolve into the superior technology, just as the transistor supplanted the vaccuum tube. Desktop apps will retreat to higher and higher-end applications until they’re painted into a corner and vanish. Give it a decade or so. Connectivity is King.

  4. The web is a “disruptive” technology ala Clayton Christensen. Disruptions are specifically inferior for many of the purposes listed above (such as Unreal Tournament). But it has made such a large number of people able to do so many things that they couldn’t do before, that it will win the lion’s share of development time and attention going forward, and will eventually evolve into the superior technology, just as the transistor supplanted the vaccuum tube. Desktop apps will retreat to higher and higher-end applications until they’re painted into a corner and vanish. Give it a decade or so. Connectivity is King.

  5. Hardly certainly re Java.
    Java got into Internet Explorer, so it’s on many of the same systems that Windows is on. And then you add on all the other systems – phones, Martian rovers…
    More on topic, the .NET and Windows development area looks to be turbulent for the next few years. I’m a Delphi and Java desktop developer, and use Java/Perl/PHP for serverside. I’d like to get into C#/.NET etc. but why buy v1.0? Until Longhorn arrives it looks like much of what I’ll learn I’ll have to throw away.

  6. I think that Joel should be answered in his own teritorry – Bug Tracking applications.
    WinFS , Avalon and many other features that are scheduled for Longhorn release – will allow John to make a better bug tracking application.
    WinFS provides better interaction between applications, synchronization, offline work – which all make a central web application look like a dinosaur.
    For example, if the sales opportunities are linked to bugs – you can save alot of money by solving bugs that loose you money first.
    In order to achieve this in a web application you will need to sell the whole ERP – but in Longhorn all of the applications will be connected using WinFS.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>