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.
I think your point #2 is the critical one and it seems to be at odds with the premise of the article. Microsoft is now trying to keep it's old API intact on a platform (tablet) that it is not suited for. If Microsoft had really got behind a new API (even if it was a OS X => iOS :: Windows 7 => ??? situation), it would have a better chance as opposed to the drumming it has taken.
I don't think it's at odds with the article. Microsoft irritated developers by pushing wave after wave of new desktop APIs on them for no good reason, and now that they have a compelling justification (new form factors) to release a redesigned API they can't afford to risk it because they've worn out the patience of developers.
I see your point. I was going from the premise of keeping the current API vs new platform needs angle. Your right that the "new cool way" wears thin. It almost seems that if you are a Microsoft developer you shouldn't use any new tech unless the Office division starts using it.
Which is much the same of what could be said for WinForms, MFC, and soon even Silverlight will be thrown under the bus or at least bolted on top of HTML5 to keep it alive.
I don't think there really was an API war. What happened to what Joel considers "Microsoft's crown strategic jewel", the Windows API, was also largely irrelevant.
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.
I like your analysis, but bear in mind Joel wrote this in 2004. MS did waste time and resource trying to extend Windows to the internet, or somehow wish away the internet. Exactly in what year did MS realize this? Only interesting in so far as history is interesting.
There's an astonishing amount of really wise and relevant stuff here six years on. Joel is correct about automatic garbage collection being the big win in the PERL / Python / PHP / Javascript / Java / Ruby / Scala / C# / VB language generation. It's still true. C and C++ were always hard to use to develop solid and secure code, and now there's no reason to.
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.
16 comments
[ 3.2 ms ] story [ 50.2 ms ] thread1. 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.
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?
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.
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?
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.