Je me souviens
Everything here is my opinion. I do not speak for your employer.
March 2007
April 2007

2007-03-21 »

Maximally dumb window management

So everybody knows by now that MDI (Windows' traditional multi-document interface) is bad and you shouldn't use it, even in Windows. Okay, sure. But what instead?

The problem MDI was created to solve is simply the "too many windows" problem. If you're working in an application, say a graphics editor, with a lot of open windows attached to it, how do you keep track of them all? In Windows, the traditional way to do this was with MDI, where you'd switch to the application (using the taskbar, say) and then "inside" that application's main window you'd find a bunch of sub-windows for its documents. This led to everyone always running all their apps maximized, because you had to fit all your smaller windows inside the outer window, and that was completely unusable if the outer window wasn't as big as possible. So it was a big mess, but it accomplished its main goal: your taskbar wasn't crowded with a million little subwindows. Just one big taskbar button for your application.

MacOS deals with the problem in a different fashion. It has core UI concepts of "applications" and "windows", so that you alt-tab between applications, but inside an application, you can switch between individual windows. In MacOS 9, when you brought an application to the top, it would pull all of that application's windows to the top. Frequently that was actually exactly what you wanted: for example, if you had 20 images open in Photoshop but wanted to check your email for a second, then go back, it was nice to be able to just click on any Photoshop window and have all the Photoshop windows back in view at once. Otherwise you'd be digging around trying to find all 20 of them, all buried under your full-screen email window.

Unfortunately, the pain with that was if you ever wanted to have, say, a web browser in one window and Photoshop in a window next to it, but only one of your Photoshop windows because you're (say) trying to compare a web site's look with its Photoshop mockup, you couldn't do it. There was just no way to have your web browser under some Photoshop windows and on top of others. They fixed this in MacOS X: as far as I can tell, you can click on any window to raise it to the surface, but alt-tabbing to an application or clicking an application on the dock will raise all of its windows. So you sort of get the best of both worlds.

As a digression, I really like ion, which makes it so easy to arrange and organize your windows into multiple workspaces that these problems largely disappear. Of course, it creates other problems, so it only works for me, not everyone else.

But back in the world of Windows, as I mentioned, MDI is deprecated. You're not supposed to use it anymore. Instead, we have two awful alternatives: the "combine similar taskbar items" option for the taskbar, and tabs, eg. tabbed browsing in Firefox. Both are better than nothing (for example, web browsers done the SDI way just resulted in a million taskbar buttons, one per window, which was why they made the "combine similar taskbar items" option in Windows XP in the first place). But both also fail the user pretty badly. "Combine similar taskbar items" is a huge copout, because you lose your sense of spatial memory the taskbar normally gives you. When you minimize a window or switch to a window, you see a little animation of where it went on the taskbar. When you combine similar taskbar items, they're all stuck in a little submenu on the one button, so when you want to switch back, you have to read the little titles to find the right one; your spatial sense is wasted. Never mind the fact that you now have to click twice instead of once to switch windows.

Tabbed browsing is better, but not quite right either. Really, it's just a slightly less annoying version of MDI. Less annoying because you can use your spatial memory (with MDI, you usually had to use the Window menu, ie. the annoying part of the "group similar taskbar items" option). But also less flexible, because there's no way to display two documents side-by-side. Imagine if Photoshop used tabbing between images: useless! (In fairness, the hybrid model used in Firefox, where you can open a new window or a new tab, is a really good balance. I just wish there was an easy way to "convert this tab into a window" or vice versa.)

But worst of all, and I can't believe I'm saying this because it's newer than all the others, is the amazing feature I've found in Microsoft Office 2003 and which has now been cloned in Adobe Acrobat Reader. In a fit of brilliant engineering, they've managed to combine the worst features of all of the above. It works like this: actually Excel and Reader are MDI applications, but they try to hide it. When you open a new document, it appears as a separate taskbar button. But when you switch documents using the taskbar, it replaces the visible document window with the new document. So it's impossible to see two documents side by side, but it also crowds the taskbar with extra buttons! As a bonus, when you click the X button to close the window, it assumes you want to close the whole application - which I can live with in Excel, because it asks "do you want to lose all your changes to 5 documents?" but in Reader it's supremely annoying because it notices I haven't modified anything (that's why they call it "Reader") and just closes them all. And for added bonus confusion, in both apps, if I close all my documents but don't close the application, the last document window morphs into an empty application window (with a different icon and everything!). When I then open a document, it morphs back. But if I open a second document, well, that's totally different - it creates a new taskbar button in that case, of course. And never mind the fact that Reader is completely worthless without a document loaded. In Excel, it makes sense, because I can do File|New and start a new one; but you can't do that in Reader. I'll have to File|Open, which is no less work than just opening the file in Explorer.


Ahem. In other news, "group similar taskbar items" is actually done right in an excellent free Windows utility called Taskbar Shuffle. Among other things, it allows you to drag around your taskbar buttons to put particular windows where you want them (eg. Outlook is always on the far left), taking extra advantage of your spatial memory. It also has a great option for "keep windows of the same time side-by-side" - no, not grouped as a single button, but merely spatially close to each other. This makes it much easier to find related windows, especially if you're like me and tend to open a lot of terminals simultaneously. If you use Windows, I highly recommend it.

I'm CEO at Tailscale, where we make network problems disappear.

Why would you follow me on twitter? Use RSS.

apenwarr on