Forget MDI ... how do you feel about MAI?

There are few certainties in life (death/taxes) and less in software, but if I were to nominate two they would be:

* MDI is here to stay.
* Some will always hate MDI.

Let's face it, it make to much sense in many cases to not have an MDI interface. Look at our users love affair with Konq's tabs for instance. KSirc's IRC tabs, Konsole's session tabs, aKregator's KHTML part tabs, on and on... users would _kill_ if these were done away with. Hell, I recently was checking out Kopete's IRC protocal handler and decided it was a non starter because it didn't offer to manage all of my IRC channels in one window.

The real problem facing developers shouldn't be "to MDI or not to MDI"?! That is too simplistic. Of course! We _have_ to offer MDI in many cases. The real problem is when the MDI metaphor gets blurred with the traditional single document interface. Or even more complex situations that make this argument quaint.

It's not that your rant concerning Kate/KDevelop doesn't bring up some good issues, but the solution can't be, "to hell with this MDI crap, let's make it all single document" because that just won't work for a variety of reasons which I'll conveniently let others spell out ;)

For an even more pernicious case where the false dichotomy of MDI VS SDI is laid bare, check out, uhm, Kontact for instance. Here we have multiple apps (some of which offer there own MDI) in a MAI (Multipe Application Interface) window! KDE users begged for it.


I don't oppose MDI, I'm opposing the fact that these applications don't know what their document is. The GIMP for example, knows exactly what its documents are, despite being MDI.

The main problem here is that I have to either choose between a sane UI (KWrite) or having stuff like a project management (Kate), which I would love. Unfortunately, I have to choose the sane UI for the same reason I don't like Vim and Emacs.

I'd also like a classparser like KDevelop provides, but again, a sane UI is more important to me.

I should consider myself lucky that in cases like KMail, I can either choose between a sane UI with lots of nice features, or Kontact, with an insane UI and no additional features I want.

By Charles Samuels at Sat, 03/05/2005 - 16:00

gimp is almost universally recognized as a horrible UI. Plus, I don't grok how you consider it MDI. Where is the multiple docs in a single window mode? It uses the taskbar to manage it's docs. I think you are confused about what MDI is. From what I can tell, you don't like any app with window document in window (see: MDI). Take a look at this to make sure we're clear on the differences between MDI and SDI: here

By Adam Treat at Sat, 03/05/2005 - 16:58

1) Multiple Document Interface=MDI, Gimp is MDI, one application has more than one document
2) GIMP /was/ recognized as having a horrible UI, they fixed it now.

By Charles Samuels at Sat, 03/05/2005 - 17:17

Actually; the definition of MDI means multiple document PER WINDOW.

The easy way to figure out if an application is (pure) MDI is if you can show (at one time) multiple documents where one set of menu/toolbars have an effect on.

You can have controlled-document-interface; which is what Gimp is. It is basically SDI, with an extra controller window.

The trick with konq/kate and most others is that you don't show more then one document at the same time, so the user is saved from finding out which one has focus when you press 'file->close'.
We use a branched version of controlled MDI where the controlling-window is either inside the main window (like with kate) or uses extra widgets to define the different documents (like in konsole/konqueror).

By Thomas Zander at Sat, 03/05/2005 - 19:56

Gimp is not entirely MDI. You could see it as MDI, but still, try to minimize al gimp-windows at once. One aspect of MDI should be to make life easier. That's why I won't call gimp MDI. MDI is a GUI-thing. Not the fact that it can load more than one file concurrently. In KDevelop, Konqueror, the Kopete chat-window, Kate etc. MDI is well-implemented and something I make use of daily.

By KDE User at Sat, 03/05/2005 - 21:58

> Hell, I recently was checking out Kopete’s IRC protocal handler
> and decided it was a non starter because it didn’t offer to manage
> all of my IRC channels in one window

it certainly does allow this. it's in the Kopete settings, Behaviour -> Chat Window ... kopete supports MDI with several different rules for grouping.

By Aaron J. Seigo at Sat, 03/05/2005 - 17:17

Learn something new everyday :)

By Adam Treat at Sat, 03/05/2005 - 17:26

KDE is so freaking huge, i really doubt there is an "expert on everything KDE" anywhere on this planet =P

one more reason we need to work on that usability thing ;)

By Aaron J. Seigo at Sun, 03/06/2005 - 02:52