Tuesday, April 04, 2006

Windows Vista delayed to 2007 and here's why...

People are speculating why Windows Vista is being delayed - yet again. Jim Allchin said in February, "Vista is feature-complete, but the company [Microsoft] still has a lot work to do on it."

Now what do you suppose that means? Well, there are a few things I can think of:

1) Graphics work. The icons still have to be finalized - a lot of them haven't really been modified yet to use the shiny new Vista look-and-feel (i.e. 256x256 PNG icons - which are not compatible with most resource compilers).
2) Textual finalization. Choosing the right words for each dialog and UI element.
3) Documentation additions and changes.
4) Creating a consistent theme throughout every single area, nook, and cranny.
5) Move the Network Identification dialog to yet another obscure location. (Sorry, running joke - each version of Windows seems to move this dialog to a completely new and unexpected location requiring IT admins to play the digital equivalent of hide & seek).

6) Bugs. Zillions of bugs. In fact, the whole OS is one big bug waiting to be exploited by any software company's installer. See, Vista is relying on DirectX's Direct3D for the graphics engine (a.k.a Avalon). Traditionally, DirectX has been an unsupported component of Windows used by bleeding-edge technology such as video games and therefore has had limited exposure to average users. However, anything (including your favorite application's installer) will now crash Vista itself because of DirectX.

The thing is, DirectX is unstable. Take Valve's Half-Life 2/Counter-Strike: Source for example. That game went through roughly FIVE years of development and testing and has heavy dependencies on DirectX. Despite their best efforts, DirectX still freezes and locks up the computer every once in a while. This is the type of lockup where pressing the three-finger salute (Ctrl-Alt-Delete) doesn't do anything...or if it does (e.g. opens Task Manager), you can't see anything. Sometimes DirectX BSODs the machine (haven't played anything that did that for a while now, but it can still happen even with very well written games).

Because Avalon (the brand new graphics engine in Vista written in under ONE year) depends on DirectX, the OS itself is inherently unstable. The only way to fix the problem is to re-write DirectX. From the ground up. See, DirectX is one big hack on top of a bunch of little hacks. These hacks are directly affected by what gets installed into the system. Say, for instance, you use Windows Movie Maker 2 (WMM2) on occasion (e.g. once every 2 months) to handle creating your home videos. Then you install WinDVD or PowerDVD or some other DVD player software. Then one month later you try to use WMM2 and it crashes when you drag something to the timeline. Now, unless you are intimately familiar with the technology of DirectX, you would never realize that WinDVD might have installed ivaudio.ax - a DirectShow (part of DirectX) filter and that it is why putting a video clip on the timeline in WMM2 caused WMM2 to crash.

See what I mean? Simply installing an application has the potential to cause the OS itself to crash with no way to recover it. Microsoft is probably just discovering this...which means that this latest setback is only the first of many. Basically, unless they re-write the underlying technology that drives DirectX, Vista will never get out the door. If they don't re-write DirectX using good software design principles (e.g. see my book "Safe C++ Design Principles") and they still ship it anyway, it will be the Windows Me disaster times 10.

Now, it is important to understand why Microsoft is doing this in the first place. Basically, they wanted to make the first 3D vector-based OS to take out the Flash franchise that Adobe now owns (Adobe, unfortunately, bought out Macromedia prematurely and became Microsoft's new target). Since DirectX already existed, they decided to swap out the existing (and stable) graphics engine for DirectX. It probably only took a couple weeks to actually do the initial beta development to see if it was even feasible. Some idiot in management didn't realize the dangers of dropping in DirectX as the graphics engine and the idea for Vista was born! Is it any wonder that a number of developers left Microsoft? They saw disaster coming and didn't want to be a part of it. Bail while the bailing is good.

7) One last (and highly probable) possibility: Nothing is wrong with the internal Vista schedule. It is being intentionally pushed back because Microsoft has to get a little extra time to deal with the new Adobe/Macromedia merger. Originally, the threat to Microsoft being addressed by Vista was just Macromedia. So now the primary target for Microsoft has shifted to Adobe. Microsoft now views Adobe as the primary threat to the business and they have to figure out how to make Adobe hurt a lot (financially along with their user base). That's going to take some extra time the company hadn't been planning on. It is hardly coincidence that this took place shortly after the Adobe/Macromedia merger was announced. It gets the public eye away from Adobe back to Microsoft. Microsoft is intentionally causing people who need the holiday sales from Vista's release to throw a fit so the company gets free marketing and Adobe is forced to take the sidelines. Remember, marketing is (traditionally) more important to Microsoft than actually making a well-written software product.

No comments:

Post a Comment