Hacker News new | ask | show | jobs
by ajosh 3129 days ago
The other day, I was just thinking about the old Multi-Document Interface that used to be so common in the Window 3/Windows 95 era. MDI was done well in old versions of mIRC and very poorly by StarOffice (OpenOffice.org/Libre Office's ancestor).

MDI has all but vanished. Now we see basically three paradigms: - Simple, all-in-one applications (notepad, calculator) - Tabbed interfaces (Browsers, sublime, atom, etc) - Tool and document windows (GIMP's default, Pidgin)

Tabbed interfaces are clearly on the upswing so this makes sense as a window/document management technique. Still, I wonder if there is still a place for MDI that we are missing out on because it is out of style.

3 comments

"Still, I wonder if there is still a place for MDI that we are missing out on because it is out of style."

It would be an interesting experiment to run, because MDI died around the time that 1024x768 was a big screen. A lot has changed since then.

Although, arguably, one can get most or all of the benefits with a multi-workspace window manager and a workspace running a tool & document program by itself.

That's a fair point - there isn't really a major difference in that case.

Thinking back, I remember using the MDI mIRC and having an active channel in its own window. The rest of the channels and lists were inside the mIRC application. I then had my chat up with whatever document I was working on.

The thing from that kind of setup that is hard to come to today is a simple way to designate some windows a less important than others. The important ones get into the task manager/dock. The unimportant ones are grouped with other similar windows.

I can't think of a major desktop that I've used that lets you do that. It seems to be all or nothing. I've seen docky and some KDE plasmoids get kind of close.

I think that speaks to the big reason I think MDI fell by the wayside: the OS took on a more active role in window management. MDI makes sense in Windows 3.1 when your application can easily provide the exact same management tools as Windows itself: the classic Tile/Cascade menu items and not really all that much more. The steady progression in the power of the taskbar starting in Windows 95 I think corresponds somewhat directly in the drop off of MDI applications, as it started to get harder and harder to mimic the taskbar in your own application and Windows at least never offered much of an out-of-the-box application framework for that. Part of that was philosophical; Microsoft didn't provide a strong MDI framework because they didn't see a need (and probably felt MDI was too confusing users). (Mac OS did provide more options over the years and there are still MDI-ish applications there, so it is interesting to compare the philosophical divergences over the years.)

"Sets" are interesting here because it is a return, the long way around to MDI in a way, but with years of learning/experience of task management from modern taskbars, IE/Edge tabs, and other thoughts on task switching. I like the idea that in Microsoft's opinions Sets are more useful as diverse collections of heterogeneous applications (a Word document and its OneNote notebook and its Edge browser research tabs together in one window) rather than the classic MDI homogeneous approach. I think that may be the welcome modern twist the MDI concept was missing originally.

One interesting use of MDI was in the early Opera browser, that carried forwards into Opera 12.

And Vivaldi has inherited some of that, in that you can create a tab group, and then have that group tiled inside a single view.

> Still, I wonder if there is still a place for MDI that we are missing out on because it is out of style.

Image editing is the obvious example. Most image editors use tabs and this is annoying because you often want to have multiple images visible at the same time - especially when you are painting something and want to have references or have a palette in a separate window that you pick colors from. Also it is useful to have two or more views of the same image in different zoom levels visible at the same time (some applications provide a special case for this, but really is just a hack for not having true MDI).

FWIW Krita has a MDI mode, although it implements the functionality itself (well, Qt does it, but that is details) and it is sub-par to the native functionality (e.g. when moving or resizing windows you always get an outline like in Win3.1 instead of having the window follow the mouse).

Another example is chat programs - i always loved how i could tile multiple channel windows in mIRC, for example (all other - graphical - IRC clients i've used over the years only allow a single channel to be visible).

Text editors are sometimes good, although this probably needs to be paired with a tabbed interface. But over the last few years i actually ended up using an old C compiler (Borland C... well, it also does C++ but i don't use that :-P), partly because of its compilation speed but also because i like the MDI interface [1] (although i dislike the ugly Vista theme... i think one of the reasons people stopped using MDI is because of how ugly the theme looks and how big and wasteful the window borders are) because i can overlap and move windows around.

Generally speaking i think whenever you want to have multiple views visible at the same time in a program with some elements of the program always visible (e.g. a toolbar, a property editor, etc), MDI is helpful. Docked and tabbed interfaces very often end up with elements being stretched and/or jumbled and forced to align with each other.

Of course some of that stuff could also be done with virtual desktops, but often it is useful to be able to take the entire "window group" and move it around in the screen or minimize it. Some window managers allow you to do such things though (e.g. in Window Maker - my favorite window manager - you can hide all the windows of a program in one go, select a bunch of windows and move them to different virtual desktops with the mouse wheel and move them around as a group).

Interestingly Mac OS X solves some of that by using the global menu bar as the static always-there element and the auto-hiding inspectors. Or at least did until some years ago, some of Apple's newer apps go for the docked panel approach whereas previously it would be a floating inspector.

[1] https://i.imgur.com/SPJKrjE.png