Joel Spolskys article, How Microsoft Lost the API Wars, might also be called How Microsoft Lost the Developers Faith and Allegiance . And the article stands as a testament to that fact. In effect, you have a Windows developer citing the reasons why and how Microsoft has let him down because Redmond is moving inexorably to a radically changed, closed, gated, enter-only-by Web Services OS capped off by the new Longhorn architecture. But lets examine the article in detail because it is rich in ideas for analysis.
Joel starts off by raising and quickly dismissing the Linux specter (read this as Microsoft is no longer the lowest cost producer) and the Web over Windows API (read this as thin clients beat thick clients and/or the Web API has more relevance to developers than the Win API). On the first point we agree with Joel, despite the fact that Linux on the Desktop (see above) is rapidly improving and is currently the lowest cost option. This does not automatically mean that Microsoft loses. There is complex embedding of OS and desktop software which can make changeover costs high (and with all the recent “free” Office 2003 giveaways Redmond is working mightily to increase those embeddings deeper and wider and as fast as it can). However, on the Web API winning out over the Win API – as it stands now we are not convinced there is a clear winner; but we agree explicitly with Joel on the effects the Longhorn API will have on this titanic struggle.
Joel uses the “death of the IBM mainframe” to illustrate how a market can be preserved well beyond the IT pundits and analysts life expectancy. But what is important to note here is that IBM has continued to improve mainframe computing including Linux server cluster paths that allow organizations to leave the mainframe world for IBM (or other vendors) Linux clusters and blades. But having rescued Microsoft from Linux and no longer being the lowest cost producer – Joel drops the bomb: “the Windows API is no longer of much interest to developers. The goose that lays the golden eggs is not quite dead, but it does have a terminal disease, one that nobody noticed yet.” In effect, Joel is saying that developers have switched allegiance from the Win API to the Web API.
Joel then proceeds to describe how Microsoft won versus all the other contenders for PC desktop operating system supremacy (read 95%++ market share worldwide):
“The logical conclusion of this is that if youre trying to sell operating systems, the most important thing to do is make software developers want to develop software for your operating system. Thats why Steve Ballmer was jumping around the stage shouting Developers, developers, developers, developers. Its so important for Microsoft that the only reason they dont outright give away development tools for Windows is because they dont want to inadvertently cut off the oxygen to competitive development tools vendors“.
Joel does not say explicitly how Microsoft did this; but we can. In effect, Microsoft won because it coddled developers during the emerging stage of the PC market In the late 1980s through to about thje mid-1990s , Microsoft made sure in all the rapidly emerging application markets that it had DOS and then Windows ISV developers. It could and did say to ISV and developers large and small; ” you should use our OS /PC hardware combo because it will be the lowest cost, it will have the latest features, it will attract the most other developers, here are our leading products – you tie into them. And by the way we will offer all sorts of joint marketing opportunities and soft dollars to support your software that meet our criteria and release timings. And we will give you open-the kimono insights into our directions and APIs if you commit to our platform. And we will give you discounts on software tools and access to our developers to resolve show stopper questions.”
This was very savvy nurturing of every possible emerging software market. No small undertaking – and no small reward for winning the most developers in just about every one. And some pretty sharp innovators and marketers from the likes of Apple, IBM, SUN didnt hit on Microsofts magic formula – get the most developers on your OS with the most features (and no show stoppers) at a range of prices but at least one high value offering (most features for your bucks).
Joel says Windows developers have been further coddled by Microsoft through the Windows Application Compatibility group. This large group of testers is responsible to make sure that all the popular applications are able to make the upgrade transition from Windows xx to Windows xx+1. Joel cites the weblog of Microsoft AppComaptibility guru Raymond Chen and his co-workers as proof of some of the extraordinary efforts Microsoft has gone to make sure backward compatibility is maintained. Joel cites the ability to run a 1983 DOS program in current versions of Windows as proof of this compatibility.
This is a just a tad bit exaggerated. Dont go trying to pull out those old diskettes of AmiPro or 123 or Project Scheduler – and getting them to run in Windows 2000 and XP. Oh some of them even start up …. But Joels point is taken – for Windows developers Microsoft has gone to some lengths to make sure that developers programs work in succeeding releases of Windows.
ISV Developers : New Low Man on the Redmond Totem Pole
However, Joel says of late Microsoft is backing off that backward compatibility approach and by implication the developer is king approach. He calls this new view the MSDN camp:
“The MSDN Magazine Camp believes in making things easy for developers by giving them really powerful chunks of code which they can leverage, if they are willing to pay the price of incredibly complicated deployment and installation headaches, not to mention the huge learning curve. The Raymond Chen camp is all about consolidation. Please, dont make things any worse, lets just keep making what we already have still work. The MSDN Magazine Camp needs to keep churning out new gigantic pieces of technology that nobody can keep up with.”
But what really is happening is that Microsoft is adjusting to the new reality. Joel acknowledges later that it is no longer 1990. But lets take a look at the differences:
1)In 1990 Microsoft did not have 90%++ dominant market shares in desktop OS , office software, email, development software nor leading shares in many other important applications. Also it seemed there was still the possibility of killer applications developing;
2)The web and distributed processing were just emerging;
3)So in 1990 independent software vendors in a broad range of markets still mattered.
But Microsoft has increasingly become the dominant player in all large revenues software markets with the possible exception of graphics where AutoCAD, Adobe, Macromedia, and a horde of others who play in the dual Windows/Apple world . But with Visio, “Sparkle”, Windows Media Player and other programs plus Longhorns new Aero/Avalon 3D interface – look for serious Redmond invaders in that market come 2007.
The bottom line is that when Steve Ballmer courts “developers, developers, developers, developers” he is no longer including many ISVs – he is really targetting corporate developers, project managers, software architects, influencing Analysts and CxOs. Sure ISV developers still count at Microsoft – its just they are at the bottom of the totem pole.
As bottom dwellers it is no wonder backward compatibility and poor/non-existent conversion utilities for VB6 to VB.NET or COM to .NET or OLE.DB to ADO to ADO.NET have become the norm. No wonderRedmond insists on developers using .NET and then does not use it in INFOPath 2003, Project 2003, and Office 2003 (VS2005 and SQL Server 2005 are the first major .NET applications from Microsoft – any wonder they are so late?). Indeed, as Joel notes its all Fire and Motion.
In effect, ISVs and developer using Windows primarily are going to have to get used to the following 4 phenomena:
1)they are bottom priority on the Redmond totem pole behind corporate developers and Microsofts ever increasing group of its own business and home application developers who are at the top of the heap;
2)Expect less and less co-operation from Microsoft as Redmond invades more and more ISV and application markets. They have huge growth needs. As Joel ruefully acknowledges his two major products, both Windows primarily apps, face direct competition from Microsoft – especially his FogBugz tool with Microsofts recent entry with the Visual Studio Team Developer;
3)Expect much more work as there will be major changes in coming Longhorn APIs and Microsoft has the least direct support for other programming standards such as Java, J2EE, CORBA, Flash, Open GL, PDF, etc, etc. Interoperability will be the ISVs burden;
4)Finally expect Windows and Longhorn really to be directed and tailored first and foremost to its top set of developers – Microsofts own application product teams. The Chinese wall between Redmonds OS and Application developers is a fiction like the Great Wall of China being visble from Space. And ISVs having equal access to those – as Joel says “riiiightttt!”
So here we have Joel Spolsky, former Microsoft employee, developer using primarily Windows technology such as ASP, VB6, Visual Studio, etc – and he is saying such things as:
“Microsoft … is trying to convince you to use new and complicated external technology like COM+, MSMQ, MSDE, Microsoft Office, Internet Explorer and its components, MSXML, DirectX (the very latest version, please), Windows Media Player, and Sharepoint… Sharepoint! which nobody has; a veritable panoply of external dependencies each one of which is going to be a huge headache when you ship your application to a paying customer and it doesnt work right. The technical name for this is DLL Hell. It works here: why doesnt it work there?”
“I was shocked to discover that our customers with Windows Server 2003 were having trouble running FogBugz. Then .NET 1.1 was not perfectly backwards compatible with 1.0. And now that the cat was out of the bag, the OS team got into the spirit and decided that instead of adding features to the Windows API, they were going to completely replace it. Instead of Win32, we are told, we should now start getting ready for WinFX: the next generation Windows API. All different. Based on .NET with managed code. XAML. Avalon. Yes, vastly superior to Win32, I admit it. But not an upgrade: a break with the past.”
“Outside developers …. have defected from the Microsoft platform en-masse and are now developing for the web. Paul Graham, who created Yahoo! Stores in the early days of the dotcom boom, summarized it eloquently: There is all the more reason for startups to write Web-based software now, because writing desktop software has become a lot less fun. If you want to write desktop software now you do it on Microsofts terms, calling their APIs and working around their buggy OS. And if you manage to write something that takes off, you may find that you were merely doing market research for Microsoft.”
“And if youre developing a Windows GUI app today using Microsofts “official” latest-and-greatest Windows programming environment, WinForms, youre going to have to start over again in two years to support Longhorn and Avalon. Which explains why WinForms is completely stillborn.”
“Microsoft would love for me to stop adding new features to our bug tracking software and content management software and instead waste a few months porting it to [.NET], something which will not benefit a single customer and therefore will not gain us one additional sale, and therefore which is a complete waste of several months, which is great for Microsoft, because they have content management software and bug tracking software, too, so theyd like nothing better than for me to waste time spinning cycles catching up with the flavor du jour, and then waste another year or two doing an Avalon version, too, while they add features to their own competitive software. Riiiight.” This argument is , by the way, exactly what we have made in our Hold on Dot NET article at theOpenSourcery.
“So the Web user interface is about 80% there, and even without new web browsers we can probably get 95% there. This is Good Enough for most people and its certainly good enough for developers, who have voted to develop almost every significant new application as a web application.
Which means, suddenly, Microsofts API doesnt matter so much. Web applications dont require Windows. Its not that Microsoft didnt notice this was happening. Of course they did, and when the implications became clear, they slammed on the brakes. Promising new technologies like HTAs and DHTML were stopped in their tracks. The Internet Explorer team seems to have disappeared; they have been completely missing in action for several years. Theres no way Microsoft is going to allow DHTML to get any better than it already is: its just too dangerous to their core business, the rich client. The big meme at Microsoft these days is: Microsoft is betting the company on the rich client. Youll see that somewhere in every slide presentation about Longhorn … the trouble is: its too late.”
“Much as I hate to say it, a huge chunk of developers have long since moved to the web and refuse to move back …. Nobody …. wants to develop for the Windows API any more. Venture Capitalists wont invest in Windows applications because theyre so afraid of competition from Microsoft.”
Joel is right on . Microsoft – by taking over larger and larger chunks of the Windows market, by allowing its ISV developers ever less revenue possibilities let alone joint marketing help; and by making rapid changes to its APIs with ever less backward compatiblity – Redmond has alienated if they have not outright eliminated a good portion of the ISV community that made them number one. Of course, Redmond does RealPolitik. They know that ISVs are much less crucial to them now – and for the big revenue markets they have their own ambitions as the Gates of Longhorn becomes a limited access community with admission/participation to only those who can afford the ante and the notable disadvantage of competing with Microsoft application developers who are truly “on the inside”.
So now my question is this – if Microsoft have lost the faith and allegiance of a Microsoft-loyal developer like Joel, how are they going to keep other ISV developers on board when Longhorn involves such drastic, fundamental, and costly changes ? Hmmm … maybe they just dont bother to.