I just spent the last hour or so reading Joel's post as well as a number of otherposts on this topic. I understand what Joel is saying, some of what he is saying I agree with, other stuff, not so much.
Evolution not Revolution
I think the one thing that historically Microsoft has gotten right and always understood is that it is about evolution not revolution, this is what they are starting to lose site of. (This is what Joel gets and what Robert really does not understand)
A revolution is a tumultuous event. Think about a revolution in a country, basically you rip out the existing government and you start new. This causes quite a disruption, currency becomes worthless, everything that was learned in the old government is erased. (currency being applications and knowledge being... well, knowledge.) When Apple decided to switch from OS 9 to OS 10 it was a revolution. They ripped out the old OS and in the process they basically screwed every company currently making money off of apps for OS 9, and they managed to screw a large portion of their customers. (I know because I worked for a company who used a ton of macs and had to switch to OS 9 all the time to use legacy pre-press apps) Of course in the software world this was about the equivalent of a revolution in a tiny third world county, we were all happy in Windows land oblivious to the scream of those poor vendors and users.
What is a much safer model is Evolution. We see evolution everyday, our current government was setup as an evolutionary government. A base of laws was formed, and ways to modify and amend those laws was created. Sometimes we travel down the wrong path, but we usually find our way back again... all of this without the bloodshed, loss, and pain of revolution.
Evolution is a great model for software development, most successful apps started small and gradually grew over time. This is the path that Windows has taken, there were a couple evolutionary leaps involved, but never a revolution. (It is not coincidence that most apps that are completely rewritten fail horribly)
The creation of windows and a GUI driven operating system was a revolution, it should all be evolution from here on out. (Until you can show me something like Neuromancer computing anyway) This means all old apps should run, old APIs should work, everything should be backwards compatible whenever possible. (Not whenever convenient, whenever possible)
.NET
Joel says some not so nice things about my friend .NET. I think he is barking up the wrong tree here. I think .NET is a great step in the right direction for Microsoft, even if everything did not go perfectly right. (The VB part being the biggest problem, for VB6 developers this was definitely a revolution and not all of them have made it out alive) But I think .NET is a good evolutionary step for Microsoft away from unmanaged and toward managed code. (The 1.0 to 1.1 breaks were a bad deal though)
Desktop ("Smart" Clients)
Joel also ponders Microsoft's focus on the desktop, this is somewhat understandable... they make most of their money on the desktop. This is why MS people are going around saying smart clients are the next best thing, how so many apps will be smart clients, and how everyone is just looking at them and shaking their heads. No one is building smart clients that I know of. (I know someone will email me and tell me they are, but most people aren't)
Microsoft knows fully well that the web is the greatest threat to their business, they knew this when they created IE and helped Netscape out of business. Netscape was building a development environment independent of Windows, this is what scared them. (I know Netscape was not doing all of it, but they were the app that would enable this new development environment) People at Microsoft will deny that they are trying to kill the web, but they are at least trying to stunt its growth and contain it. Of course there are different forces inside Microsoft, the ASP.NET team is awesome and is doing alot to enable developers to make kick ass internet and intranet application on the web, the other teams are secretly plotting behind their back to move more and more back to the client.
Longhorn, Avalon, WinFX, etc. etc.
Some people would love for you to believe all this is an revolution, that word just sounds sexier. They are singing "You say you want a revolution" when they should be singing "It's evolution baby". I think it is just a cleverly masked evolution, they just decided to try and package it all together to make it look bigger than it really is. Most apps will probably still be built using the old libraries (Because most people are still using WinXP and back), most new apps will be built on the web (Because it usually makes more sense), and I am sure most pre-longhorn apps will still work because otherwise people would not switch. I firmly believe that Microsoft will stay true to what it was built on, I don't think BillG or any of the other higher ups there will let a version of Windows ship that will not run the majority of old windows applications. (I am still surprised that so many old 95/98 apps run on XP...)
What I would love to do is see Microsoft release versions of Windows much more frequently, I don't understand why the gap has to be so large. I would love to see a new version of Windows every year or every other year, I know the testing cycle is pretty huge, but I think it could be accomplished. (This way they could stop packing features into SERVICE packs)
Microsoft is trying to make a big splash and say "come back to the desktop, the water is fine!" when all they are actually doing is screaming "Look the sharks are eating your old apps!" because breaking changes will remind people why they like working with HTML... I can go view Slashdot in Lynx and it will probably render just fine and I can look at a site written in 1996 today with IE.
Microsoft in General
So after all this you might be wondering why do I like Microsoft and work with their technologies? Basically I think alot of good comes out of Microsoft, and while they have done many things I don't like I can learn to live with them because the things I like far outweigh the things I don't like. (I guess just like a normal old relationship between two people)
-James
You made it all the way down here? You skimmed it didn't you......