Zach said:
Since the CLI is mostly used by developers, hard core users, wannabe geeks
and system administrators i don't really see the need to make the CLI this
user friendly. Not everything is meant to be a all in one jack in the box
with instructions on how to crank the lever. Would you like ASCII drawn
color images next to give the uesr a visual cue as well?
As a matter of fact, I think that's an excellent idea. But, as I
mentioned later in the post, it's not really the point. It's the
anti-user-friendliness paradigm that's the real problem, not the
peculiarties of the command line, per se.
[snip]
Ok, the last place I want an end user is on the command line. They might
hurt themselves or the machine. And if you don't know how to use a product,
operating system, programming language, etc... RTFM.
Someone once told me to "RTFM" when I couldn't figure out how to work a
*nix text editor. I felt insulted, that he insinuated that *I* was the
one with the problem, not the text editor. In fact, text editors are
dang near the oldest software technology we have. I've used dozens,
maybe even hundreds of them, and not once have I ever had to "RTFM"
before starting to use it, because they've all adopted the same
intuitive UI conventions that have worked well for a decade - Except for
*nix editors. They're 20 years out-of-date.
If you try to argue that typical *nix editors are in fact easy to use
(vi, et al), and it's "obvious" how to use them, as many *nix people do,
maybe you should step out of your geek-bubble and try learning something
completely new - maybe something that's also poorly designed and 20+
years out of date.
I'd suggest something like American manufacturing. As soon as someone
hears you complaining about stupidly the drill index is organized,
you'll probably be told something as insulting as "RTFM". Almost
everything is unintuitive, from a newcomer's perspective, if not
everyone's. To the dinosaurs still working in American industry, it's
"obvious" how things work, and they'll have no patience with you. As
I've seen happen many times before, your intelligence will be called
into question and you'll get fired the next day.
All because of crappy systems that refuse to die, because of arrogance
and silly "tradition".
As operating systems upgrade they may include all of these nice step by step
guides and procedures on how to do something, but since everything is
merely a perspective away I think that it causes more of a problem then it
solves. One person may like "cp", another "copy", another "duplicate",
another "clone" , another "copyfile", and the list can go on and on. To
support every variation would be a waste of developer time. And if you say
dont' support them all only support "copy" then you are being selfish and
only looking at this from your perspective. At some point someone had to
make the decision for it to be consistent across the board and I applaud
them.
I think "copy" is something everyone could agree upon, but I don't see
why it should take up a lot of developer time to make a "synonym file"
that contains all of the words and phrases that might trigger a help
program to explain the proper way to do things...even if that proper way
is still good 'ol cp.
I have never used any languageset besides the default english one that
comes with any OS, but I would be interested to see if the spanish version
changes "cp" to "~cpiol" or some variation. If commands are consistent
across languages then I even more so disagree with you.
Once again, the *nix world is behind the times. It's called
"localization". There's no reason that it can't be internationalized.
Mandrake Linux has already taken a stab at it. Microsoft has been doing
it for a decade, or more. It can be done, and the interest is surely
there. The only reason it hasn't happened is because of the arrogant
"RTFM" mentality in the *nix crowd, and the unwillingness of The Powers
That Be to cooperate. How hard would it be to create a language plugin
system that can intermediate between the OS inner workings and the end
user, in order to provide the language the user wants?
I'm not suggesting we go and much with all the stuff that's well tested
and works well, since that was your idea. But, once again, none of this
is the point. The point is that user-friendliness is frowned upon in the
*nix culture, for no good reason. I can only attribute it to arrogance,
or maybe something akin to forbidding the translation of the bible from
Latin. Who knows.
Only insecure people who like to feel like they are 1 step higher then
others on the food chain do this. It makes them feel like somehow they are
better, smarter, more intelligent! Computers aren't innate, nothing in
technology is. Everything you know you have learned. You don't have a two
year old who innately knows how configure a syslogd server one day.
Oh yeah, I totally agree. That's the root reason for all this ranting
I'm doing. Nothing is obvious, no matter how many times people say that
it is. I guess that's why we have warning labels on everything in the
USA, haha. Well, maybe the actual reason is because of the argument
behind who's responsible for things not being obvious...
Cryptic? cp to do a file copy isn't cryptic. An MD5 Hash of cp to do a file
copy is cryptic.
If a black screen with a blinking cursor is not cryptic, I don't know
what is. Windows has a "Start" menu. Why can't the command line say
"type 'man' for help" the first few times it boots up? I can't tell you
the grief I suffered in the IRC chans when I first asked for help. All
people would say is simply "man". What is "man"? I didn't know.
Oh, here's a good opportunity to mention that "help" doesn't help unless
you know exactly what you need help with. "help cp" works, but as I
found out all those years ago, "help copy" does not. That makes the help
command virtually useless for someone who has no idea where to begin.
No let's put a giant red button on each machine that says format, so they
can go push it. Anyways that is why children start with LeapFrog when they
are young, then they progress to using a computer. Then they learn on how to
use the computer.
Computer games for the youngest children are no more complex than
leapfrog. It's certainly a good way to start the progression, as you
say. I'm not even going to comment on the big red button idea.
And Linux is a hit with Linux users, BSD is a hit with BSD users and Windows
is a hit with uneducated users.
MacOSX and MS Windows are the only OS's
where the Apple or Microsoft tried to reach every age, child, race and
religion of computers. Linux/BSD/UNIX were never intended that way. You are
taking the problem that Linux/BSD/UNIX solve and trying to reshape it.
Yep.
*nix OS's can do anything, so why limit them to an elitist geekdom? As
far as I know, you're wrong about what *nix OS's were intended for. It
looks to me like they've been designed to capably handle anything you
want them to.
Apparently, shoving all the sophistication under the rug has worked for
them. *nix OS's are a decade behind in the UI/user-friendliness
department, and there's no good reason for it to be like that.
Again the *Nix OS's were never intended to be an all in one jack in the box.
That is Windows and OSX's job. [snip]
This webpage -
http://www.stud.ntnu.no/~shane/dokumentasjon/commandline.html - has the
following to say about what Linux is useful for:
"You can hook it up to twelve other Linux boxes and make it into part of
a parallel computer. You can configure it so that a hundred different
people can be logged onto it at once over the Internet, via as many
modem lines, Ethernet cards, TCP/IP sockets, and packet radio links. You
can hang half a dozen different monitors off of it and play DOOM with
someone in Australia while tracking communications satellites in orbit
and controlling your house's lights and thermostats and streaming live
video from your web-cam and surfing the Net and designing circuit boards
on the other screens."
There are distributions of Linux that aim for this sort of thing. Maybe you
should google for it or check it out....
http://www.linuxiso.org
I know about those. They're the exceptions to the rule. I'm complaining
about the rules, not the exceptions.
User friendliness is not a bad thing, but realize most *nix people don't use
*nix for UI's and GUI's. Most *nix users won't have a need for a intuitive
all in one UI and GUI. So why would they want to support it, if it doesn't
necessarily benefit them? And there are distro's aimed for UI and GUI
friendliness, go look at the link I gave you and browse the different
distros.
GUI's aren't really what I'm advocating here. I use the commandline
exclusively, and I like it. I'm advocating a general attentiveness to
user-friendliness. Unix systems aren't really experimental anymore, it's
time to make them easier to use.
When you go buy technical books do you look for the popup books? If so I can
totally see where you are coming from and why you had so much frustration
finding "cp".
I'm too old for popup books, but I *do* look for books that are easy to
understand. Doesn't everybody? And, I had a hard time finding "cp"
because I was staring at a black screen with a blinking cursor, with no
other clues as to what to do next - NOT because I have the mind of a 3
year old, as you insinuate.
Also if you would have moved from Unix to Windows, you be asking where "cp"
was and wtf "copy" was there.
Yes, but only if I had a hard time finding out the proper way of doing
things. Windows is in a whole other league as far as this is concerned.