Sean McBride asks "Windows Vista Aero... Why again?"

I came across Sean's blog while figuring out how to register with Technocrati... He recently got around to watching my channel 9 interview from last fall and asks some questions about what we're doing with the UI for Windows Vista.

Here are some thoughts on what Sean has to say...

Under "the good":

It's awsome to see folks recognize the value of building the desktop on top of Direct3D. We're just starting to scratch the surface with potential for long-term benefit of using D3D to render user interfaces. It will be really exciting to see how far we can go with this in future versions of Windows.

Sean asks: "Applications will apparently be able to render themselves as vectors now, which is cool. However, haven’t Linux windowing systems been doing this for a while?" This is a popular misconception. To date I'm not aware of a single Linux distro that ships a hardware accellearated composited desktop as a default or "ship quality" configuration. There is definitely code out there that's been developed for this:

  • The Fedora project has something called aiglx which evolved from work at Red Hat that I blogged about a while back. From what I've read online, this project is still very immature, with very limited hardware support.
  • Gnome 2.1.4 using OpenGL and Cairo/SVG is an impressive start, but again no distro that I am aware of has picked this up, and this is very new code.
  • SUSE Enterprise Linux 10 fron Novell had been getting a lot of press for a while, mainly because of their impressive demo videos that they released, but after clicking around a bit, you discover that you can't actually get your hands on this distro from Novell yet (they claim this summer), and the instructions for how to use this code on top of the current SUSE distro's describe it as "highly experimental" and not for "faint of heart"
  • Ubuntu Dapper Drake can be set up to use XGL but again this isn't the default. It looks like "formal" inclusion of XGL might come with Edgy Eft at some point in the future. My personal opinion is that Ubuntu will end up doing the best job of this on Linux in the long run, but time will tell.

So to Sean's question - I think the answer is a resounding "no". Given recent changes in the Windows schedule, it's possible that a Linux distro will get there first, but only a few months ahead if at all.

Sean remarks about our effort to make things just "smoother" as a positive as well. This was probably are single most important goal with Aero - to ease out the glitches, flashes, and transitions in the user experience. Having a composited desktop is probably the biggest step forward on this front, because we eliminate all the repainting and tearing glitches that you see when you move a window around the screen, or when windows become unresponsive. Greg Schechter's blog goes into a lot of detail on how composition works (I won't repeat all of it here) but his initial post about the Desktop Window Manager does a great job of describing how we fix these sorts of visual glitches (scroll down to the sections that read "Don't involve background applications in window operations"and "Tear free experience" for more on this).

On to what Sean calls "the bad"...

Sean has some concerns about the "glass borders" being a little too distracting and eating up too many spare cycles. I have to say I was a little suprised to see the remark about transparency being distracting, most of our feedback from folks using the builds and in usability has incidated that it really helps people focus on the window contents rather than the window itself. People definitely seem to like it better than the bright blue title bar that ships in XP.

That said - I can certainly understand that some folks might just not like it, which is why we included the ability for you to have tinted windows, you can adjust the transparency and the color of the window frames to any color you like , even making them opaque.

With regards to performance - the overhead of blur is actually pretty minimal - we only blur content if it's being updated, so if nothing is moving, we don't use any resources, and when something does get updated, we have some pretty sophisticated dirty region and occlusion detection logic that allows us to only run the blur filter of the set of pixels that have changed causing us to do minimal work. And we still won't deprive the World Community Grid of very much at all, since the work to do the blur happens on the GPU and not the CPU anyway (there is minimal CPU usage in simly invoking the DX API's, but this is extremely small).

Sean thinks Flip3D sucks compared to Exposé. I've discussed this in the past, but I think it's fine to revisit. I think he's actually comparing the wrong features. Exposé lets you see everything on your Mac at once rather than having you flip through them one-by-one. And that's certainly a good thing. We've updated the UI that appears when you tap alt-tab to give you live views of every single open window you have on the system. I actually think this is superior to what Exposé offers, because we arrange the windows in a far more precitable fashion, instead of making you look around the screen to figure out what window went where.

Flip3D solves a different problem, that I believe Windows users run into probably more often than Mac users do. Giving people live previews to choose from is a great thing - but when they're scaled down like in Alt-Tab or Exposé, it's only useful if you have windows that look substantially different that you're choosing between (two different images for example). But when it's two (or seven) different email messages or Word documents, the windows will largely look the same when scaled down, so having a "closer to full size" preview is essential.

Sean bemoans our approach to customziation... I posted about this back when I did the interview, and honeslty my thoughts on this haven't changed. I don't believe the vast majority of Windows customers take a "pimp my ride" approach to customizing their PC, and I don't believe the responsible thing to do for that vast majority of customers is to spend engineering cycles catering to the vocal minority, especially when there are great solution providers out there like Stardock that do a really good job filling this gap.

Sean like many others, picked up on my remark about Avalon being simialr to creating fire. He notes:

Fire also makes it really easy for morons who have it to hurt themselves and others. Part of me thinks that Avalon could have a similar effect on software developers who don’t understand how to design for usability. Avalon doesn’t make it easier to create usable interfaces, it makes it easier to create FLASHY interfaces. The two are not always synonymous.

...yep. With great power comes great responsibility. There's definintely a danger that folks will use Avalon the way that they used the BLINK tag back when version 3.0 browsers were cutting edge. That said, I think we're doing a ton to move the ball forward on usability with Avalon as well. The whole notion that you can restyle a control without having to reimplement it's behavior is a huge step forward from a usability perspective. How many times have you used an application with a custom listbox or tree-view control where the clicking behavior was slightly different or type-ahead didn't work the way you expected? Avalon allows you to tailor the appearnce of your applications without having to rethink interaction design. I really believe this is goodness for folks. Robby on the Avalon team did a great talk at PDC about how to use Avalon for good (not evil), but I can't find the slides online at the moment. Here's a link to his PDC page though, maybe he can get you a copy of the deck if you're interested.

Sean makes a great point about the tension between making something flashy and getting out of people's way. You can't do both at the same time - no quesiton of that. But you certainly can do both in the same product. The philosophy we adpoted here was to do our best to be understated feel like we're "in the background" when you're attention is focused on using your applications, but when you're actually using Windows we will appear streamlined, efficient, highly polished. Flip3D certainly could have been done in a way that was a little more understated, but given that it's something that the user consiously goes into, and doesn't just happen automatically taking your attention away from other work, I hardly think this falls in to the bucket of "intrusive".

In any case... hopefully this will clear up some of the questions folks have about the decisions we made. I look forward to seeing what people think of Beta 2 when it gets out the door.