Of Modes and Men (2005)
spectrum.ieee.org
spectrum.ieee.org
Today, each program/website effectively functions as a separate "mode" where everything potentially looks, behaves, and responds completely differently. There's no consistency and it's a huge part of the reason computers are frustrating to use for most people.
But this does not necessarily applies to content. If you have two different apps, with very different media and data (e.g. one is a spreadsheet, the other a slide presentation), they don't represent different modes if they respond the same to the same actions. You may have a zoom button in both which works the same, a similar color palette, similar scroll bars...
This is the reason why GUIs are composed with a small set of widgets, and these represent standardised behaviours that work essentially the same across all applications that use them (and also, this is why it's such a terrible idea to build widgets that deviate from these expected behaviours). Tesla should know, he was there when they invented them. [2]
You have a point that it's too easy to find applications that don't follow the standards and reinvent the wheel for no benefit, and also that the standards only extend to low-level interactions - before mobile OSs, there never was a unified metaphor for reading, storing and sharing information at the end-user space.
[1] https://en.wikipedia.org/wiki/Mode_(user_interface)#Definiti...
[2] https://web.archive.org/web/20040511051426/https://computerh...
Right-mouse-button context menus are modes, since the functions you are shown depend on what type of object you click on/have selected. The classic Mac OS menu bar, on the other hand, is modeless since it always shows you the same set of functions (and greys out the ones that are inapplicable to the selected object). This is a tremendous boon to discoverability, a key feature of usability.
It's a matter of expressiveness and bandwidth. You can do more pointer-related actions with multiple buttons, and they aren't confusing the way keyboard modes are, because you've got feedback on the display at the pointer location. Primary clicks do the important thing, secondary clicks give you a set of other options or an alternative action. It's very easy to pick up given its universality and its usefulness. A single button just requires you to press mode keys with the other hand to get that expressiveness needed in a reasonably intuitive, and powerful, pointer-driven UI.
Imagine if we didn't have multitouch and the only gestures we had on touch displays were tap, tap and hold, drag...
I would argue that context menus are inferior to keyboard shortcuts anyway. I certainly don't use them once I learn the keyboard shortcuts. I believe we have truly lost something special, since the classic Mac OS is no longer with us. We don't even organize our computers spatially anymore [1], we just rely on search all the time. That's a terrible shame, as spatial memory is the fastest. When you walk into a room in your home, you don't even need to look at the light switch, you just flick it on because you remember exactly where it is.
Modern computers with all of their context sensitivity, browser windows, etc. are like a house where the light switches keep moving around to try to guess where you'll be next.
[1] https://archive.arstechnica.com/reviews/4q00/macosx-pb1/maco...
For example, every graphics program has a "mode" for creating e.g., curves, whereas the "default mode" is selecting. This is very much a mode, but it is clearly indicated to the user by (typically) a change in cursor shape. It's still a mode (affects what clicks of the mouse do), but it's tolerable because it is directly entered (by selecting an icon to enter the mode), and feedback is relatively clear.
There are modes, and then there are modes.
Ultimately, the results of Larry Tesler tests coincides with my own.
Thankyou Mr Tesler for No Modes editors!
I get hate from both sides by using nano :/
Also vi being POSIX is awesome, I didn't know that! :)
Maybe competitions would be a good way of finding which is best. But what would the rules be?
Tabs vs space? Auto indent? Supported languages? Colours? Terminal only? Size (file and app) constraints?
This is even before we enter discussion on modal or not.
I think it more realistic to understand that editors are like neighbourhoods. They come in all different shapes and sizes and each has their own vibe. Some will burn you, some you'll feel welcome in...
> Modeless: Computer scientists when writing code typically worked in different modes; you might have an insert mode, a delete mode, or a replace mode. You would first select the mode, then select the point on the screen at which the action was to occur, then perform the action. Tesler, in user experiments, proved that modes were confusing for nonscientific users and championed the “modeless” interface.
For non-technical users, sure modeless editing may be better. But for computer scientists, modeful editing may be better. The article mentions modeless editing to be better for no scientific users only, not necessarily for everyone.
Also from the article:
> “I really didn’t believe in it,” he said. “I thought cursor keys were much better. We literally took people off the streets who had never seen a computer. In three or four minutes they were happily editing away using cursor keys. At that point I was going to show them the mouse and prove that they could select text faster than with the cursor keys. Then I was going to show that they didn’t like it.
“It backfired.
Just because he thought a way was the way, Mr Tesler was willing to correct himself of his presuppositions based on real world testing.
That's why they kept on investigating, and concluded that modes are bad for anyone; as long as they are human, using modes increase their rates of error. Jef Raskin went so far as to invent quasimodes, to get the benefits of modal interfaces without the burden on short-term memory. (https://en.wikipedia.org/wiki/Mode_(user_interface)#Quasimod...)
Quasimodes (chording) are physically difficult and distracting.
The key difference is of course that "learning" to use the mouse, or the touch screen - feels much more natural than some arcane key combination.
So, if you already know the combinations for switching modes (both the arcane key combo, and the "process" of moving one hand from the keyboard to the mouse, and back again) - you are comparing different things - typically "efficiency".
While I'm a vim user, and unlikely to ever go back to using a mouse, due to RSS injuries - I still thing something like ACME[1] is likely more efficient than vim. On the other hand, the act of editing is plenty efficient in vim for me.
[1] Russ Cox "An introduction to the ACME editor": https://youtu.be/dP1xVpMPn8M