tags:

views:

397

answers:

4

Is there a good book or other references on Text User Interface Design? I am not interested in graphical user interfaces. I am interested in usability for good command line and scripting interfaces.

A: 

I'd use a favorite program as a reference for something like this. What command line utility do you think has a good, efficient interface that you could model your program on? Use it.

Update: So I think I need to revise this a little. It was taken way too literally. Google and this site proved that the internet is very democratic. What is popular is replicated, linked to or reproduced in someway.

Given this, plus one's personal experiences with computers, I think it is feasible to derive a pretty good solution based on personal experience and consideration for the solution to be provided.

For example, vim is a great program. A lot of people use it and love it. But that type of interface is probably not going to work (at least well) for a version control system. But both interfaces are very elegant for the purpose they suite. On the other hand, the vim type interface might work for a section of the version control system -- the commit dialog for example.

Now, I know that vim is normally used for the "commit dialog" (by default) for svn (on unix based OSes). This is just an example of mixing two styles of interfaces to come up with a cohesive solution.

Frank V
A problem with that is that a user interface is (well, should be, anyway) geared toward the type of user. If you look at a command line debugger, that will have different user interface characteristics than a command line email reader. However, there should be general guidelines for implementing textual user interfaces, although I'm not familiar with any.
Thomas Owens
The key is not what I think is a "good, efficient interface." The key is how do I write an interface which is not torturous for an end user. I have a programming background, but the user of my software will have more of an applications engineering background.
Juan
@Thomas: You have a good point and this is exactly why I didn't name an example. It does depend on the goal and that is where the implementer needs to make decisions and perhaps draw on different sources to come up with a good design.
Frank V
@Juan: the key is what *you* think is a good design (for the goal of your application). As a programmer, you use computers more than most and that counts for something. Of course, one solution might not be good enough but you can draw on different sources for inspiration on what might work versus what to stay away from. My answer is more a method to come up with a solution....
Frank V
Hi Frank, I think the issue is that programmers think they know how to do usability design. I think it takes a significant effort to think these issues through, and I'd like to have references to resources so that I can learn about how non-programmers interact with computer programs effectively.
Juan
@Juan: I'm sorry my answer wasn't more helpful but I do hope you find what you are looking for. Regards, Frank
Frank V
+2  A: 

Your interface should follow the Rule of Least Surprise as described by ESR in The Art of Unix Programming. If your programm supports command line options, make sure they have the traditional meaning. Be sure to read the chapter about Tradeoffs between CLI and Visual Interfaces.

A: 

You should have a look at some of the ideas behind Ubiquity as well as some of the ideas Aza Raskin talks about, seems like the same kind of thing.

Tom
A: 

IBM developed a standard called Common User Access. The Common User Access Basic Interface Design Guide has been published in the BookManager format and in HTML here.

The guide was written as a standard for developing 3270 applications. In my opinion the most important parts are the function keys standard and a color standard.

matiasf