Vista 2007 Accountability, and the Future of .NET

The Fire the Leadership Now article at Mini-Microsoft calls for accountability for Vista’s slip.  I don’t know enough about internal Microsoft politics to know who’s really responsible for this sort of thing, but the Microsoft employees posting there probably do.

I’m looking forward to Vista.  Commenters in that article are quite hard on it, but really Vista has a lot of architectural improvements that will make everyone’s life better once it’s a mainstream OS.  There isn’t a compelling 30 second sound bite summary of what’s new that will make you want to switch, but it’s just better all around. 

I’m also holding off on buying a new PC until at least a near final beta of Vista, so I’d expect folks like Dell are probably quite annoyed as well.

It’s like the difference between a 10 year old car and a new car - they both do the job, but the new one maybe has an iPod dock, more cup holders, and is more fuel efficient.  You might not upgrade for any of these reasons, but they’re things you appreciate when you get a new car because you were due for one anyway.

But I wanted to comment on the calls for Microsoft old-timers to resign.  Here’s a little anecdote.

When I was at the PDC, I had breakfast with a Microsoft employee whose name I can’t remember, but he was on the .NET CLR team.  He was telling me that Vista might ship without WinFX, because of pressure basically from the Windows old-timers.

To most Windows developers, this is the wrong decision.  Microsoft is being called out for having so little .NET code in Vista after pushing it so hard for so long, and that’s a fair question that needs to be addressed.  Sure, Microsoft is using .NET for a lot of projects, but why not the most important one?

Personally I think it’s a bit of a turf war.

It’s the core OS guys, the guys that gave us Win32, vs the CLR guys.  The .NET Framework is the replacement for Win32.  You can write applications today to the framework and never have to work at the Win32 level.  When you’ve spent the last 10 or 20 years working on Win32, it’s hard to let it go.

But the .NET transition is necessary.  Developers need richer base services than Win32 provides, and frankly, Win32 is a mess.  The core stuff that it does (USER, GDI) it does well, but using a very procedural API.  If you want to talk to a database, make a web service call, or draw a 3D object, you have to learn a number of supporting technologies and disparate APIs. 

The .NET Framework gave us a beautiful repackaging of all of these technologies into one grand namespace that developers love.

Apple has done a brilliant job of moving their OS and their developers to new technologies when necessary.  Carbon completely replaced their earlier windowing system and developers had to rewrite their apps.  But Apple bought into it, OS X is built on Carbon.  Microsoft is having a hard time with the .NET transition, but it’s a vital one.  It’ll be interesting to see how this plays out.

Either Microsoft brass will force the old-timers to get behind .NET, or .NET will die. 

Why will .NET die?  If Microsoft isn’t willing to support WinFX in Vista, developers won’t use WinFX for mainstream desktop apps.  Today, developers are still using MFC and straight Win32 to write desktop apps when they’d be so much easier to write with .NET, because if they write their 500k app with .NET they have to include a 22 meg runtime.  No fun for a downloadable product.

If Vista doesn’t include WinFX, it won’t reach critical mass with developers.  Microsoft can’t maintain their current level of investment in .NET forever.  And when Microsoft stops investing in .NET, it will slowly die.