The problems with Vista laid bare
REGARDLESS OF WHAT Bill Gates might have claimed in interviews, a lot of the goodies in Vista have - I'll be diplomatic - drawn inspiration from rival products, primarily Apple's Mac OS X. The trouble is that Microsoft has prioritised the wrong bits, taken the wrong inspiration. And the sad irony is that if it had made different choices, we'd have got a simpler, faster, safer Vista a lot sooner.
So what sources and where has MS got its ideas from? And where should it have done so instead? You don't have to look far.
System-wide instant search and a query-driven, location-independent view of the filesystem are very useful things to have. Microsoft spent years working on "Windows Future Storage", a complex system that would store all your data in a SQL database.
Instead, Apple came up with Spotlight. A minor tweak to the filesystem code means that every file saved to disk is indexed as it's saved, making it simple to offer near-instant file searching. Once you've got that, it's relatively trivial to offer folders showing all image files or all files containing "Dear Mrs Jones" or all files of over 38.45Kb generated by used "alice" between 2:30 on 13 April 2004 and 5:15 on 26 September 2005. No need for a big heavy relational database or SQL or anything else.
And guess what happened? Microsoft quietly dropped WinFS and Vista gained a very Spotlight-like index-driven search system instead. On Linux, GNOME's Beagle search is much the same. If you use an older version of Windows, you can get much the same functionality from Google Desktop Search, MSN Search Toolbar or others; they don't have the benefits of integrating with the shell, or of being able to put indexing hooks right into the filesystem, but the end result is similar.
The idea for Vista's pseudo-3D GUI surely came from OS X - as it did with open source versions such as Compiz and Beryl. The live previews of taskbar buttons strongly resemble the live icons in OS X's Dock. The visual inspiration for the 3D window flipper was probably Sun's 3D Java desktop Looking Glass, but the competitive pressure was surely from OS X's Expose.
A bit of background
Bear with me for a second. To understand what Vista does and why, you have to know the history - and the history
comes from a different company.
The whole concept of using a 3D graphics card to accelerate the windowing system comes from the Mac's Quartz Extreme. Apple's OS X is based upon NeXTStep, NeXT Computer's pioneering Unix-based OS from the 1980s. The NeXTStep GUI didn't have hardware acceleration, because it was drawn by Display PostScript, which was too complex for the simple 2D graphics cards of the time to provide any useful help. OS X's graphics system, Quartz, uses Adobe's royalty-free PDF imaging language instead - which is derived from PostScript anyway. In OS X 10.0 and 10.1, Quartz was unaccelerated.
Modern 3D cards, though, are powerful processors in their own right - as is demonstrated by the fact that they're getting used for real computation now, such as the GPU version of Folding@Home. The innovation in Quartz Extreme, which appeared with OS X 10.2, is that Apple's engineers found a way to use a 3D card to speed up their GUI. In QE, each actual window is handled as a 3D object by the GPU - which means that the GPU does the grunt work of compositing (calculating which window appears on top of which other ones, which bits are hidden and so on), moving windows around, scaling them and so on.
What that means is that suddenly all these special effects are computationally "cheap" - in other words, they don't take much CPU power. It's not doing the work, the graphics card is. This being so, not only can the developers use them more widely. So, you get pretty but largely gratuitous effects like transparency, drop shadows and zooming translucent "ghost" icons when files are double-clicked - but it also enables useful new features, like Exposé. In case you're a deprived Windows user, I'll explain: Exposé is a feature of the OS X windowing system where hitting a hotkey shrinks all the windows onscreen - either showing all a single application's windows side-by-side, or all applications side-by-side, or even zooming them all offscreen so that you can get at the desktop for a moment without minimising or otherwise disturbing the arrangement of your windows.
There are several important points to realise here.
Firstly, all the shrinking, scaling and other "chrome" is done in hardware, so it puts no extra load on the CPU.
Secondly, all the chrome is part of OS X's Quartz graphics API - these sorts of features are an inherent part of using a sophisticated language like Postscript or its descendant PDF to implement the display. This means that the developer doesn't have to make great extra efforts: they can just specify a window as 80% transparent or tell Quartz to rotate it 74° clockwise and shrink it 18% and it just happens. Such facilities are built into the OS, so it does the grunt work of implementation, not the application developer.
On a machine with a poor graphics card, the effects are rendered in software, slowly - so even users of old Macs don't miss out on the fun. But on a modern machine with a powerful card, it all happens in hardware, automatically, and the programmer need neither know nor care. That's the third benefit - implementing things this way doesn't exclude users with older, slower hardware. It levels the playing field for developers and users alike.
The Microsoft way
Compare this with Microsoft's effort in Vista. All the chrome happens through extensions layered on top of the
basic 2D Windows GDI (Graphical Device Interface). If the user has one of the Basic editions of Windows Vista, they
don't get the 3D effects at all - those editions don't include the feature. If they have one of the more expensive
editions but a low-spec graphics card, they don't get the snazzy effects either, because they only work on certain
CPUs.
Which means that the developers have to take these things into account. And, of course, all this stuff is new in Vista. Microsoft has realised the implications of this and is releasing an update for XP to bring some of the new APIs to older versions - but if you're on Windows 2000 still, forget it. Naturally, along with the down-market Vista customers, XP users don't get the new 3D effects, either.
So if a developer incorporates this 3D stuff into their app, it won't display on all versions of Vista and won't work at all on older versions of Windows. Which means more work for the programmers, ensuring that things degrade gracefully.
To be fair, these problems aren't unique to Vista. Now that this 3D whizzery has been done, naturally, everyone's doing it. In the open source world, there are two parallel efforts - AIGLX and Compiz. The technical details of how they work are irrelevant; suffice to say that they both use the 3D card to render and display the desktop, using two different underlying approaches. That's one of the joys of Free software - with no accounts department to have to justify things to, multiple different approaches can be tried. The one that works better or has some compelling advantage will succeed.
The snag is that the same problems that face Microsoft, trying to bolt 3D onto a twenty-year-old 2D-based imaging model, also face the Linux world. On the Free side of the fence, though, users replace and update their software far more often. New releases of Ubuntu Linux come along twice a year, the same as its GNOME desktop - very roughly ten times as fast as the Windows rate of about twice a decade. And of course it usually costs little or no money to update to a new version of Linux, whereas every successive release of Windows gets more expensive than before.
So why are we getting all this 3D glitz, anyway?
Regardless of where they come from, these sorts of features are rapidly becoming not only accepted but expected
in modern desktop OSs. So we can't really blame Microsoft for doing what everyone else is doing. It gives the "wow"
factor, the instant appeal of the shiny, which is the main driver of the Vista marketing campaign. Although of course
the real thing propelling Vista uptake isn't adverts or upgrades, it's that soon all new PCs will come with Vista on.
If it could afford to be patient, Microsoft could save its massive promotional effort - in a year or two, Vista will
all but replace XP anyway.
The main reason it's going to all the trouble is twofold. For one thing, Microsoft makes a lot more money on an upgrade copy of Windows or Office than from OEM bundled one, so it is in the company's interest that people buy Vista. More significantly, though, it needs them to want Vista. Microsoft, along with the whole PC industry, is predicated on growth: they really need all their customers to dump XP and buy new software - and hardware - as soon as possible.
Actually, in recent years, the rate of improvement in PC performance has dropped off. The boom years were the 1990s, when every eighteen months, PCs got roughly twice as fast. But this is not what the famed "Moore's Law" predicts. What Intel cofounder Gordon Moore actually said was that the number of transistors it was possible to put on a chip for a given cost would double every year and a half. For a while, more transistors meant more speed - but it doesn't any more. Processor designs have got to the stage of complexity where it's difficult to make them much faster while keeping the costs down. The rate of improvement in raw speed is slowing: now, they're spreading sideways instead of upwards: more cores, more memory, GPUs that can perform more complex and more elaborate 3D rendering in hardware, and of course, bigger disks and faster communications links.
Acting against this, though, is another driver: more transistors take more power, even as they continue to get smaller and smaller. Computers with more CPU cores and more capable GPUs require more electricity to run and they generate more heat - so the machines are getting bigger and hotter and noisier, and designers need to go to greater lengths to counter these trends.
Which makes the computers harder to sell. They don't actually work much faster than older computers, they just handle lots more data and can present it to the user with more snazzy visual and sound effects. Even for gamers, one of the hardcore performance-driven markets, the main benefits are being able to fill larger and higher-resolution displays with crisp high-definition graphics while keeping the refresh rates up.
In summary, we're not getting fancy 3D effects and other new features because we need them or asked for them, we're getting them because they're what modern PCs can do, and the vendors - Apple included - need to find ways to make these new features attractive and desirable because they need to keep selling more computers.
The only difference between Apple's method and everyone else's is due to history. Back in the mid to late 1980s, when Steve Jobs was kicked out of Apple and started NeXT, he hired a selection of the best and brightest computer systems designers around, and starting with a clean sheet, they set out to build the best educational computer that money could buy - based around educational standards like Unix and commercial ones like Postscript, but intended for a market that wasn't as price-sensitive as the home and business ones, which would pay for and expected powerful machines with big screens and integral networking. The NeXT team made some very smart choices back then and Apple inherited those benefits when it bought NeXT - and thus got Jobs back on board - more than a decade later. All Apple's own efforts at designing the future - Pink, Copland, Taligent, OpenDoc, CyberDog and so forth - came to nothing and ended up in the bin.
The vision and the foresight came from NeXT, which took the best of what was out there at the time (BSD Unix, Motorola's 68030 and 68040 processors and some Digital Signal Processors), added the most promising future-looking technologies (Mach, Display Postscript, optical storage), and aimed high, for functionality not price: integrated standards-based networking, big high-resolution displays, laser printers for output and so on. NeXT also made sure that they were best-of-breed in areas like development tools, cross-platform networking and support for upcoming standards like Internet email and multimedia.
Much of this didn't deliver - there's little sign of the CPUs, DSPs or optical drives in modern Mac OS X machines. Overall, though, the bets paid off handsomely, and nearly two decades later, everyone else is still playing catch-up.
In the second and concluding part of this article, I'll look at the areas that Microsoft didn't prioritise when it was developing Vista - and which it arguably should have. µ
