inessential by Brent Simmons

Many windows

If you’re a long-time Mac user, you remember when Mac apps tended to use multiple windows rather than multiple panes in a single window.

Think of Eudora: years ago there was no preview-in-window for messages. Each mailbox was a separate window, and each message opened in a separate window.

NewsWatcher is another example. The subscriptions were in one window, the full group list was another window, and each post appeared in its own window.

So today I got, for the first time (I think), a feature request to make it so you can optionally split NetNewsWire’s main window into separate windows, as in the good old days. I was instantly nostalgic, and I thought: yes, totally, I have to do this.

But then a second later I changed my mind. My personal nostalgia plus one feature request obviously doesn’t warrant the effort.

It got me thinking, though—why is the current approach better than the old approach?

Answer: I don’t know that the current single-window approach is better, but it’s better for 2004, and that’s what makes the difference.

The main issue is that people’s user interface expectations are radically different than they were ten years ago because of the web. People have been tuned by years of website UI to expect the following:

1. There will be just one main window. Other windows are popups that do one small thing and then, usually, disappear.

2. All their choices will be visible in the main window.

3. The UI gestures available are limited to those that can be coded in web pages.

These expectations have some consequences for application UI design:

1. You need a main window with multiple panes instead of multiple windows. (Obviously this has to be modified for document-based applications.)

2. Toolbars should exist inside the window, at the top, rather than outside the window.

3. People don’t look at the main menu anymore, since they’re used to the menu belonging to the browser rather than the web-based application they’re using. So you need enough toolbars and widgets in the main window to make your app usable. When working on your design, you need at some point to pretend your application has no menus at all.

4. Few people will think to use drag-and-drop, since it’s so rarely supported in web pages. It’s important to support other ways of moving objects. (Within limits. OS X users are used to drag-and-drop within standard table and outline views, since they’ve used iTunes and similar apps.)

Cocoa very much encourages this sort of user interface. For instance, toolbars appear at the top of windows; you can’t have them appear elsewhere without going to some trouble. Creating split views for multiple panes is so easy it’s almost silly. And so on.

(It may be that Carbon encourages the same kind of design. If so, I wouldn’t be surprised, it’s just that I’m not so up-to-date with Carbon these days so I don’t know.)

Anyway... my point is that the web has had a major impact on the design of desktop applications. And it appears that the designers of application frameworks took this into account, to the benefit of developers and users.

(Hat tip: Alex King was the first person to explain this to me succinctly. I understood the new UI conventions without having thought about why they came to be.)