Return of the Command Line
Comments: 2 - Date: August 3rd, 2007 - Categories: Tech
One thing that continues to bug me is the arbitrary nature of interfaces. I’ve harped on this before with my (old) phone, which had no less than three symbols for something sound related: a speech balloon, a speaker, and a music note. They all did something different, and none of them did what you expected—and even worse, since I’ve gotten a new phone, they’re different again. No one seems capable of leaving well enough alone.
Annoyingly, when someone like Apple or Microsoft comes along, they’ll often redesign their interface to great acclaim. If you’re Microsoft, your design will suck. If you’re Apple and you’ve put a lower-case I in front of your device’s name, the heads of forty score Apple fanatics will asplode, even if the device is a turd. The problem with these approaches is that they contain many icons and actions that are always used, not necessarily because they’re intuitive, but because they always have been used. Just about any set of toolbar buttons in any given piece of software is an example of this. In some instances, the icons are redesigned completely, in order to ensure that graphic designers have something to do.
I keep thinking that there has to be a better way to design interfaces to make the whole computing thing more accessible. Unfortunately, I, like everyone else who thinks about this, is stuck in the generic interface box with its windows and little “X” and the “—” and the ribbed corner square—all of these things which mean absolutely nothing if you’re not already familiar with the visual language of computer systems. I’m don’t know if we would be able to get rid of this symbology, and at this point we might not really need to. It just bothers me.
Anyway, ever since I upgraded to OSX 10.4 a while back, I’ve found myself using the Spotlight feature more and more. Spotlight is Apple’s version of Search in Windows Explorer with one important difference: it actually works. I’ve heard Spotlight get panned by a lot of people for various reasons, but I happen to like it, and I use it almost all the time.
For example, my dock is basically full at this point, but I still get new software that I use. Ever since I discovered you could search for apps in Spotlight, I actually don’t bother putting anything in the dock anymore because it’s just as easy to open that window and type the name of the app in there. (It’s not as fast, obviously, but for as frequently as I use some of these programs, it’s not an issue.) I also use it all the time to find documents, even though I know exactly where they are. The difference is between me clicking through a bunch of folders and then hunting down that one file (amidst all the others in that folder) and opening it versus cmd+space to open spotlight, type the first word of the document, and bam—there it is. I’m “searching” for it, even though it’s not lost, because the search is fast enough.[1]
Along those same lines, I’ve developed some wicked Google-fu. It’s a joke among some of my coworkers that if they need some bit of information, and I can’t find it online in fifteen minutes, it must not be on there. But I’ve also become dependent on Google (and Wikipedia) for my indexing. True, it’s no big deal to right click and bookmark, but despite this, I’ll still enter the same search query into Google three or four times—and in the case where I know the result is the first thing that pops up, I just hit the “I’m feeling lucky” button and there I am. This is helped along by the fact that the browser saves your search history, so I really only need to type in the first three letters or so, and I’m half way there already.
Recognizing this behavior in myself got me to thinking. Why isn’t search functionality more integrated with the user interface? Both Apple and Windows have it, but it’s relegated to some back corner while the directory tree gets huge boxes of screen real estate in which to display a hierarchical structure of folders.
That’s not to say I think we should get away from the directory tree. I very much prefer to manipulate files in this environment. In fact, this is one example where I think we have developed the most intuitive interface. The folders are there in alphabetical order, each cascading down to their sub folders and files. It’s utilitarian to a tee. Of course, plenty of people I know don’t use it. They have no file management skills to speak of and so keep everything on the desktop. But I think the majority of us have a handle on computer file systems. It works.
But some aspects of UI design are still not standardized. For example, there is no standard way to launch programs. Windows has the start button—which immediately degrades into another hierarchical menu. While it’s great to move files around this way, it is most decidedly not great to try and launch a program this way because the average person has approximately 8 gazillion programs installed, and they must all be listed. Windows tries to limit this by only showing the most used choices unless you hit the bizarre double-chevron button to expand the list, but if you do need to expand the list, you get punched in the face with your 8 gazillion programs. This is made worse when the menu is so fragile; let your cursor slip slightly too far to one side and the entire thing disappears.
The Apple dock is no better. It’s either always on, taking up part of your screen real estate, or it auto-hides, forcing you to maneuver around it whenever you need to click on some button that encroaches in the dock zone. It also holds less programs, limited by icon space, and it just generally ends up being a pain.
Neither of these solutions are good—and they’re certainly not elegant. For all the horse-beating Apple does on elegance and design, it actually sucks most of the time. Their UI designs just suck a little bit less than Windows, so they can get away with it. But it really comes in full force when there’s a difficult problem to solve, like launching programs, and it’s just too much work to figure out something elegant. It’s easier to just make it look cool, even if the functionality blows.
Although most of my coworkers consider me a young whippersnapper, I am old enough to recall the old DOS days of 80 columns of ASCII and no graphics, dagnabbit. I was pretty competent with DOS, if I do say so myself, editing my own autoexec.bat and config.sys files, and even writing little startup routines to boot into a particular configuration depending on what game I wanted to play—all while in the single-digits years old. When Windows 3.1 came out, I edited the boot sequence to just boot into DOS, and only fired up Windows if I needed it to run some sort of application. You can imagine my dismay when Windows95 did away with “real” DOS and just faked it in a little window. None of my games ran right.
The problem with DOS, being a command line interface, is that you not only had to know all the relevant commands by heart, but you also had to spell them correctly. The command line was (and still is) dumb. Only marginally smarter were the text parsers in role playing games.
Well, today we’ve come a long way. Computers are fast enough to do many neat things: auto-correct misspellings, parse sentences for meaning, run searches, learn preferences—all in real time. With all this in mind, I think it makes sense to begin integrating a new and improved version of the command line into modern UIs.
I believe it’s possible to create a powerful enough text parser that one can type in normal, conversational language and have it decipher what your intentions are. For example, say you were retouching a family photo. You should be able to type in the command line, “I want to finish retouching the photo I was working on last time”, and have the parser be smart enough to recognize “retouching” means photoshop or GIMP and “the photo I was working on last time” would be the most recent document. Or you could say, “I want to see pictures from the family reunion” in which case the command line acts as a search box and finds all pictures named (or tagged with) “family reunion.” If you type in a URL, the computer takes you there. If you type in an equation, it solves it.
For those of us who are efficiently lazy, we would only need to type “photoshop” to launch the app, or even just “ph” if it saves our previously entered commands. As much as I hate adding buttons, it might be necessary to add some buttons to differentiate what you’re doing—between searching, launching programs, etc—although I think if you designed it right, this wouldn’t be necessary.
Ultimately this would allow the elimination of some of the more cumbersome features we’ve been left with from the early days of UI design when we didn’t have any other options. It also allows communication with the computer in a more natural way. Obviously this assumes people can type well enough to get the computer to understand them. This will be a challenge until we get good voice recognition technology and we can just pull a Scotty, like in Star Trek IV. I can see how this wouldn’t catch on among people who are slow or poor typists, but the computing power is there to make it work.
Eventually there will come a point when the graphical part of the graphical user interface is much less important than it is now. Note that I do not mean to say that graphics will be less important. Larger, more beautiful screens are always going to be a priority (unless we get something better, like shooting images right into the eye, or manipulating the perceptions of the brain directly), and larger more beautiful graphics to fill the screen, or eye, or brain, will always be forthcoming. What I mean to say is that the utility part of the computer, the interface is going to be minimized to the greatest extent possible to allow these other applications to shine through.
We devote a lot of the screen to present commands that are often not used, but we have to show them in case they need to be used, so the user can find them. But a plain-language command line would eliminate the need for some of this and free up a lot of the screen. In a sense, what I’m advocating is something similar to the computer in Star Trek, only it would be controlled by typing rather than speaking (for now, anyway). It’s sort of a half-way step.
Like I said, I can see a number of problems with this and it may not catch on. Still, the command line has the potential to be one of the most powerful tools in the computer, assuming it’s not bogged down by required syntax and inscrutable commands. Computers today are powerful enough to allow common-language interaction. I think the command line deserves a second look.
-Ted
[1] Windows has an easily accessible command line, also, under Start, Run—and while it’s similar to what I’m talking about, it’s not as intuitive. Not to mention, it’s hidden away like some embarrassing deformity. Unless you know where it is and what it can do, it’s a mysterious non-feature. [Back]
Comment by Chionsas - August 4, 2007 @ 7:06 am
Some of the stuff you mentioned is already in Windows Vista =)
Comment by Ted - August 4, 2007 @ 7:23 am
Progress!
I haven’t used Vista, myself, yet. I hate the look, but I can’t speak to its functionality.
Leave a comment