Windows Vista needs more time
Thursday, August 3, 2006 by Frogboy | Discussion: Windows Vista
When I started writing this article, I thought I might be a voice in the wilderness. Since beta 2, I have been privately telling some of my confidants that Vista's development was not on track for their release schedule.
By profession I'm a software developer. Specifically a Project Manager. None of my projects are remotely as large as Windows Vista but it doesn't take someone with that kind of experience to recognize that Windows Vista is not where it needs to be in order to ship in good shape at the end of the year.
My friend Robert McLaws and I have been going over this for months. My argument with beta 2 was straight forward -- Whistler (May 2001) was something you could actually run, Vista beta 2 was not. In fact, even now, August 2006, running a very recent external build (5472 but not 5484 -or later- because Microsoft's internal ISV program is ridiculous but that's a whole different issue), it's not something I could run as my primary OS. As he writes, he had given Microsoft the benefit of the doubt but it's become clear that Vista is not likely to be solid by the time it's supposed to go gold. Paul Thurrott is also pondering Vista's ship date he's more ambivalent.
I'm not ambivalent: Vista is not ready. I've been beta testing OSes for going on two decades. I use them as both a developer and user. We helped design the OS/2 Warp 4 desktop with IBM. Windows Vista is not ready. And this is the first OS I've tested since OS/2 2.0 back in 1991 that I felt was not ready for it's proposed release date. I don't say "It's not ready" lightly. And no one is going to accuse me of being some "inexperience kid barely old enough to drink alcohol."
I think Windows Vista not only should be delayed a little, but probably should be delayed a lot. And I say that even though a delay in Vista is going to cost our company a lot of money because we've betted so heavily on Windows Vista coming out 1st quarter 2007. The fall distributor/retail trade shows are heating up and we have a line of Windows Vista focused products we want to show that we would have to put off if Vista gets delayed. But even with that, I think Microsoft should push Vista back not just a quarter but possibly all the way back to August 2007.
The problems that have been reported publicly are problems that mostly affect end-users. But they go deeper than that. A lot of the underlying plumbing is not ready for prime time. Compatibility is not anywhere near where it should be. And just day to day usage of it is not acceptable.
Let's start with the basics -- Windows Vista is a fundamentally sound OS concept. It is a matter of finishing it that is the issue. Take whatever you think the greatest piece of software in history is and imagine how things might have gone differently had they shipped it two months sooner.
What will happen if they ship Windows Vista if it comes out in 1Q2007? I predict it will be a disaster. Driver compatibility, rough edges in software working, weird and unpolished UI design, etc. The acronymn UAC will come to haunt Microsoft and they will rue the day they didn't wait just a few more months to get driver compatibility together. Let me outline more below.
Windows Vista is just not reliably compatible with existing software and devices. This comes in two forms of compatibility. The first form is where Microsoft needs to make tweaks and changes to get existing software and hardware to run seamlessly. The second involves third-parties making the necessary updates to their software.
That printer utility that you like so much, that cell phone USB connection that lets your laptop get Internet access, the handy transfer applet on your digital camera, the proprietary software that you use to do video, the program you use to get shows from your DVR to your computer, the shareware utility that manages your contacts over your LAN, that fingerprint reader for your new laptop, may all need to be updated.
Many of the changes will need to be done by the third parties. But how can third-parties update this when the underlying infrastructure is still in flux? How can they get updated when the OS itself is only now becoming reliable to use? Some of these things take time. We're not talking the week to fix the endless security pop-ups that beta 2 had. We're talking time to figure out a very new system.
On the flip side, there are things that are endlessly frustrating to developers to see Microsoft screw around making Office 2007 have a fancy (and extremely custom) interface that works fine in Vista while their own skinned applications get broken. There's a lot of programs out there with custom interfaces that behave very flakey under Vista. Developers will need Microsoft to either fix that or make sure developers have enough time to update their apps. But things keep changing under the hood so much that just when developers think they have something working, it gets broken again -- and supposedly "release candidate" 1 is due out soon.
Because so much work has gone towards improving usability in Windows Vista -- a cleaner, more elegant environment, it is not surprising that there are also lots of bugs to work out. And those bugs are still there.
There's so many major betas coming together that I feel like I'm being taken down by thousands of tiny pinpricks. A weird IE7 issue here, a strange start menu issue there, a bizarre error dialog there. It's frustrating and it adds to the first issue - if we're wasting hours fighting with the OS to open a file that it thinks I no longer should have access to for some strange reason, then I'm not writing the code I need to write in order to get my stuff to run on Vista because Microsoft broke it.
Memory usage and performance has improved greatly in recent builds. Kudos to Microsoft. But it's still no where near where it should be. There are still tons of processes on boot up that really shouldn't be on in a default boot. One can almost envision some internal Microsoft political power struggle over who gets to have their thingy on at boot and the guys who are winning are not winning because of need but because of internal clout. At least, that how it feels at times.
Then you get to the performance of the system if you're not running Aero (or as we call it, not running the DWM). All the 2D hardware acceleration that has been slowly put into versions of Windows NT since 3.5 has been jettisoned. In Vista, as it stands, if you're not running with the DWM then you ain't getting nothin. It's going to be slow and painful.
It's like they spent a decade getting 2D performance good and then in Vista they tossed it all out and started from scratch. Now 2D is done in software even though all existing apps use GDI -- and Avalon (WPF) -- is not fully hardware accelerated either. We'll get to that.
This is where things get really ugly. As a developer, Windows Vista is supposed to deliver. I'm most worried about Windows Presentation Foundation. The replacement to GDI is mostly not hardware accelerated which means that things run very slowly.
Maybe the video card makers need to update their drivers. I don't know. But I do know that it's incredibly difficult to know what can and can't be done. Disecting Flip3D to what calls it's using seems silly. It's using Milcore anyway. In fact, at this point, developers are just bypassing WPF and going right to Milcore which is not how it's supposed to work.
But not all Dwm calls are hardware accelerated it seems. Dure, DwmRegisterThumbnail and the like are hardware accelerated because Flip3D makes a good video demo but at this stage, if RC1 is only weeks ago, we should have a list of APIs that are hardware accelerated.
Let me give you an example -- last year Microsoft got rid of WinLogon as we know it. Lots of programs use that to launch themselves. It's August 2006, there's no replacement. How's that finger print reader going to work? Dunno. How are those programs that need to launch before the shell comes up going to work? Dunno. And like I said, this is just an example.
The thing is, the sand is shifting so much when it shouldn't be at this stage. New builds come out and break new things. Teams at Microsoft are rushing their brains out to get things checked in which means mistakes are going to happen.
Time enough to win
Microsoft wants to please its enterprise customers who are "subscribing" to get Microsoft updates. But no one is going to be pleased with a Windows Vista that isn't ready to go. This version of Windows has so much promise. It just needs enough time.
Like Robert McLaws, I think Microsoft should do a beta 3. I think it should plan on doing it in October. With enough work and if things really progress well enough, they could get it out by March or April of next year (though I still think August 2007 is a better bet).
We've had Windows XP for 5 years now. Another few months won't make that much of a difference in the bigger scheme of things. But if the OS comes out and it's a disaster, Microsoft will find OEMs offering users the choice between Vista and XP and a bad reputation could cost Microsoft far more than the few extra months would.
Robert Mclaws has informed me of a blog that outlines the replacement to Gina (the winlogon stuff). SO okay, Microsoft has finally recently gotten around to documenting a replacement to Winlogon...on..a...blog. See here.