Major necroposting here, and I was debating with myself if to necropost, or start yet another thread on the same topic.
It has been some 5 years. Since them, I've used different user interfaces - Android and iOS smartphones and tables, XBox Kinetic and voice control. In September, hopefully I'll receive my Oculus Rift.
Very much about window management and user interface is about multiplexing the display. We often associate multiplexing the display with multitasking. This is not always true, for example, I can multitask on my Android smartphone (I can play a song in the background, have a file downloading, browse the web, while my Twitter notifications pop up) - all without multiplexing the display - having one application use most of the screen at the time.
You can also be productive in a non-display-multiplexing environment. I have an iPad and a Bluetooth keyboard. If there was a decent iOS source code text editor, I think I could write code productively. I can browse the web, post on this forum, do research, and play games productively on an iPad without multiplexing the display.
Now, multiplexing the display is useful. In Visual Studio, I like to have a header file and source file side-by-side (or two source files if I'm comparing code) - even better is when I can have each open on different displays. It's also useful to occasionally have API documentation on a different screen, or if you're developing a graphical program, have the running program and debugger/code displayed simultaneously.
I don't believe that windows - those little boxes that programs can draw to that can be arbitrarily resized and moved - are the only way to multiplex a graphical display device.
I feel that windows are fairly clunky, but we've gotten use to them so we deal with them. When we open a program, we need to move it around and resize it to where we want. It's become a learnt behaviour we don't really think about it. But I remember when my mother started using a computer (1990s, and even into the early 2000s) when a program opened, such as a spreadsheet or web browser, she would use the program where it popped up (even when she knew how to 'maximize'), even if it only covered about 70% of the screen.
There are also those awkward moments in high school and university where the teacher would open a program on their laptop (connected to a projector), and while standing and attempting to teach a class they would inefficiently move windows around on the mouse pad with one hand, trying to get both things they want to show on screen at once.
It's even less intuitive/efficient on other devices. For example, imagine if on a television, every time you switched a channel - a new window would pop up that had to be resized and moved? It's very awkward thing to attempt to do with a remote - even televisions that do allow you to multiplex the display by having picture-in-picture usually limit you to a handful of layouts:
On smartphones and tables, even ones with fairly large screens, it's intuitive for the application simply to take up the entire screen by default - it would feel much less productive if we're going for a jog or giving a presentation, and when we open an application having to resize or maximize the window, and get frustrated with 'window hell' if we have a dozen or more applications open. Yet we tolerate it on a PC.
Modern Android (I believe versions 4.x+?) does allow you to multiplex the display:
Rather than using windows, they simply split the screen, allowing an application on either side and the ability to drag the splitter. The usefulness is limited on smart phones, because if the screen is already small and limited, that multiplexing it into a smaller and more limited screen has little practical appeal.
But, I do like how Android is very minimalist. A phone has a limited screen size, and by default, all applications take up the entire screen (with the exception of the notification bar) - and even when you multiplex a display, it still tries to be very minimalist. Screen real estate on a mobile display is a premium, and pretty Window decorations, would take up valuable screen real estate, leaving less for the actual application to do something productive with:
Imagine that on a 3.5 inch mobile display! Even with some phones now having high resolution displays that rival workstation monitors, we can have pretty window decorations that take up very little physical space, however if the window decorations are smaller than our fingers that we can't select or manipulate them, the only purpose of the window decoration would then to display the name of the running application and/or document, but the usefulness of this is limited because when you only have one application on screen at once, you generally remember which application you just opened.
Then there are times when window decorations and other UI fluff just get in the way. For example, at work, we often have a leader bring in their laptop and plug it into a projector to show us a spreadsheet. However, the projector defaults the resolution to something like 800x600, and with the task-bar, window decorations, and toolbars, very little of the screen is left to actually show the spreadsheet;
That leads to a lot of counter-productive scrolling. You could possibly develop a spreadsheet program with a full-screen mode that tells the OS to hide the UI fluff (window decorations and taskbar). Alternatively, we could design our UI (both the application and OS) with as minimal 'fluff'/decorations from the get-go;
It may not be perfect, but you could show that on a low resolution projector, small mobile screen, or a large high-resolution workstation monitor, and still have the majority of your display showing your actual data (the spreadsheet) rather than UI fluff.
This is not just about spreadsheets, but the same is true when browsing the web, watching a video, or writing code, or playing a game. I want as much of the display showing what I'm working on, rather than fluff. A lot of tablet applications do this very well, because they're designed to dedicate as much screen space as possible (minimizing UI fluff) while still being productive:
This post is long enough so I'm going to continue in my next post incase I accidentally close my browser and loose everything!