Thursday, October 11, 2007, 09:00 am
Road to Mac OS X Leopard: Spaces
Virtual Desktops of the X Window System
In academia, much of the computing work was being done on Unix workstations, which commonly used MIT's X Window System to supply a graphical desktop. By 1989, elements of Apple's virtual desktop space underlying multiple monitor support were exposed to X Windows users by the Solbourne Window Manager, which ran X Window applications in large virtual desktop space. The user could select specific regions of that virtual desktop to view on their monitor, similar to Xerox's Rooms, or Apple's multiple monitor support in reverse; rather than expanding the desktop across multiple screens, it gave one screen the ability to look at multiple areas of the off-screen desktop world.
There are some downsides to virtual desktops as popularized by X Window which prevented them from becoming popular on common desktop systems such as the Mac or Windows. The first is that applications have to be aware of virtual desktops, because they need to compensate for the possibility that they are not in view and can't update the screen or pop up a notification. X Window apps were already designed to be used in a window client/server system and subsequently make fewer assumptions about the display compared to consumer software titles. The result is that third party virtual desktop utilities for the Mac and PC commonly didn't work flawlessly with existing software.
The second barrier to virtual desktops is that they are a complication for users. Non technical users can get lost when their work is shuffled out of view if there are not obvious ways to get it back. The concepts of multiple users and file permissions are difficult enough; using a KVM switch to move between multiple computers on the same screen, or using an emulator to run multiple systems on the same PC can also be a source of confusion. The similarly complex idea of multiple desktops can quickly become more of a mystifying hassle for users than a benefit.
Virtual desktops have long been popular among Unix users; the feature was prominently built into the CDE taskbar (above; the four numbered buttons select between virtual desktops), which served as the standard Unix desktop through the 90s. Their Linux-using counterparts today similarly find virtual desktops second nature. CDE has been largely replaced by GNOME (below top) and KDE (below bottom), both of which similarly feature virtual desktop switching in their main taskbars.
At the same time however, Unix and Linux users also typically have the technical savvy and inclination to conceptually understand and keep track of what's going on in multiple desktops. Casual desktop PC users who don't live in front of their computers frequently don't see the benefit of virtual desktops. And those that do, run into the problem of virtual desktop solutions that don't work very well.
Windows' Virtual Desktop Problems
Microsoft has never implemented virtual desktops as a supported feature for Windows users. Adding virtual desktop features is certainly not impossible, and there are many third party hacks that add those features to Windows. However, since there is no standard mechanism for virtual desktops in Windows, apps aren't designed to use them, so they frequently don't work properly when one is installed. This makes virtual desktops unappealing for many Windows users, and further sets up a catch-22 by preventing any market for encouraging application vendors to adjust their apps to work properly.
Microsoft did deliver an experimental, unsupported Virtual Desktop Manager 'PowerToy' for Windows XP, artfully called MSVDM (an acronym Microsoft has already used for its Virtual DOS Machine, oddly enough). It simulates multiple desktops by minimizing and maximizing windows in groups, making each group a different virtual desktop with its own wallpaper background.
MSVDM lacks the functionality of virtual desktops for X Window managers, however. For example, it can't move windows from one desktop to another, or maintain a window in a given desktop when its TaskBar button flashes. As Wikipedia notes, "Application compatibility problems are common, because application developers do not expect virtual desktops to be in use on the Windows platform."
Even Microsoft's own Internet Explorer isn't MSVDM savvy. If you have multiple browsers open in multiple desktops, closing one unceremoniously wipes them all out. Microsoft's Visual Basic and Virtual Studio .Net also freak out when MSVDM is used, and if the PC is under any processing load, MSVDM occasionally falls into limbo mid-switch, leaving the user hanging in purgatory with no one to pray for them. Switching between Word and Excel can similarly cause their toolbars to disappear with no obvious solution. MSVDM is no equivalent to Spaces.
Interestingly, Microsoft delivered its first support for multiple physical monitors in 2001 with Windows XP, fifteen years after Apple delivered it on the Mac. That suggests that Microsoft may deliver support for multiple desktops like Leopard's new Spaces at some point in the future, perhaps in the early 2020s.
Mac OS X's new Spaces
Spaces in Leopard -- like any virtual desktop system -- allows the user more room for their windows to live in. As with any other platform, Apple had to address two inherent problems with virtual desktops: third party developer support and user complexity. If it failed to execute either goal, Spaces wouldn't be much beyond a curiosity. If it can deliver both, it will solve a variety of problems, including the one alluded to in the article on the Leopard Dock: too many minimized windows clogging up the right end of the Dock. See Road to Mac OS X Leopard: Dock 1.6.
Mac OS X encourages users to open multiple windows in multiple applications; it provides mechanisms for switching between applications (using the Command+Tab convention borrowed from Windows, which uses Alt-Tab) or between a specific applications' windows (using Command+tilde, something Windows can't really do because it doesn't define a clear and consistent boundary between an application and an open window; in Windows, sometimes an open window is a document, other times a window is a collection of documents inside an app. In Office for Windows, an open window can be either one, depending on how it was opened.)
Apple also provides Exposé for graphically selecting between open windows. These mechanisms encourage users to work with lots of open, overlapping windows. In contrast, Windows users are stymied by the constraints of the TaskBar and are trained by the window maximize button to blow up every application to take up the full screen, a holdover mentality from the text-based DOS, where every application was a full screen of text. The Windows environment discourages an effective use of many open windows sharing the screen and all visible at once.
The Mac OS X Dock allows users to minimize open windows into a proxy icon, but the system begs for a way to leave more windows open at once, and to allow rapid switching between functional sets of windows. That's the problem virtual desktops were designed to solve. As the Mac user base migrates from a static population of mostly desktop users of Quark and Photoshop to a growing iLife population represented by a majority of notebook users, the concept of virtual desktops begins to make more sense than the former ideal of being content with multiple monitor support.
On page 3: Third Party Support for Spaces; User Accessibility for Spaces; Everything in its Space; Trading Spaces; and The Outer Reaches of Spaces.
On Topic: General
- Google engineers talk fragmentation, how to make Android work for emerging markets
- Editorial: Apple's billions are building an empire for the future
- Review: AL13 raises the bar for iPhone bumper design
- Song skipping feature in Apple's 'iRadio' reportedly holding up Sony deal
- Music service's structure, plus Apple's culture, holding up 'iRadio' service