I typically open Emacs when I boot my laptop, and close it when I shut down (which happens only every few weeks); this is typical of a lot of Emacs users. In those few weeks, I open hundreds of buffers and I rarely close them: my buffer list contains all the TeX files from the paper I'm working on, the code files of a couple different projects, many one-off files, IRC buffers, twitter buffers, etc. Yet, switching to the buffer I want is easy, fast, and painless. Using ivy (helm or ido-flx are good too), I can quickly switch to any buffer by typing part of its name. This paradigm would be totally impossible (or at the very least, most impractical) if I had one tab-per-buffer.
I think if Vim or Visual Studio Code had a similar quick way of switching between buffers, people would be less reliant on tabs. As for Emacs, it seems like a waste of time and effort to implement a feature that most Emacs users would not use.
Tabs are an inefficient representation of Emacs buffers, as they are not mere views into files, and sometimes not even intended for the user to see. That said, there are packages out there if you really want them. Or you implement it. There are the facilities. But the default Emacs is an API for other packages, and plugging in tabs would have implications on most of the elisp out there.
Yet another option is not to use emacs if it does not fit your requirements and preferences.
So you mean GUI tabs I guess? How would one even begin to display hundreds of tabs on a screen? I hate that Firefox doesn't make it as easy to switch tabs as emacs makes it easy to switch buffers.
It can be done, it's just that there's no interest in the community or from the developers.
I can understand that, on the other hand such things make sure that a large number of people won't ever enter the Emacs community, for good or bad.
If you don't believe me about the popularity of the tabbed interface, I present:
- the addition of tabs to Vim
- the #1 feature request for Visual Studio Code, now implemented, tabs