Back to the Future Part II
February 7, 2007 ⋅ 4 Comments »Nope, not Marty and Doc; I’m talking about the returning popularity of the command line interface.
Over at 43 Folders, Merlin gives a demonstration of Stikkit. Merlin gives an example of Stikkit’s “magic words” — commands that Stikkit parses from each note. After my post on Humanized’s Enso, I’m starting to notice a trend here — it looks like the command line is making a comeback. A post at Lifehacker earlier this month noted that search boxes are also command line interfaces.
Just as with Enso, the question I’m asking is — do we really want to go back to a command line interface?
Sure, a trained user might be faster using a CLI, but I don’t think that’s relevant for an application like Stikkit, which is really supposed to be something you use in the background. Do it really matter if you take 30 seconds or 45 seconds to schedule an appointment? For most people, no. I think it’s much more important to have applications that don’t require much thought to use.
It reminds me of the old mouse vs. keyboard paradox, described by Bruce Tognazzini:
We’ve done a cool $50 million of R & D on the Apple Human Interface. We discovered, among other things, two pertinent facts:
- Test subjects consistently report that keyboarding is faster than mousing.
- The stopwatch consistently proves mousing is faster than keyboarding.
This contradiction between user-experience and reality apparently forms the basis for many user/developers’ belief that the keyboard is faster.
The theory to explain this is phenomenon is, in a nutshell, “time flies when you’re having fun.” Reaching for the mouse and pointing to an object on the screen is such a cognitively simple task that users actually get bored, and perceive time passing slower.
I wonder if the the same effect is happening with applications like Stikkit: people feel productive, because they get to type everything into one box, instead of clicking on buttons. But, in fact, it may take longer to stop and remember the command syntax than it would to actually click on the pretty icons.
UPDATE: Thanks to a commenter on the 43f thread, I saw this article from Donald Norman: UI Breakthrough — Command Line Interfaces. He’s basically saying that yes, command-line interfaces are coming back, in the form of search. The big difference though between using a search box as a CLI, and something like Enso, is that the search is much more forgiving. I can never remember whether to type “define:copacetic”, “define copacetic”, or “copacetic definition” into Google. The beauty is, they all work. Even if Google was unable to recognize the special command in that, chances are that a regular ol’ web search would still find what I am looking for.
Chris - February 8, 2007:
Well, it really ties in with the issue of finding my information - especially with regards to search boxes.
If I want essentially anything on my Mac, I just type it into the search box, and it is nearly always the first hit. Whether that is a photo or an application. It seems a lot faster than actually spending a great deal of time organizing all my information to be easily accessible later.
Same thing with the beast that is Google. Bookmarks become a hassle to organize and access, so more than half the time I just type a keyword into Google for a site that I access frequently. Go go 'I Feel Lucky'.
e - February 8, 2007:
We've kinda, sorta, almost managed to separate content from markup with HTML. That allows appearance of content to be modified without mangling the content itself. It's a pity that we haven't seen fit to do that with our commands or actions.
It really should be up to the user how they interact with their computing environment. Tying actions to a specific kind of UI (CLI, GUI) means that we can't reuse code easily, and we can't explore novel interfaces (commands via speech, visual overlays, tactile representations, active surfaces, etc). Ideally, code would be divorced from the UI to the point where users could cobble together their own UIs.
Patrick - February 8, 2007:
Yeah, I've always dreamed of this notion of "semantic computing", where all of the entities that we deal with (files, applications, windows, buttons, commands, etc.) are well-defined objects, that you can refer to by name, and manipulate to your heart's content. Like OLE on steroids, all these objects could be linked and embedded in various ways.
As an example, think if a command was a first-class object in the system. If you forgot the name of a command, you could just do a search, which would find that object for you (based on its documentation), and then you could execute it.
Wow, it sounds like I've been out drinking with Alan Kay...
But one of the key things to me is that you be able to refer to EVERYTHING by name. Like Plan 9 I guess.
Zusch Login » Blog Archive » Delivery Spectrum - May 5, 2007:
[...] However, realizing this potential is not easy even with the human capacity for language. If the user needs to slow down to try to remember the command, then the speed advantage of Command is likely counteracted. If the user fails to correctly recall the command, resulting in an input error, the speed advantage is certainly blown away. Ironically, while such a Command interface can be slower than the classic GUI, it may seem faster to the users because they are constantly thinking and interacting. It is daunting to make an expressive but easy to remember language where on average each induction component is expressed with six characters. Too easily the language can degenerate into a large vocabulary of arbitrary codes, which, while theoretically faster than other styles, fails to perform in practice due to the memory burden. [...]