Highlevel GUI Inconsistencies: Tabbing


Everybody knows tabs and tabbed applications like webbrowsers or OO Calc.

The grouping of multiple instances/windows of a single application makes perfect sense and removes clutter from the user's workspace.

Firefox Tabbing

So what's wrong with it?

Its implementation! Basically tabs are nothing but window management + radio buttons. Somehow toolkit developers started to implement their own tabbed view and handled the window management. Everybody who's familiar with the X protocol (widely used under Linux/Unix) might have figured out already, what I'll be complaining about. X windows have properties. One of them is the window class. This window class property could allow a composite manager to provide a tab view. The tabview could provide a consistent look and feel accross toolkits and even expose tabs in a new (maybe even better) way. Seriously, all a window manager should be doing is handling windows/window groups. It's not the job of a toolkit! Toolkits may proxy tabbing for platforms like Windows, but they shouldn't implement their own!

Why are things the way they are right now?

I guess nobody can tell for sure. But I'd put my bet on a situation where developers said: "Let's implement our own tabview, so we're more awesome than the others.". And maybe they thought: "Our usecase for tabs is waaaay different than those of other applications.". Really? If I had to guess I'd say you'd need a text preview (maybe even a livethumb) connected to a 'show window' like mechanism.

Are only application/toolkit developers to blame?

No, I think it's mostly the fault of desktop environment/shell developers (I'm looking at you GNOME/KDE/Enlightenment/Cinnamon) who didn't show off how nicely tabview/application could be done in a generic fashion yet a bit customizable for using apps. I hope that will change and developers start to use infrastructure that is already there (e.g. PID+window class) instead of propagating inconsistency while making the world a 'better' place.

Maybe I'll even get around to implement some prototype 'generic tabbing' for Enlightenment and it'll gain traction and inspire developers of other desktop environments.

As an outlook of how I - personally - could imagine consistent tab experience, I'd like to refer to Clayton Miller's concept, he presents at 10gui. It already takes the transition of modern input technologies from hard buttons to more touch-based into account.