Tabs considered harmful


Tabs (UI tabs, not the characters) are a common way to organize multiple open files in IDEs and text editors.
And they also suck. Here’s why.

I’ve un-learned to use tabs while working in Qt Creator which I still use to edit C/C++ code and which is in my humble opinion The Greates IDE of all times.

Qt Creator FAQ mentions some reasons why Qt Creator doesn’t support tabs:

  • Tabs do not scale. They work fine if you have 5 to 6 editors open, they become cumbersome with 10, and if you need more horizontal space than the tab bar, the interface does not work at all.
  • Tabs do not adapt to your working set.
  • The common solution is to give the user the ability to reorder tabs. Now user has to manage tabs instead of writing code.
  • Tabs force you to limit the amount of open editors, because otherwise you get confused.

This is what they are talking about:

These tabs still somehow fit the screen, but I can’t open much more files (which I often like to) and the list is already pretty hard to read and has already taken up all the horizontal space.

What’s the alternative? A simple vertical list of open files on the left side:

Such a list has all the capabilities of tabs (you can see which files are modified, close them, reorder, etc…), yet it’s much more efficient - it scales better (25 open files is not a problem) and it doesn’t consume vertical space above your text editor, which makes sense given that most screens have wide aspect ratio.

One more reason a list makes more sense than tabs: Tabs were mostly designed to be controlled with mouse. IDEs usually have a whole bunch of keyboard shortcuts to navigate files and programmers usually don’t like to have to go to mouse from keyboard unless necessary.

Yet, sadly, desipte all these reasons, most today’s IDEs still offer tabs as either the preferred or even the only way to manage multiple open files…