Linked by David Adams on Fri 5th Aug 2011 17:42 UTC
Graphics, User Interfaces Since we're on a CLI kick today, here's an "attempt at presenting some of the most important guidelines for CLI design."
Thread beginning with comment 483937
To read all comments associated with this story, please click here.
Gawd awful guidelines ...
by MacTO on Sat 6th Aug 2011 17:13 UTC
Member since:

The Unix shell is superlatively wonderful because it comes with an extraordinarily powerful set of tools. Yet using it as an example of how to design command-line interfaces, well that's purely insane.

The Unix shell can afford to be more descriptive. This is true for how users issue commands (command completion means that noones going to develop RSI from using 'list-files' instead of 'ls' or '--force' instead of '-f'), but it is also true for how the program responds to user (since it is important to display progress for time consuming or complex processes).

The software can also afford to be more interactive. Yes, you need to be able to turn off interactivity for scripting. On the other hand, there are times when the software needs to ask. If it doesn't ask, it either fails to do what it's supposed to (e.g. 'rm') or it defaults to a destructive action (e.g. 'rm -f').

Those are just two examples stolen from the article, but the reality is that there are many ways to improve command line interfaces. The problem is that we live in a ghetto where the old way is the right way, so there hasn't been much progress over the past 20 to 30 years.

Reply Score: 2

RE: Gawd awful guidelines ...
by shotsman on Sat 6th Aug 2011 17:56 in reply to "Gawd awful guidelines ..."
shotsman Member since:

To paraphrase a character from 'Little Britian'

Yes. But No But Yes But...

There has been an alternative to the Unix shell that has been around 30+ years.
As you sat, no one is going to get RSI from using


instead of

cp -v

But it goes way beyond this.
The Unix shell is as pretty well everone agrees a powerful tool. So is the VMS DCL Shell.
Both have their +ve's and -ve's.
However in 30+ years of using both, the DCL shell is far more natural and is a pleasure to use.
Now I am the first to admit that people moving to it from Bash etc are mystified by it.
Once you reset your perceptions it becomes perfectly logical.

What I'm trying to say is that was can do a lot better than the Unix shell.
I agree that using it as a reference point in CLI design is just plain crazy.

I'd expect that if you asked this question of the original Unix devs they'd give you the country mile answer.
viz, 'I wouldn't start from here'.

It is a pity that more people aren't interested in moving the CLI forward.

Reply Parent Score: 2

moondevil Member since:

Lately I have been using Powershell and it is quite powerful, by merging Unix concepts with .Net and object pipeline.

Might have its quirks, but it sure is way lot better than using or cmd.exe.

Reply Parent Score: 3

foregam Member since:

I wouldn't call it pleasure. It's more consistent, yes (e.g. only one way to pass options) but highly unorthogonal too. SET and SHOW are the best examples — it's the same old idea "let's make it feel like English" that begat COBOL.

Reply Parent Score: 1