Flip3D, Exposé, Aero Capable hardware, and Sample Code...

Lots of comments after the "John Tokash" post a while back... I got a handful of requests for sample code for how to do the live window previews like we use in the updated Taskbar in Windows Vista. I'll post some samples once Beta 2 has been released that folks can build on.

One reader asked about how Flip3D compares to Exposé on the Mac. Not surprisingly, we get this question a lot... along with "why do you have both Flip3D and Alt-Tab in the product?"

The answer is actually pretty simple - these are different solutions to different, but related problems. People often say "these are all the same thing" but I really don't believe they are. In general - what a window manager does is exactly that - allow you to manage your windows.

Historically, we've always had a hanful of solutions in the product for getting from one Window to another. Clicking on the window you want is probably the oldest solution, but not always the most effective if the window you want is not in view.

So at some point, long ago (before I was at Microsoft), they added the "alt-tab" keystroke into the system, which let you switch between open windows. Then in Windows 95, they added a thing called the "Taskbar" at the bottom of the screen, which also lets you switch between open windows, along with showing them to you in a list.

Window management solutions on other operating systems have similar functionality... when I was in school, my favorite way to get around was by setting up fvwm to make it so that clicking the middle button of the mouse on the desktop would get me a list of open windows to switch between... fvwm was very flexible in how it could be configured (probably still is, it's been years since I've played with X) so different folks could create their own systems for this.

When we designed the updated Alt-Tab UI for Windows Vista, the improvements came pretty naturally - replace the icons with live previews, and make sure you can fit more on the screen than we did past. There are also some hidden tricks in there that people may not have noticed yet...

In recent builds (including the December CTP), Ctrl-Alt-Tab brings up the UI in "sticky mode"... essentially it's like a modal dialog that dismisses when you click outside of it. The nice thing about sticky mode is that you can stop and look at everything that's open and decide what you want to do without having to keep the alt-key down. The arrow-keys work in sticky mode, so you can skip around the list without having to tab through each one...You can also click on a window-preview from sticky-mode and go right to that Window.

This gave most users a really solid experience in terms of between switching windows they had open, and also provided a great solution for giving folks an "all-up" view of what's happening on their PC.

In any case - when we sat down to create Flip 3D there were other factors we were looking at that we didn't focus on with the Alt-Tab improvements. One problem is that we know that one particular problem that knowledge workers using Windows run into is that they frequently have multiple similar-looking windows open at the same time... usually email messages, but also forms for data entry, IM conversations, even Microsoft Word documents can look pretty similar at times, especially when scaled down to 128x128 pixel thumbnails.

For these situations, being able to sort through open windows one-by-one, at close to full-size, is really important, so you can get as much of the "full fidelity" of the window as possible when you're looking at it, you also don't want to have to click on each of the windows to bring them up, because that will ruin your z-order, and with the taskbar can involve a lot of clicking, restoring, minimizing, etc. to get the one you want. To make the itneraction of flipping through the windows a bit smoother/faster, you can actually roll the mousewheel forward and backwards to riffle through the Windows more quickly to get to the one you want.

So how does this compare to Exposé in OSX? IMO, it's really a different beast - the interface model in OSX is actually pretty different from what we have in Windows. The two most relevant points of difference in this discussion are that OSX doesn't have a taskbar - they have the "Dock" which is sort of like a taskbar in that you can minimize windows to it, but it doesn't actually ever show you the list of your open applications anywhere or the list of open windows. The only way to get a view of all the open Windows is with Exposé, and open applications using "Command-Tab". They don't have a "one-by-one" solution like Flip3D, but it's also not clear to me that the Mac community has the same "lots of windows that look the same" problem that heavy Windows users run into.

In any case, they do deserve credit for shipping a great solution for their customers on this front. If you're interested in some more creative thinking from Microsoft in the area of Window management and Task Managment, it's worth taking a look at the "Task Gallery", which is some work that was published way back in 1999, really pushing the boundaries of what you can do with D3D on the deskotp. Some of this stuff was way ahead of its time.

Also some interesting stories in the news on ExtremeTech that was linked to by Slashdot, and eventually by Scoble regarding what hardware would be required to run Aero on Windows Vista. It was interesting to me to see that this is "news". We've been pretty clear about what the requirements would be for quite a while now... DX9 hardware, new drivers required, enough memory to support the full-screen render-targets and the Windows you have open. If you look up old WinHEC slides from 2004, you'll find that these requirements haven't changed much at all since then.

I think people also forget how long DX9 has been around... as an example, the ATI Radeon 9700, one of the earliest DX9 parts available, launched in October 2002, and will be roughly 4 years old when Windows Vista ships. Upgrading to DX9 is cheaper than ever these days... head over to newegg.com (or your other favorite retailer) and you ought to be able to find an add-in card for under $50 that will get you going with Aero.