How Microsoft Lost the API War [2004]
joelonsoftware.com
joelonsoftware.com
1. Advances in web application technology like HTML5, Sproutcore, and so forth.
2. New "platforms" like smart phones, tablets, and ebook readers where Microsoft doesn't dominate.
3. Getting back to point #1, the possibility that nobody uses desktop applications, where by "nobody," I mean "fewer than 10,000,000 people," to borrow Joel's phrase.
Create a fast drawing program
Build a real-time spell checker with wavy red underlines
Warn users that they are going to lose their work if they hit the close box of the browser
Update a small part of the display based on a change that the user makes without a full roundtrip to the server
Create a fast keyboard-driven interface that doesn't require the mouse
Let people continue working when they are not connected to the Internet
These are not all big issues. Some of them will be solved very soon by witty Javascript developers.
What's left on this list today?
Microsoft's real problem was they spent far too long pouring resources into preparing for an enemy that never really arrived. Imagine instead if they had spent the last ten years pouring resources into keeping IE, Hotmail, and internet search, as cutting edge products.
It's kinda mind-blowing to think what the world might look like today if Microsoft hadn't basically surrendered these markets at the turn of the century.
He's also right about Microsoft's history of radical compatibility, and how it has faded away.
What about developer tools now? VS2010 for C# and Eclipse for Java are pretty equivalent IF you pay extra to augment VS with Resharper. ADO.NET and JDBC are both good now. We have to give MS credit in 2010 for keeping up with open source.
But Joel is right about the MSDN faction promoting byzantine solutions to problems.
It will be interesting to see how the HTML5 / Silverlight / Actionscript-Flash issues play out. It's going to be hard for the market to support more than two of these.
2. MS has this horrible problem of not actually using their own products. No big apps came out of MS using WPF/XAML, why would anyone else use it?