No Tabs, Why?
Design by Questions
Socrates, a revered Greek philosopher, sought knowledge by asking questions. The technique forms the basis of any authentic field of knowledge today. Be it science, religion, law, mathematics or programming. An easy way to stagnate your intellectual well-being is by refusing to ask questions. Another word of advise. Successfully stifle your creativity by blindly following convention. "Blindly" is the keyword in the last statement. I conceived Scribes by asking questions.
Questions?
What is the purpose of an interface? Why do applications have menus? Why is manually saving documents necessary? How come applications have statusbars but don't use them? Is feedback really a key part of human interaction? What makes experiences enjoyable? How do people edit documents? How can they do it efficiently? Why do applications question my actions? Why do they ask silly questions? Why do they keep me uninformed? What frustrates people about software? Do Tabs provide any productivity benefits? Why do you need to learn a programming language to configure Emacs? Why do you need to configure applications at all? Why was my girlfriend baffled when I suggested she use VIM for her assignments? Will I get laid tonight? Disregard the last question.
An Application with An Arrogant Attitude
Scribes is an arrogant application because it does not pretend to be conventional. In fact, it seems to take pride in being unconventional. Most people who spend more than 15 minutes with Scribes will be immediately confronted by its rebelliousness. Within 30 minutes of usage they'll either love it, or hate it. Most users have a love-hate relationship with Scribes. If you don't have any feelings towards Scribes within 1 hour of usage, kindly file a bug report. Scribes has a soul that makes is unique among editors. A soul fueled by inquiry.
Man, Pen and Paper
Pen and paper are man's oldest editor. Thus the paper is the metaphor I ascribed to Scribes at its inception. If you are visually mapping an empty paper to an empty Scribes window, we are on the same page. A paper is a single document. When you edit a paper, the paper does not ask if you want to save it. Nor does it beckon you to kiss it to have your writing saved. Isn't it weird that software applications require needless protocols to use them? A paper doesn't have tabs either. Well, there's no need for one because you can only edit one paper at a time. A paper is a single individual unique object that may represent a document. Metaphorically, so also is a Scribes window. I don't view a Scribes window as an application. I view it as a virtual paper. A paper retains its last state and property. So also does a document written with Scribes. If at this stage you are still confused, I'll let you in on the secret. Scribes was not designed with an MDI interface in mind. That's why it does not support Tabs.
The Itch I Scratched
Almost every GUI editor I used prior to Scribes was application-centric and MDI. I loathed them for that. They forced me into a way of thinking that was unnatural. The paper metaphor makes sense to me. Something felt wrong about thinking in terms of applications as opposed to documents. On Linux, I knew of only 2 editors that were document-centric, object-oriented and SDI. One was a note taking application that suffered from poor text processing facilities. The other was an editor with the same ailment. I needed an editor that mapped well to the way I think, the way Psychologist suggest humans have evolved to think. The spatial way. And behold Scribes was born. If anyone told you I had intentions of making Scribes an MDI later in its life, that person has committed a heinous crime. Forgive my hyperbole, but there are a billion and one editors that are MDIs. Remind me, why is one more needed?
Implementation Overhead
At this point, the usefulness or uselessness of Tabs is completely irrelevant. What is relevant is what it will take to revert my fundamental design decision. The response is, a lot! The amount of work needed to implement both an SDI and MDI interface is colossal. When you begin to analyze the cost-benefit ratio, the rational developer will choose either the SDI or MDI but not both. The overhead of implementing Tabs in Scribes is disastrous. And even after I implement it, I will be incapable of guaranteeing Scribes' stability and reliability. Putting conditional statements into forty thousand (40,000) lines of code and making a few hundred objects MDI-aware only to make Scribes buggier is not an idea I entertain even when I'm high. The people demanding I implement Tabs in one hour, day, week or month are in essence demanding I squeeze milk out of stones. I guarantee you, squeezing milk out of stones is easy. I do it all the time, in my dreams. But at the moment I have more pressing priorities, sorry.
Four Hands and Unlimited Resources
So assuming my brain malfunctions and I begin to like Tabs, would you rather I spent months re-engineering and testing Scribes to support Tabs? Or would you rather I spent my spare time on features that actually boost your productivity and improves Scribes' text editing experience? Because when I began to question the convention of Tabs I concluded it did neither of these things.
There's Hope
Will Scribes have tabs? Possibly. It will require a massive redesign or rewrite. I have other pressing priorities and no motivation to work on it at the moment. At least until more important commitments have been met. However, if I wake up tomorrow and a courageous soul sends me a patch that works, I'll gladly accept it.
Tab Myths
The tab proponents have a couple of myths they propagate with reckless abandon. The first is that grouping documents in a single application is somehow superior to grouping documents in a taskbar. The reality is that there's no significant difference. In fact, allowing the window manager to manage windows is more beneficial. Window managers provide sophisticated grouping and organizational techniques that are absent in applications that manage multiple documents. The second is that tabs improves productivity by allowing users to edit multiple documents simultaneously. The reality is that users can only work on one document at a time regardless of whether they use tabs or windows.
Tab Flaws
Tabs don't scale well. Try opening ten tabs in a window. Not only does it become difficult to select or manage documents, most implementation of tabs do not provide facilities to search or sort documents. There's a diminishing returns as you open more tabs. Finally, MDIs do not map well to the way humans think. What metaphor can we ascribe to MDIs?
General Solution
Allow the window manager to manage documents. It is astronomically better than applications at doing this. Use sophisticated window management features like workspaces and shading to group and organize related tasks or projects.
Scribes Solution
As of version 0.3, Scribes implements what I call a document switcher. A document switcher is a window that allows you to focus any document open by Scribes. It is a scalable, efficient and effective alternative to tabs. You no longer have to worry about clicking on tabs or the taskbar to find whatever document you want to work with. The document switcher allows you to select the exact document you wish to work with and focus it. It doesn't matter if you have 3 or 20 documents open. The document switcher presents you with a scalable interface that allows you to search, sort and focus documents open by Scribes.
Old Habits Should Die
Some people have been so ingrained to using tabs that nothing will ever convince them of its irrelevance. For those people it is better to just use an editor that supports tabs. They are not in short supply. Editors that don't do tabs are the minority.

35 Comments:
Hi! Dude, when I entered Scribes' site, I saw what I was looking for. But when I read that there wasn't tab support I was a little disappointed. So I came here and read what you think about tabs. Now I'm sure convinced you're right! Thanks for this great program!
An interesting reading, thank you!
Still, tabs in applications are very popular and people seems to really like them. Thus to me it looks the taskbars of our window managers and panels don't do their job good enough for people to prefer them instead of application tabs.
This program is like a giant step backwards in usability and performance.
Nothing like a mouse-based interface to do keyboard work!
Well i actually find interesting this way of working with more than one document, and i'll give it a try for some days and see how it feels.
However, here's a question for you. How would you handle project managment ? I know this is a text editor, not an IDE, but a small project managment feature would be really helpful. Bluefish has it. Gedit's latest version has a file browser plugin for the side pane that, altought it doesn't gives you project managment, it gives you a way of navigating trough files without opening a nautilus window (not the best solution, but it's kinda pratctical).
Do you plan on implementing some feature to do this, or do you have a better suggestion ?
Keep up the good work.
Hello Tiago Rodrigues,
In the future it should be possible to write a plug-in to provide project management. Personally, I use the open dialog as a project manager and it works fine. Writing a project manager when the open dialog serves the same purpose seems like duplicative effort.
Cheers
Ok, so maybe i explained my idea in a wrong way. The thing is: i have projects for school, i have projects for work, i have my personal projects. It would be nice to have some sort of project files, stored all in one directory different from those of the projects, and when i loaded that project file i'd open up all the files related with that project that i'd opened up the last time i worked on it. It would be a lot more practical than having to navigate to a given directory and open files a, b and c.
Oh, one thing i haven't explained when i said i have projects for school, work, etc, is that projects for the different things are stored in different directories, but i assumed you'd understand that ;)
Hello Tiago,
The open dialog allows you to bookmark folders. So you could create a bookmark for "SCHOOL", "WORK" and "PERSONAL". And navigate to this folders with ease via the open dialog. If this still is not enough, then a plug-in should be written to meet your needs.
Cheers
So assuming my brain malfunctions and I begin to like Tabs, would you rather I spent months re-engineering and testing Scribes to support Tabs? Or would you rather I spent my spare time on features that actually boost your productivity and improves Scribes' text editing experience?
I understand your perspective, but this may be a false dichotomy. Implementing a tabbed interface might force your code to be more modular and maintainable, if you implement tabs in a way such that for example you can flag them out at compile time.
Consider as well that tabbed interfaces are tremendously popular (see firefox), and that implementing tabs might draw user and developer attention to your code, such that the end product is actually better owing to the additional exposure to the application and codebase.
Yes, the same bookmarks as nautilus. It's not exactly the same thing, but i somehow have to agree with you.
One of the best things that can be done about software is not only do it a certain way, but explaining why, and you've been great on doing the latter. Too bad only more "computer literate" users like us tend to care about explanations from software creators.
It's not the absence of tabs that bugs me. It's the fact that I can't have 10 files open without having 10 windows open. The clean simplicity of Scribes is totally lost when multiple files are open. It also completely messes things up for when some project drawer plugin comes(hopefully).
However the next big step would be better text handling. It's the single biggest thing I miss from TextMate. The syntax and templates are looking good(although templates could be more powerful ala TM) but the text handling itself is only on par with Notepad.
Hello Jon Gretar,
What do you mean by better text handling? And what is lacking in the template system?
Cheers
I just wrote an article on text editors where i also talk about Scribes, tought you might want to take a look :)
By the way, the "link to this post" feature on your blog doesn't seem to be working right.
http://www.trodrigues.net/fragility/2006/12/04/text-editors.html
it's great, it's not textmate yet but i don't see why it can't become that. I'd like to see something like a theme interface for the actual application. Sometimes my brain wants light on dark sometimes the otherway around (usually depending on how much light there is in the office) and it's a real hassle to change the background and then all the other syntax types to colours work with dark or light backgrounds.
word
I'm curious, how do you handle working on several (10+) documents at the same time? It totally destroys a tab-oriented interface but a toolbar-oriented one too. I've always been a fan of Emacs in this subject, just switching through buffer typing part of the name and TAB-completion, how do solve this?
Maybe I'm wrong and working with too many documents is not the focus of your application.
Fredrico,
You use the document switcher (Press F9) to switch to the document you wish to work with. I often work with as much as 10 documents sometimes. And in my experience the document switcher is the most efficient way of switching between open documents.
Thanks for your reply, I'm not sure I'm convinced yet but I'll fire up an installation to try it, keep up the good work.
Federico:
> how do you handle working on
> several (10+) documents at the
> same time?
I normally have dozens of windows open in six or eight workspaces - and I don't use the taskbar (or Window List applet, or whatever it's called) in the panel.
I use superswitcher: http://code.google.com/p/superswitcher/
> typing part of the name and
> TAB-completion,
Yeah, superswitcher does that - "find as you type" window switching (screenshot). To get to my open document called "ToDo", I just hit Super-t-o-d-Enter.
Kate doesn't have tabs but two icons <- -> in the menu which allow switching through open files and if you want you can display a list of open files. Quite handy alternative to tabs
Hi, I have to agree with Jon Gretar. It's not the lack of tabs that bothers me (although i'd like to have them), but having to have all those windows in the taskbar. It can't be too much work to have only one window open, can it?
Why are you bothered by the number of items on your taskbar? Also, have you considered using a separate workspace when opening multiple documents with Scribes?
because I'm used to alt-tabbing to switch between programs and because of that I want to keep it as clean as possible.
Also, I think the task bar doesn't handle multiple windows very well. It shows a small icon and, if space allows, the first part of the window title. Is that why you added a document switcher?
I have two monitors so I don't usually need more than one workspace.
The purpose of the document switcher/browser is to focus any document opened in Scribes quickly and efficiently. It's faster than using the taskbar, alt - tabbing, or using tabs.
If the number of items on the taskbar bothers you, then I suggest you open multiple documents in a separate workspace. And then use the document switcher to quickly and efficiently focus documents as the need arises. This way you can alt - tab happily for your other applications on your main workspace, and then use the document switcher with Scribes on another workspace.
When I'm working on a project I have all documents associated with the project on a different workspace. And there's no need to use the taskbar or alt - tab, when you can access documents faster with the document switcher/browser. You can activate the document browser by pressing F9
That's great if that works for you, but it doesn't cut it for me (as I already explained).
I respect that Scribes wants to go its own way but I think that reducing the number of windows but still using the document switcher is a pretty good compromise. Why not make it an (non-default) option?
Your window manager is responsible for managing the number of items on the taskbar. Scribes has no control over that.
If by reducing the number of windows you mean I should implement Tabs, then the blog says everything you need to know. I'm neither interested nor motivated. If you want an editor with Tabs, there are more than enough to choose from. That's the fantastic thing about Free Software. If an application does not meet your needs, there are almost always good alternatives.
If you implement Tabs for Scribes, I'll will accept your contributions. Like the blog says, I did not design Scribes with tabs in mind. I deliberately designed it to be document-centric.
The only way I'll even consider implementing Tabs is if anyone is willing to pay me to revamp 50,000 lines of Scribes code.
If that's the case then so bet it. I'm no expert in desktop applications :)
I wish I was though, I would love to help with scribes. I think has a lot of promise.
Just found this editor. I REALLY like what I see.
You know what almost sold me to it? The ability to AUTO SAVE DRAFTs that were not saved before.
I lost a LOT of work, several times, just because the system crashed or rebooted or notebook battery dies and I had forgotten to save the text in gEdit a first time (so that auto-save would kick in and it would have been saved).
You know what I'd like in this editor? The ability to use the Mozilla/SeaMonkey spellchecking dictionary files... I have my own customized over the years...
Keep the good work!. And kudos from down under.
FC
Buenos Aires, Argentina
i must say, i'm hooked. thank you.
(now if only there were a way to make that toolbar go away this would be a dream come true..)
Hello midorigin,
Try (ctrl - alt - m)
Cheers
Okay, this and all the comments have made for interesting reading. However, I really wander who the target audience is?
Scribes does not really seem fully featured or lend itself well to developing applications or sysadmin editing. So it does not seem to be pitched at the tech crowd.
The average joe who is not a tech user will not use a text editor, and would take a Word Processor (ie MS Word) in preference.
mystilleef, who exactly is this editor designed for, if anybody? Or is it merely an interesting thought exercise?
Why do you feel Scribes is not full-featured and why does it not lend itself well to software development?
I use scribes to develop software and so do many other people.
Scribes target audience is people who use text editors.
No, not arrogant, just focused. The tabs are not needed when we have multiple windows and gnome support for fast access of those windows. Tabs are actually superfluous, and the desktop could provide them as a window grouping. I cannot say scribes is very rebellious, in most other extents it addresses the same problems as f.ex. gedit, and documents them as badly (sorry, but true). I like it's philosophy and shrinkwrapness though, and I'm going to use it as a replacement for gedit.
If by reducing the number of windows you mean I should implement Tabs, then the blog says everything you need to know. I'm neither interested nor motivated. If you want an editor with Tabs, there are more than enough to choose from. That's the fantastic thing about Free Software. If an application does not meet your needs, there are almost always good alternatives.
I'm also all in for one window only. No tabs, just one window visible at a time. Others would still be there, but completely (and automatically) hidden. F9 would replace the current window. It also seems to be a good combination with a project manager. If that were possible, I could die happily.
The reason for one window is simple - it reduces the clutter on screen without the need for the user to minimize or shade other windows by hand.
Let me make an analogy - if you write something on a piece of paper, you put other pieces of paper underneath it, so that it doesn't protrude in any way (at least I do ;). Of course, you might like to consult another page for this or that, so you put them both out at the same time, so many-windows approach should definitely stay. However, most of the time, as you say, you only work with one piece of paper. Thus one window.
And the reason for a project manager is also simple - clicking on a plus by the folder name is faster than double-clicking each one in open dialog. It also doesn't close after opening a file, while the open dialog does (and you might want to add more files).
Yes, one could use a file manager that allows tree-based browsing, but that's another window we're talking about. I don't really care about the number of things in the taskbar, but going through the ritual of firing everything up manually every time does seem like an unnecessary hassle. And as for having another application open just to open the files that the application should have ready for you, well... ;)
Another analogy - if you're working on something - you leave it on the desk when you go to sleep. You don't hide it on the bottom of a drawer just to get it out again in a couple of hours.
Other than that, it's a fantastic app. Thanks and please keep up the good work.
Your App rocks.
I dint care to know all this reasoning, but I knew for sure I was far productive using that old version of SciTE without tabs.
Tabs suck. Use buffers and emacs if you have enough stomach, else use Scribe!
I would like to know your take on VIM and Emacs too. I know I am hooked to it enough for some time. But I feel that this is a gradual movement I am making towards emacs.
Hey becomingguru,
Scribes is heavily influenced by VIM and EMACS. They are both great text editors with a steep learning curve.
Scribes' goal is to present the power of VIM and EMACS to you but with a better user interface and a more rewarding experience.
Post a Comment
Subscribe to Post Comments [Atom]
Links to this post:
Create a Link
<< Home