Talking Point: Overlapping Windows
Back in the 80s, a GUI paradigm called WIMP (Windows, Icons, Mouse, Pointer) began to establish itself as the new way in which most people interacted with computers. When it comes to one of the most significant elements of that system, overlapping windows, I'm beginning to wonder, has it had its day?
One of few things that Microsoft can claim to have developed from scratch is an efficient method of application switching called the taskbar, although it's now in the process of being superseded on most GUIs by the application dock. One side-effect of that form of program management is that it doesn't penalize the user for running applications fullscreen, and it therefore encourages it. You can glean some ideas about modern user behavior by observing that, in the most popular WM themes and skins, the areas of the window that are used for resizing have almost disappeared. The truth is, if you use Gnome or KDE, you probably run most of your apps fullscreen, most of the time.
In the future, I think that overlapping windows will be seen as a power user's feature, rather like the command line. The non-expert computer user has little use for windows that don't encompass the entire screen, and novice users find resizable, overlapping windows confusing. There are some operations, such as dragging and dropping of file icons, that benefit from overlapping windows, but again, this is a feature that is mostly used by experts.
PDAs and other small computers have long pioneered the techniques needed to make multiple running programs individually accessible. Running everything fullscreen on a full-sized device does, however, present a few drawbacks. For one thing, text can be difficult to read when spread out over large areas on modern widescreen monitors. Personally, I wouldn't fancy word processing on a 24” widescreen monitor with the main window maximized. I think that multi-column websites give us some clues as to what a desktop of the future might look like.
There are probably two solutions that we are going to see dominate over the next few years.
Firstly, tiled window management, of a sort that has existed for many years on Linux, may finally break through to the mainstream. Tiling has the advantage that it does away with the complexities and inefficiencies of overlapping windows while still allowing the user to view more than one window at once. It's worth noting that KDE SC 4.5 introduced tiling support.
The wmii window manager. Could this be a glimpse into the future?
Secondly, it's possible that applications will begin to make use of more panes within a main window. For example, on a widescreen monitor, it's quite convenient to leave the Firefox sidebar open at all times. I wonder if other subwindows could be enabled by default, perhaps piping in pertinent information? Some tiled window managers can simulate this approach, to an extent, by allowing you to associate certain applications together into groups.
Back in the mid-90s, Apple and IBM collaborated on an application framework called OpenDoc. The idea behind OpenDoc was that application components could be freely embedded into host applications. So, for example, if you clicked on a image in your word processor, a toolbar might appear around it, courtesy of Adobe Photoshop. Although the tech did appear in the form of some proof of concept applications that shipped with OS/2, it was ultimately abandoned. However, another framework such as that one could solve some of the problems of efficient use of screen resources in an intuitive manner without resorting to traditional overlapping windows.
LyX 2.0 is an application that can pack quite a lot into its main window. Perhaps this will be the norm in the future?
Of the tiled WMs I've seen, none of them seem to be very easy for the newcomer to use. So the question is, is anyone actually using these things on a day to day basis?
UK based freelance writer Michael Reed writes about technology, retro computing, geek culture and gender politics.
- My Childhood in a Cigar Box
- Tech Tip: Really Simple HTTP Server with Python
- Papa's Got a Brand New NAS
- Applied Expert Systems, Inc.'s CleverView for TCP/IP on Linux
- Panther MPC, Inc.'s Panther Alpha
- Rogue Wave Software's TotalView for HPC and CodeDynamics
- Simplenote, Simply Awesome!
- Returning Values from Bash Functions
- Debugging Democracy
- NethServer: Linux without All That Linux Stuff