What does this button do?
See the smaller X in the picture below? Quick: what does it do?
OK well pretty obviously it closes something. The question is: what?
To make this game easier I’ll tell you that it’s actually a screenshot from one of the Microsoft Office 2003 suite, running on (in case you can’t tell from the appearance) Windows XP.
So then, if you really know your Microsoft apps, you’ll then say “Ah-ha! It’s probably either Word or PowerPoint. Neither Outlook nor Excel have that little x. No wait, that’s not quite true; Excel has a little x button if you have a document “child window” maximised (see picture below )”.
If you answered this way, congratulations. But that still doesn’t help you answer the question of what happens when you click on the little close button.
Give up? OK, here’s a summary of what you can expect from each of the the four major components of the Office 2003 suite:
In Word, the button closes the document and the enclosing window. It is, as far as I can tell, identical to the big close button immediately above.
In Excel, clicking this button will close the “child window”. This is MDI terminology for the document window which lives permanently inside the application window. That’s why there are the minimise/restore buttons as well.
In Outlook, the button isn’t there.
In PowerPoint, the button closes the document, but not the enclosing window. You end up viewing the document behind the current one. Or an “empty” application window.
Of the four, only the behaviour of Excel and Outlook makes any sense whatsoever. Excel is a traditional MDI application, (well, apart from representing each document as a separate task in the task bar, but we’ll ignore that for now) so it has a big window which represents the application as a whole, and sub-windows which display the open documents.
I’ve never liked MDI. Each application window has it’s own opaque background which prevents you from seeing the windows of other applications behind it. So if you want to be able to see many documents from many different types of applications on the screen at once, just forget it. There are many other flaws too. The one thing you can say about MDI though is that it’s a defined standard and reasonably consistent across applications.
In an attempt to address the limitations of MDI, some time ago Microsoft introduced SDI, where each document was given it’s own window on screen. So this means that you don’t need these separate close (or minimise/maximise) boxes within the window – the widgets on the window itself will suffice. All good, except that of the big four Office applications, Outlook seems to be the only one to implement it.
Word’s sins are comparatively minor: the “child” close button is simply a duplication of the window close button. Makes you wonder why they bothered, really. Maybe it is a bug? As in, they meant to remove it from an earlier, perhaps more MDI-centric, iteration of the application but for whatever reason didn’t (perhaps they were too busy introducing new and buggy unicode features).
If Word is buggy, then PowerPoint is downright broken. It won’t let you open multiple documents within a window (like MDI), but it also won’t let you open a new window for each new document (like SDI). The result is that you can’t view two separate PowerPoint documents on the screen together – at least not without manually launching another instance of PowerPoint. It’s the worst of both MDI and SDI.
[A minor point, but they've also abused the "Window" terminology in the menu structure to the point that the New Window command doesn't actually create a new window. For that you need the Really Create New Window Pretty Please command. I'm joking - or am I?]
So let’s say you’re a Windows application developer. You want to do the right thing and give your application a user interface that is consistent with the stated guidelines and unstated conventions of the Windows platform. Where better to look but the application suite that everyone uses, Microsoft Office?
Well as we can see, Office is a disaster area. There are “pure” MDI applications like Excel, “pure” SDI apps like Outlook, and weird hybrids like Word and PowerPoint (and I haven’t even touched Access and the others yet).
So I have at various times come across criticism of various applications, mostly media players, that don’t use native widgets and hence aren’t consistent with the rest of the operating system. This is a fair comment, but it ignores the far worse sins committed right under our noses (so to speak) in the Office suite.
It is one thing to invent new widgets that perform the same function as old widgets; it’s quite another to change the behaviour of existing widgets to make them behave in new, broken, and unexpected ways. And that’s exactly what Microsoft have done.
This is window management – pretty basic stuff. Microsoft have smart people, they could fix this if they cared. Apparently they don’t.
And now for the inevitable comparison to MacOS. You knew it was coming.
Well the good news is that on MacOS X it is almost never the case that standard widgets get abused like this. The appearance of the UI changes, but not so radically that you can’t recognise the basic widgets and be able to easily determine their function. In addition, the convention of one-document-per-window was set right from the early days, and has prettymuch always been adhered to, where it makes sense to do so. Despite a brief foray into document-centric computing (look up OpenDoc some time), and some other tweaks along the way, I think MacOS has evolved into a highly usable standard (or set of standards) for applications and their document/window model and this doesn’t look like changing any time soon.
However that doesn’t stop Apple introducing new UI elements on days ending in ‘y’. These are often created simply for the sake of looking cool and fresh and pure and yes, even natural.
Over at daringfireball, John Gruber worries that the trend will continue with Tiger and that, as far as UI self-consistency goes, the gap between Windows and MacOS X is closing. I’m of the opinion that Apple would have to fuck it up bigtime for the gap to even start closing, not when Microsoft keep scoring own-goals of the type described above.