A case against tabbed browsing

Januar 7th, 2008

Have you ever thought about tabbed browsing? Have you ever wondered why we actually need it? Why does just about any big application on the planet create tabs inside their main window? We are using a “windowing system”, right? Why not just go with windows instead?

The answer to this question is “Because tabs have made our browsing experience bearable.” But in the whole awe of excitement about some relief, most of us have forgotten to explore the real reasons why our experience sucked big time in first place. And the answer to this more fundamental question is: tabs (and also MDI) just weaken the symptoms of sicknesses called “task bar” and “window management”. Lucky MacOSX users suffer more from the latter, Linux users from the former, Windows users take the whole blow as usual.

If we forget about the performance hit when creating a new window using modern widget toolkits — which in itself is a rather different subject —, we’d conclude that all tabs do is grouping windows of some application into windows, supposedly creating some kind of context by doing so. In reality, all these windows are grouped using tabs because the would otherwise clutter our precious task bar (which seems cluttered just about anytime when more than one window is open) and also make switching between them a pain. But in our age of web applications and 3D desktops this approach does more harm than good.

Let’s assume I have a Quicksilver-like window selection. That’d mean I press a shortcut on the keyboard and start typing in the name of the application I’d like to switch to. Now, if I wanted to look into my mail inbox, instead of selecting GMail’s window directly, I’d have to select the Firefox window and then select my GMail inbox using Firefox’s internal tab selection system. Apart from being unintuitive and using twice as much typing and clicking than necessary, additional shortcuts inside Firefox deprive me of several possible additional global shortcuts. Since the shortcuts used are not standardized across applications (Opera or Eclipse might or rather will be using other shortcuts), I’d have more shortcuts to learn, less global shortcuts to define and also I will be making mistakes from time to time, which will lead to some frustration and lower productivity.

Another example: I’m watching some video on YouTube. Since it’s just a screencast, I’d just want to “keep an eye” on it, so I’d set the YouTube window to 50% opacity and also to “always on top” and look into some other web-page, like a discussion on Slashdot. Or rather I could have done this, if it has actually been a window in first place. But it’s not, I’m using tabs like everyone else, since windows produce a lot of clutter. No, sorry, no detaching tabs for you. I’m screwed in this case, possible productivity is killed.

I could have opened a new window and copy&pasted the URL, but I have to admit: deciding between windows and tabs for each website is not something I’d like to think about, especially not when I’m clicking on a link in an IM window (opens in new tab by default). I don’t really want to teach my grandfather about the concept of tabs either. It’s two different presentations of the same concept — it’s actually quite confusing to have “window selection buttons” a.k.a. tabs in the task bar and also in the application, but we are used to it. We do not ask questions, we are glad about every tiny bit of improvement. But we should be asking questions and striving for more improvement, since we are good at what we do and want to be better all the time.

The main question we should have been asking in this case is a generic one: why the hell does my web browser do window management?

UNIX folks always chant “One tool to a task” and also “He who doesn’t know UNIX is bound to reinvent it”. If we follow this principle, there should be an application completely dedicated to window management. Might seem like a stupid idea to Windows folks, but in X11 Window System, there is a whole concept called (surprise!) “window manager” [1]. Let’s use it, right?

Here we have a problem: almost none of these window managers are worth their name. Most don’t make interaction easier for the user, some don’t do much window managing at all! All they do is provide some decorations for the windows (shiny themes!) and also some buttons and, if you are lucky, keyboard shortcuts for switching/maximizing/shading them. There is rarely some pre-configuration for positioning possible (“I’d like all of those Firefox window maximized por favor and please put all terminals into some available desktop space if present”), but that is what differs a window manager from a decorator. Real window managers with almost unlimited possibilities are called ”sawfish”, ”ion”, ”xmonad” etc. It’s no wonder that all of them are “weird” in some way. They posess the power to improve people’s productivity greately, they just require some dedication from the users.

One application for one task. There might be some broad or narrow definitions of a particular task, but in general a window manager should be managing windows (sorting, tabbing and positioning them, if you like to) and a browser should be browsing the web. Otherwise, we’d have a clash: the web browsing expert team would be designing my desktop experience, which is like sending some gardeners to chop some wood — concepts are similar, but not similar enough to have expertise. And everyone wants the best tools for the job built by experts in that particular field, right?

Have you noticed the new Mozilla “product” called Pulse? Everybody seems excited, since it’s actually what everyone wants. You tell your computer what you want (“I’d like to check my mails at GMail”), your computer knows it’s a web-page and leads you to it. For you, everything is transparent. You are using your OS to start a task you know by name and then you are using it. This could work for about any page in the web, not only for “big” web applications. It’s all that is needed when the whole surrounding infrastructure is sane. Right now, it is not, but nobody seems to see a reason to improve and that’s a really sad thing.

To sum it up (again): Firefox, or rather any application with tabs, should forget everything about tabs or even windows. Your system should be able to group windows if you want to and the way you prefer [2]. Your task bar (or whatever you are using) should be able to present you the information about running applications in the way you want. And all three of them should be produced by different expert teams. If neither your task bar nor window manager are up to the challenge, you are either screwed (proprietary world) or it’s about time you file a couple of bug reports (free world).

Let’s innovate in window management, in visualizing running applications and switching between them and let Mozilla and other teams concentrate on fixing bugs in their core businesses.


[1] The mere fact that there is such a thing accounts to X11 being so old — X11 is an example of true UNIX spirit. I don’t think it’d even be network-enabled if we had to create a windowing system from scratch today.

[2] There are certainly some unsolved problems with this approach, since, well, nobody thought about that. One obvious case is “Undo close tab”. What we’d do about that? One way would be making it a OS-wide feature.

How many times have you closed a tab occasionally? Now compare that to the number of times you closed an application occasionally. Your ratio may vary, but both cases are very common and actually semantically equal. How many times have you deleted a wrong file? We do have a solution for that: a “Recycle bin”. It has a couple of shortcomings, since it’s not implemented on system level as opposed to application level, but it works. Why not apply the same principle to working applications?

Because it’s difficult. It’s about as difficult as virtualizing operating systems — you’d have to snapshot the whole application memory, but we can’t do that properly, since we do not know the time point at which it has to be done, except maybe for when the shutdown of the application is requested.

But there is an another way: we could have some system log for applications. Each application has a unique process ID and each state of the application could be saved and restored by the application itself (especially when it’s a simple UNIX-like application). Every application could save its state just before it’s shut down and provide some API for starting it in a particular restored state — there you go, you have a complete “Undo closed application”. Implementing this system would be as simple as adding an API to existing session saving systems in desktop environments.

That’s just a small idea from a guy who doesn’t do any system programming. But the first step in solving a problem might be realizing there is a problem. Don’t you wish bringing back application was a bit less painful than opening them again?

2 Responses to “A case against tabbed browsing”

  1. tim Says:

    The question naturally arises why you should use tabbed browsing if you don’t like it… Personally I find it darn convenient. And even though I use xmonad and enjoy the hell out of it, I haven’t found out yet how xmonad could handle my webbrowsing without tabs and without cluttering my screens. I am open for any suggestions.

    Still, I interpret the “one application - one task” philosophy differently: the web is what I read. If I stumble upon interesting links I open a new tab. If I want to write mail I open my mailclient. If I want to waste time in an online community I open irssi. If I want to watch a video I open mplayer or vlc. If I want to sort my photos I open digiKam. If I want to write I open vim…. You see my point? I have a fast computer with plenty of disk-space, there are thousands of wonderful apps out there… why should I spend great effort into customizing my system so that it works well together with some web-applications? They tend to lack essential features, are not customizable, horribly slow, have the most creepy terms-of-use and are above all unreliable as hell. You might be right, tabbed browsing might not be ideal for this whole web two-zero idea. But frankly, it’s the web which is crap, not the browsing….

  2. Rassie’s Doghouse » Blog Archive » Webkit on Windows Mobile Says:

    […] (Opera mini and iPhone’s browser) — the real challenge is not having some useless tab browsing, it’s about making your user happy by making him control his browser less, since that’s […]

Leave a Reply