A few months ago I was discussing the possibility of writing a C# edition of my business objects book with my publisher. As you may know, the publishing industry has had a rough time of it over the past couple years, and so publishers are quite cautious about committing to new titles.

One primary concern about the C# book is that it is targeted at .NET 1.x - Visual Studio .NET 2002/2003. At the time, Microsoft was hinting that Whidbey (which we now know is Visual Studio 2005) would be out in the latter half of 2004. Shelf life for a book is a big deal. If a book comes out within a few months of the release of a major new version of the underlying platform, it probably won't sell terribly well. Consumers obviously figure they'll wait and get a new version for the new platform - I know I do

But I wasn't worried. Regardless of what Microsoft was saying, the fact is that during the entire 12+ years I've been working with Microsoft products they've never released anything on time. OK, that's probably not true, but when it comes to the OS or development products you can count on at least a 6 month delay all the way on up to around 4 years delay for things like Windows NT 5.0 (better known as Windows 2000).

And that's OK. Everyone misses delivery dates. I'd rather have a good product late than a crappy product on time. I don't complain about delays - I just plan for them.

I think that's the key to success. Listen to the rumors and the plans, then adjust your expectations to be realistic about what is likely to actually happen. Getting outraged by schedule shifts is pointless. They happen every time, on every project, so just plan for them.

I am not surprised in the slightest that Whidbey is now Visual Studio 2005. Nor am I overly disappointed. There's some really cool stuff coming in VS05 and I'd rather see Microsoft get it right than get it early. I must confess that I am a bit impatient to actually use this really cool stuff, but if a few extra months means it works great out of the box then that's awesome!

You can apply this to Longhorn as well. At the PDC there were hints of Longhorn in 2006. And you could overhead people in the hallways excited about getting it in just a few short years. That, for me, was cause for great amusement. The delays for an OS (especially something as big as Longhorn) are always far beyond those for development tools. I figure Longhorn in 2008 is closer, maybe even 2009. Then give it 18-24 months to roll out to a reasonable number of machines and then we're talking. So in 2010 we'll be able to use Longhorn - or so goes my guess.

I'd rather have that than another rushed product like Windows Me. What a blunder that was!! Besides, if they get it done before 2008 then that's just icing on the cake.

And not having Longhorn right away is OK. It has already spurred a lot of thought. I've seen projects start up to create XAML-like code generators for today's GDI+ technology. I imagine we'll start to see some GDI+ controls that do cool animations and fades. It isn't like DirectX is actually required for most of what we've seen coming in Longhorn. You can't tell me that GDI+ is incapable of rendering a gel button for heaven's sake...

So I'll impatiently (but happily) wait a bit to get the next version of .NET and dream of the day in the far future when I can measure the performance of my shop floor control application in frames per second.