3

A while back I got into a discussion with a classmate about whether our application should use multiple JFrames, or windows. I'm a linux-user, and said yes. He's a windows-user, and said no. When asking around in the team it seemed like all linux users wanted multiple windows, and windows users seemed to be scared of that. We ended up settling on using JDesktopPanes.

This discussion got me thinking though. It seems like in linux the use of multiple windows is common, see the screenshot of gimp below, while in windows it's pretty much unheard of. (Except for in paint.net, for some reason.)

Now I'm really curious, where does this difference come from? Is multi-window better supported on linux? Or is windows able to optimize one window better?

What are the advantages and disadvantages of using one window over multiple and vice versa, in both linux and windows?

(And a small question, what tag would I use for windows as in views, not windows the OS?)

The linux approachThe windows approach

4

Background

While several windows for one application is perfectly possible in Windows (see GIMP implementation), it is not commonly used. One of the reason may be related to technical background.

Windows first decent release was windows 3.0. As its Win32 API was rather complex, Microsoft has pushed its MFC library since the beginning (1992), to make application development easier. This did promote a document-based interface that came in two flavors: SDI (single docucment interface) and MDI (multiple document interface). As Microsoft shipped its own applications using this kind of interface, many developers liked it to take the same approach.

Then comes the cultural aspect. User got accustomed to the logic 1 app = 1 window. Related items were visually grouped into the same windows (with the exception of the modal dialog boxes). On smaller screens which were usual on earlier PCs, switching tasks consisted of reducing one app (in one click) and maximizing the other (again with one click). New applications using a different approach had to cope with user's resistance as they were perceived less native. Thus developer tend to adopt to the expectations of their user base. And so on...

On unix/linux, in the 80's, people using a GUI were usually working on workstations with much bigger screens and higher resolution. So there was not the same problem of "screen estate". Windowing was based on X11, and there was no library that encouraged using the pardigm 1 app = 1 windows. Later Motif developped to be the standard widget toolkit, and offered no facility to implement MDI interfaces. So the broad user base was accustomed to several windows for one app (1 window = 1 document or 1 task). New users learned it that way and found it natural, so that the expectations are not the same than on a windows base.

Addvantages/inconvenience

Let's be honest: the comparison will always be subjective. It's rather a question of philosophy:

  • Keeping everything in one windows is an application centric approach.

  • Having multiple windows on the screen is a document/task centric approach.

  • Popular browsers which are used by a large user base accross OS, tend to shift to a tabbed approach with one window. But they also provide shortcuts to create additional windows (can be configured)

  • Occasional users tend to be lost with too many windows.

  • The broad user base wants an application which fits with the look & feel they are used to.

So if possible, I'd suggest to support both approaches and let the user choose in a configuration dialog (it seems also to be the approach of latest GIMP version )

It is difficult to come with objective arguments.

1

Historically, in Windows, when you had to manage multiple “windows” at once, you used child windows (called MDI, thanks to Christophe for reminding me the technical term). The technique was still used in, for instance, Photoshop 7 (search in Google for the screenshots). Lots of applications used this technique in the past (including, I believe, what became later Microsoft Office), but most abandoned it.

The benefit of the approach where a master window contains children windows is that the minimizing and moving is handled automatically for you by the OS. The drawback is that you can't position your children windows whenever you like, which is also limiting in dual-monitors configuration. The limitation was, for instance, taken in consideration in Visual Studio: newer versions make it possible to create an infinite combinations of windows which are indépendant from each other.

Adobe Photoshop uses the same technique too. Although by default, palettes are displayed within the main window, you can detach them and move them to another monitor.

Adobe Lightroom, on the other hand, uses a different approach. You can use up to two monitors, one containing the primary window and the interface, and the second one containing the full-screen photo. The lack of flexibility (i.e. being able to move everything all around) also means less complexity for the users. There is no much need to detach the panels, except the scenario where you indeed want to display the full-screen view.

So, the benefits of multiple windows are:

  • Absolute flexibility to the user, especially when using multiple monitors.

The drawbacks of multiple windows are:

  • Handling of windows is done by the application. For instance, what happens when you minimize the main window? Should the other windows be minimized? Remained intact? Or maybe it depends on the windows (for instance minimize the palettes, but keep everything else)?

  • Managing windows is not an easy task for the users. They can easily be lost. It shouldn't be unusual to receive a call from a customer, telling that the palette disappeared and there is no way to display it any longer—after inspection, it appears that the palette was on a second monitor which was simply turned off. As an illustration, my wife was lost on multiple occasions where using Gimp's windows which were moved or hidden.

As you may notice, this has nothing to do with operating systems. Visual Studio is hardly inspired by Linux, and so does Photoshop which should mostly be inspired by OS X. Your example of Windows Paint is flawed for two reasons: (1) it's an elementary application which could hardly be compared to applications such as Gimp; (2) new versions such as WordPad and Paint are inspired by Office Ribbon design, which means that the palette sticks to the top of the window, rather than being on the side, or having a flexible position or being a separate window.

Conclusion:

It's all about user experience. An interaction designer should study how the application is used and identify the possible workflows when the user would benefit from two or more separate windows. The presence of a dual monitor among the users is a major factor (thus IDEs and graphical editors are more inclined to use multiple windows, since they are often used by persons who can afford two or three monitors), but even one monitor can benefit from that in terms of arranging the workspace.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.