The Command Line - Best Newbie Interface?
An anonymous reader writes "This essay describes the surprising results of a brief trial with a group of new computer users about the relative ease of the command line interface versus the GUIs now omnipresent in computer interfaces. It comes from practical experience I have of teaching computing to complete beginners or newbies as computer power-users often term them."
I'd wager that computer literacy amongst people who've tried Linux would be twice what it is today if when you typed help foobar bash would perform a man foobar if 'foobar' wasn't a builtin command. And it'd probably be double that if you incorporated some kind of search facility too. Type in help disk space and get a hit on the df command, for instance.
And isn't it nice that Mac OS X now gives you the best of both worlds :)
Does anyone remember 4Dos? Between that and Qmodem, I learned a whole lot about computers.
Life is the leading cause of death in America.
Wow, what a well-researched and interesting article. Will we be seeing 'newbie conversation' mode with the limited commandset (as used in the article) splashing across the desktop soon? Unlikely, I think, but this article puts the whole thing in a new dimension for me.
I notice the author is multitalented -- he's also the genius behind Desktop Manager, a virtual desktops manager for Mac. Wow. If only I was single...
I find it amazing how many computer "experts" are dead in the water when the mouse doesn't work or the GUI doesn't come up as expected.
Too bad only the "old-timers" seem to appreciate the power of the keyboard.
To Terminate, or not to Terminate, that's the question - SCSIROB
It seems to me that if you start someone on a command line versus starting them on a GUI they learn a little slower but acquire a deeper understanding of the computer.
point-and-click and drag-and-drop don't encourage any actual understanding of ways in which a computer interprets commands.
lysergically yours
Apprentice: "What is that, Master?"
Master: "It's a command line. The instrument of a Unix Programmer. Not as random or clumsy as a GUI. An elegant interface for a more civilized age. Before the dark times. Before...Microsoft!"
"Backups are for wimps. Real men upload their data to an FTP site and have everyone else mirror it." -- Linus Torvalds
I have always wanted to bind my run line into the start bar of Windows XP....
It has been my experience when trying to improve efficiency, the mouse has been a pain. Using it to click and move around a mouse pad may be easier, but the time it takes to grab a mouse and move it could easily be beat by pressing tab and enter.
I believe it is because the command line is very simple and compact, single-threaded and simple to understand.
Modern GUIs have many things going on at once, which can confuse people who have no idea what is going on. Windows pop up, there are icons to deal with, they have to search through endless menus to find what they want.
The command line however has simple command to remember instead of complicated graphical procedures, and the status of the command line really never changes. If you mess something up, you are still back where you started, but in the GUI, a user could close a window to open another one which obviously confused people who don't understand what they mean.
give a newbie instruction on how to operate a computer with 1's and 0's they will just as easily become apt at it.
These days people only know the GUI, for that matter the MS Windows UI of doing things. Most people have no time/reason to understand how things work or that there is a more optimal way of doing things. The other guy watchs TV so, I must watch TV. Get it.
The Unix/*nix/*nux CLI is not easy. It is a major design flaw that the file name "jones.txt" is treated different than "joNes.txt".
If you want the best of both worlds, try the Amiga CLI, which has many features of *nix, but does not take case-sensitivity to this useless extreme.
Good point on OS X, however. It is Apple's first serious OS. The previous ones were hard to use and crippled due to the lack of a CLI.
But you think a command line would make using a digicam easier? A microwave? A thermostat?
The computer as a non-specific device is a fundamentally flawed (though useful) contraption. The command line, GUI, and other UI creations are all hacks to help users get around the problem of genericity of the machine.
As computers get more powerful and more 'intelligent', computer user interfaces like these will wither away and something more straightforward like controls for a camera, microwave, or thermostat become the primary UI of the computer. This means that innovations in computer operating system design must be made so that the OS can guess what the user wants to do and present an appropriate, simple interface.
I really look forward to the day when the concept of the PC disappears.
I have been pwned because my
The DOS command line, that is. M$ is much more friendly than any unix flavor command line. So, if you are a newbie, go M$!
And you can take a conclusion: Aunt Tillie's intelligence >> PHB's intelligence. And... in an RPG world, the same would apply for strength, dexterity, wisdom, and charisma. Oh yes, it takes all these to get the CLI working... ;)
--
Error 500: Internal sig error
Tells you everything you need to know!
I'd bet that the CLI is probably easier to learn for a complete newbie to computers in general, but a GUI probably easier to learn for anyone new to a given application.
More intelligence in either interface would certainly be a Good Thing, however.
In my experience, the command line is more consistent, especially if you are telling someone to do something. Once you get into it, it just a matter of saying "press A, then press ., then...."
With a GUI, there is a lot of hunting and squinting and guessing: basically, the stuff is never in the same place and never looks the same from one machine to the next.
Don't blame Durga. I voted for Centauri.
I'd hate to see what this guys commandline looks like given his typing ability : "This essay describes some of the observations I made when giving some of the more advanced members tow brief session with a Linux session over SSH. "
When she worked she worked with DOS based programs. I guess now these are so much easier to understand because you actually "talk" to the computer albeit through a keyboard and with a very limited command set. Maybe the mouse driven GUI is a bad inbetween step from the keyboard-only days to a time when computers understand conversation.
One of the things I really miss when I sit behind a windows computer is a bash shell, tab completion, gcc, vi... and you usually arent allowed to install cygwin on people's systems :)
Of those to whom much is given, much is required.
I tend to agree that either CL or panel-driven apps tend to be easier for newbies. I often work with those who have only used mainframe panels and they are VERY comfortable. I give them a Windows-based system with the "Start" button and they're lost. I then show them how to enter the command line world for directory lookups and editors and things are happy again.
The Kai's Semi-Updated Website Thingy
...as part of its Win95 hype machine. Microsoft likes to point out that pointy-clicky is sooo much easier than the "arcane" and "cryptic" command prompt, and tried as hard as possible to hide it. Microsoft certainly didn't try to improve its command prompt much, and even in modern version of Windows it still retains a lot of its retardedness inherited from the early days of DOS.
The question is, why? Sure, newbies hate it, but it's really useful to have a powerful command prompt, so it wouldn't hurt to include it. Even Macs have them now. Windows would be much more tolerable if it had a Unix-style command shell out of the box. Yet Microsoft feels the command prompt should die and it seems (at least from my point of view) that it's included only grudgingly in the OS.
"Backups are for wimps. Real men upload their data to an FTP site and have everyone else mirror it." -- Linus Torvalds
My dad is all of 64 yrs. When he started on computers a year ago - he started with Linux (the man does not know the "windows-way". One of his early observations was that it was easier for him to learn the command line and keyboard shortcuts. He could list these on a peice of paper and run thro' whenever he ran into trouble/forgot. Of course now he is on KDE 3.2 and seems fine with the GUI...
"I really look forward to the day when the concept of the PC disappears."
Does this mean that you want everyone by this point to be using Apple Macintosh microcomputers intead pf PC's? Did you lift this line from a Steve Jobs speech?
Had a Fujitsu laptop, like a P133, in 1998(?) and I loaded Redhat 6.0 and could NOT get the Xserver to work. I spent about 6 mos (now and again) at the command line putzing around on tryng to get the Xserver working. In that time I learned more about Linux AND Windows than I ever knew even existed. Suddenly alot of Windows oddities made sense... in the sense that I got what they were _trying_ to do. And it left me with a hollow feeling whenever I used Command... Why doesn't Windows have...
This
It may be more logical,
but it's more memory intensive - visuals are easier to remember. Well, I find it easier to remember visuals rather than words.
A blog I run for the wealth
you can do anything you want with the HELP command.
Is it absolutely necessary to have a sig. ?
From the word go I had them "cat"-ing, "sort"-ing, "grep"-ing and "cut"-ing files, showed them how to combine commands on the command line and how to turn them into shell-scripts.
The guys I taught were, like me, support engineers on Linux-based telephony products and were keen on learning how to strip relevant info from log & text files.
Within a couple of weeks they were churning out pretty good shell-scripts that were extracting info from files all across the system, "gzip"-ing them up and mailing them off automatically in cron jobs. Many of the commands they used in the scripts I'd never even mentioned in the training but had showed them about man pages and "find"-ing files on the system.
The moral behind the story is that if you give people enough of the basics, they'll soon go find problems they need to solve and work out their own ways of doing it.
Gentoo Linux - another day, another USE flag.
I've never been able to understand the love afair with the mouse and the pretty icon. 10 fingers + 101 keys VERSUS three fingers and some pretty pictures. You do the math.
Like with other aspects of the GUI world, Microsoft was only following Apple's lead in "demonizing the command line"
Now that's newbie friendly.
READY.
#
All I can say is that I am an old school MS-DOS guy, and it constantly drives me nuts when I see people using Windows Explorer to find a file, select it, go to the menubar, select Edit, Copy, and then navigate to a different directory in Windows Explorer, menubar, Edit, Paste.
Maybe it's because I type 80wpm (at least when doing sysadmin work in MS-DOS I do), but things I do in MS-DOS seem to take 50-75% less time than to do similar tasks using a mouse & windows only.
Check out the best P2P sharing website: MEDIACHEST.COM
Name Called By:
-Noob -Ghost Recon/Console Gamers
-Newp -RPGers
-Nub -CSers
-Nubby -''
-Nubzy -''
-Pub -''
-Pubber -''
-CS -Gamer
I was a newbie 2 years ago, and was often infuriated by poorly written GUI tools that crashed all the time. I found that the command line just simply worked.
-DB-
E-mail is like a prison: a prison with no walls... and no toilet. -Strong Bad
But the command shell on Windows XP has tab completion, and gcc and vi are in fact available for Windows with cygwin or not.
Configure the DNS server address staticly:
/etc/resolv.conf
/etc/ directory. If any of these configs get corrupted you can edit them manually to fix them, or copy originals from packages, or copy them from another source and edi them to fit your needs.
In windows:
Goto start --> start --> control panel --> networking --> select the correct device --> options (or whatever I don't f-ing remember) --> select TCP/IP --> select options --> hit the DNS tab --> Select "I want to specify dns addresses bullet --> type in ip address in the boxes.
Networking specifications are spread throught 100's of dialogs and wizards. Some can set conflicting settings, some can override the settings of others. Some are grayed out to prevent these conflicts and you need to figure out why. All system wide configs are stored in the same place as program specific configs and user configs. If any program or installer corrupts this one binary file it will render the entire OS unusable.
In Linux (if the dns server is 192.168.1.1:
echo "nameserver 192.168.1.1" >>
Remember resolv.conf because DNS is to resolv the URL names into ip addresses. System wide configs are stored in plain text files in
I did some teaching of command line for non-English-speaking students and the biggest obstacle was the language barrier. They couldn't remember the command and they didn't understand the output of the command. Even if they knew some English, there were always some technical terms they couldn't understand and they felt intimidated. This way they were much more efficient in a localized GUI.
Save the bandwidth. Don't use sigs!
from my web log, I think it's appropriate and strangely enough, quasi-religious...
We all strive to be big monolithic programs, with fancy buttons, big memory footprints, environments where people, if they want to do anything, must go through us. We strive to be pre-eminent on the desktop, world stage. We crave fame. Look at me we say. Look how important I have become. I am an Office Suite, hear me roar. Look how much I can do. If you want to do any work, you must come through me.
[snip]
We must teach our brethren the ways of the Unix shell, for if we don't we will forever be trapped handcuffed in that big shiny plastic bubble of modern life, where we see but we can't interact. We must go back, back to the beginning and learn the first lessons.
Toddlers are the stormtroopers of the Lord of Entropy.
That said, it would be rather helpful if command-line tools would actually communicate more in plain English. Most of the commands and responses were meant to save keystrokes and be brief, and were written by geeks for geeks (so to speak).
Why write "Segmentation fault: core dumped", rather than, say, "Sorry, this program has unexpectedly quit because of a programming error"? In other words, worry less about technical accuracy in error messages and concentrate more on making the computer and OS more understandable to non-technical people.
I'm not saying bash or the other shells should be re-written that way, but it would be nice if a more newbie-friendly CLI was around.
Cheers,
Ethelred
Everyone wants to be Ethelred. Even I want to be Ethelred.
Before, I was concentrating on the syntax of control structures. Like having:Rather than: I could think about adding in a better help system as well. I've got a few months left of design work.
And I need to fix the lexer, too. In a recent presentation, I found a rather embarrassing bug. The concatenation operator in my shell is the same as perl's, the full stop, or period, ".". Cleverly, the shell can also treat numbers as strings and strings as numbers.
Unfortunately, it was all a bit too clever.
The expression 3.0 + 2.0 was parsed as (("3" . "0") + 2) . "0"). Giving 320. Oops!
But given a little more work, maybe I could get it to solve some of the problems mentioned in the article above. Could be an interesting thing to do.
ESR - Is that you?
m l?tid=99
from http://slashdot.org/articles/03/06/08/1534249.sht
don.g writes "As reported by NTK, ESR appears to have embarked apon the process of recasting the Jargon File in his own image, adding terms like "Aunt Tillie" and "GhandiCon" that he dreamt up and seemingly no-one else uses, and various terms from (of all places) the warblogging community, where he is active. He's also updated the "Hacker Politics" page to be more closely aligned with his own views."
I teach C++ (and other goodies) at the local community college. The first night of class, I have the students ssh into a FreeBSD server and introduce them to the command line. They have cheat sheets for common commands both at the command line and in Jed. By the end of that first class, they've learned enough about FreeBSD to be able to write and compile code. I also give them instructions for using PuTTY to connect to the server from home, so they're working in the exact same environment that we were using in the classroom. I'm going to do the same thing for PHP and MySQL in the fall.
At a previous employer we used to use CVS, when we moved to WinCVS, we found a number of problems as people thought they were doing x, but were not. WIth the command line you knew what you were asking the system to do, with the GUI it was not always obvious. Pencil and paper were, and still are, the best interface.
You don't need a lab to make mud.
Unfortunately the FSF created info which does this but is otherwise utterly horrible, thereby making a sane solution more complex.
There's no need for anything other than an HTML index to all of the manual pages with a summary of each command which is grabbed out of the first description paragraph of each page. help could be aliased to lynx on the command line or netscape if your DISPLAY is set.
Government of the people, by corporate executives, for corporate profits.
If I was to teach someone Linux, I would definitely teach the command line first. When there are just a few programs you use, it's easier to memorize their commands or keyboard shortcuts than it is to hunt through a menu each time. E.G., if all you want to do is play Pac-Man, you can either a) Hunt through the menus to launch gRustibus, wait for it to load, scroll through the gamelist until you find the right version of Pac-Man, and double-click the name, or b) type "xmame pacman" at the command promt.
bash$> for tif in `ls *.tif` ; do convert $tif -border 50 -bordercolor \#FFFFFF -quality 100 -scale 25% -resolution 96 `cat $tif | cut -f1 -d"."`.jpg ; done
Put THAT in your GUI.
I want to delete my account but Slashdot doesn't allow it.
I have used the command line. I like it for various tasks, but I hate the implication that it is a better interface for newbies. With a GUI, I can see all the options laid out in a manner that someone thought was intuitive. With a command line, I have to read through several pages of documentation before I get the answer I need.
For example, I want to set a static IP address without a GUI and with a GUI. On the GUI machine, I start looking in the control panel, it makes sense. I see something with a name that makes sense, network configuration or something. I look through each menu until I find an option that might be what I want. I finally find a panel that might be what I want and I try it.
With the command line... where do I start? I have to do a search in the man pages for 'static IP' and weed out all the hits that are irrelavant, like looking through a bad search engine.
GUI interfaces allow self-discovery and trial and error much easier and quicker than command-line interfaces.
'Course, I might have the advantage of understanding how computers work in general, and just need to navigate the particulars of a several OSes. These newbies may not even understand what I mean by IP address or DHCP in a general sense.
i think really there will always be people that find it easier to learn and use a computer via a gui and don't want to know anything else about it if they don't have to, and others who will want to know more and learn commands and find it easier to learn and more interesting that way.
what you *want* to learn and are attracted to will be the easiest for you.
Is it because of cost effectiveness that all computers are general purpose?
Seriously, all my parents really need is a (fairly) dumb terminal to do three things : E-Mail, Web, Word processing. Everything else is extraneous. As they have gotten more comfortable, more input devices have been handy (scanner, camera), but only to support one of the three main apps (Email and word processing). They never had a use for a command line. What they have a need for is three large buttons : Email, web, Word Processing.
And maybe a big shiny red "dont push" button just for fun.
If at first you don't succeed, redefine 'success'
The pity is that GUI usability peaked sometime in the late eighties and has declined since then, as the rise of "computer literacy" has created an expectation that users will master complex UI's, and the rise in computing power has removed any barriers to marketing-driven featuritis.
The most telling point was the discussion of "discoverability." "Discoverable: The interface must, from first switch on, provide a clear direction for a new user to go. At each stage it should encourage experimentation while providing adequate notice of important or key features."
In the 1980s, GUIs were intentionally designed to facilitate discoverability were far more "discoverable" than CLIs of the day. They were also intended to be forgiving. The user was supposed to feel empowered to try things, confident that there was always an "undo" to bring them back. On the Mac in the 1980s, "Undo" was far more prevalent and worked far more consistently than in today's software, in which many operations commit you to something whose effects you may not understand.
As for "dialog," UI designers understood that well. Why do you suppose that what are now called "screens" were once called "dialog boxes?"
What the article is really saying is not that CLIs are better than GUIs, but that a) modern UIs are not catering to the needs of the average user, and that b) modern UIs have gotten so badly designed, cluttered, and complex that they have become less usable to beginners than CLIsbecause GUIs have deteriorated, while CLIs have benefitted from benign neglect.
"How to Do Nothing," kids activities, back in print!
My mother in law bought a green imac when they came out. She doesn't have much time to use it as she's very active socially, does housework etc. It had OS9 when she got it. She had trouble with learning it, learning to use the mouse, the few programs she was interested in. I eventually convinced her to dump AOL - too much extra baggage to deal with. Then someone else in the family had her upgrade to OSX. She had to learn almost everything from scratch again. She's thinking very seriously about getting rid of the iMac. A very frustrating experience... I feel embarassed that the so-called hi tech industry couldn't deliver something better. Too bad those little email appliances didn't catch on.... did they?
A command line is easier for some tasks. It really depends what you want the newbie to do.
.mcx files from /mnt/cdrom to /scr/bea/tomes then the command line will be much easier.
If you ask her to copy all
If instead you ask the newbie to check her email then write a letter to the head office then a gui will be much better.
Matching the interface to the task is important, and most new users go for tasks that are easier with a gui.
Of course, the article is a bunch of nonsense where an EE PhD student attempts to prove based on theories that he made up that a command line is the most natural interface. His total disconnect from reality is obvious. Even though he's talking about something outside of his field, at least his academic tendencies should have caused him to look at related work and realize that he's spouting nonsense. Instead he (to put it academically) formed a nonsensical hypothesis based on complete ignorance of the field, logically extended it to encompass a lot more stuff. He created an experiment to prove his correctness; a key point included introducing computer newbies to a gui using only a keyboard for input.
This is academically dishonest; I might as well note that I've never crashed a car while drinking and extend that to say drinking doesn't change the likelihood of car crashes. Then I could put a car on a road and get a drunk person to turn it on and drive thirty feet straight forward. Seeing them complete that without crashing, I could declare that drunk driving is not dangerous. Based on his piece here, Dick Wareham would buy it.
I see a sysadmin speaking. Nobody else in their right mind would dare to call the command line a user interface.
Where you would never think to look.
Government of the people, by corporate executives, for corporate profits.
Has something changed that has increased the likelyhood of this happening?
"To master modern GUIs, one must recall the operation, layout and relation
to each other of hundreds,if not thousands, of such panels. The hardest skill
being recalling or discovering the correct sequence of operations on one
control panel to access a control panel relating to a desired operation."
That is the purpose of Human Interface Guidelines!
Human Interface Guidelines exist to remove the need to know anything about a GUI.
The Apple Macintosh is a prime example of this and is the inspiration for Windows, Gnome, KDE, etc.
HIG allow a user to simply learn how a system works instead of learning what to click.
Visiting the site AskTog will help any reader learn about the correct construction of a GUI.
Yes, it is a science and metrics can be created for ease-of-use.
Pardon the rant, but claiming that the command line is unequivably the best interface for users
is on par with claiming that the horse-and-buggy is the safest and most reliable form of
transportation. It can be for some (Mennonites, Amish, etc.) but not for all.
No, I did not read the entire article -- after reading that sentence above about the difficulty
of GUIs, I jumped to the conclusion that the author was a moron. I shall now revisit the article
and possibly form a new opinion.
This post encoded with ROT26. If you can read it, you've violated the DMCA. Handcuffs please, sergeant.
What GUI is he comparing the CLI to? Windoze? MacOS? BeOS? OS/2? IRIX? GNOME/KDE/Motif/enlightenment/CDE/XFCE?
:)
I find I use the CLI along with the GUI about evenly. Looking at huge lists of heterogenous files is much nicer in a GUI, where icons give meta-information about what type of file it is, and you can scan lots of long filenames quickly. If I'm moving loads of files around, or doing quirky sorts then I fire up Cygwin, or a bash terminal in MacOS X.
I dare anyone to say page layout is better in text-mode than in a nice WYSIWIG pacakge. Unless you're a TeX freak, doing very complex formatting is fantastically easy in Quark or PageMaker.
I also haven't seen a really powerful CLI photo editor. Maybe an aalib frontend for the gimp?
My Other Computer Is A Data General Nova III.
The author might have found the 'MH' suite (or nmh, its modern successor) filled this role amply. I love it myself because I don't have to dedicate an xterm to running a mail client. If xbiff beeps at me, I can just 'inc' as the next thing I do in whichever terminal I happen to be using at the time.
I've seen "make 'help foobar' a link to 'man foobar'" to "(paraphrase) all these digital devices I know use NEED a GUI rather than CLI".
Of course I'm biased, I grew up on an Apple 2, then Macs till '94, but then worked on an Amiga from '94 until '96, and then got totally confused by Win95 when I first saw it. Yeah, somehow I missed the start of MS dominance.
Getting back to the point, I love using the CLI, execpt when I need to do something but can't figure out how to do it. I know "man" and "/?" but what happens if my question isn't covered by these options? I have found Windows help GUI usefull many times, basically because the weird question I have is covered somewhere but buried somewhere else, but I could back and forth till I found it. Yes, you could also do this with the CLI, but you lose the graphical references, which people seem to like since we are generally visually oriented.
There is also a point for the GUI, also. It tends to allow "newbies" the freedom to explore stuff more easily than the CLI. Left click this, right click this, double click that, see what happens; usually this will not destroy anything without a prompt. This is also true with a good CLI, but if I do rm -r *.* on some systems.... poof!
Now, why can't importing your digicam be as easy as typing "import movies from digicam" or "download from cam" or "whatever the heck ya want ta call it, yo"? Because on the CLI you need specificity, for the good or the bad. You could give options, but for the most part that would reduce the simplicity of the CLI, and at that point you might as well just have a GUI.
Whew! Giving all that, I am not a GUI designer or a CLI expert, just giving my (probably limited in this group's experiences) views, and should be taken with 12-15 grains of salt.
Vote monkeys into Congress. They are cheaper and more trustworthy.
Build it, and they will come^Hplain.
All these people felt that they were being left behind by IT and that there was some percieved
...it's i before e EXCEPT after c, dumbass!
Stuff like that makes me want to stop reading the f****** article and I did. Learn to write or use the f****** spell check.
Were you introducing Windows-Oriented users to Linux, or were you teaching support engineers on Linux-based telephony products? Color me suprised that you were teaching guys how to write scripts to handle log files, and they went ahead and wrote scripts to handle log files.
This is certainly a very interesting idea, and has good points to it. I would hazard, however, that the CLI is most definitely not the way to go to get new users up and running with computers. The author is almost there in his article, but doesn't seem to make the leap...
Using the example that the author used, he says Tilly multitasks, but doesn't do more than one thing at once. When she wants to leave something for later, she puts it to one side. This is an almost exact description of minimizing windows. It isn't suspending programs, or moving them into the background, like UNIX. It's just putting what you're doing out of the way for the moment.
Tilly goes to the grocers and tells him what she wants. Why not point at what you want? I want my mail, click the big envelope. I want to type something, click the Word icon.
It's arguable that some of the easiest programs that run in a terminal are those that are like GUIs, just without the mouse. Pine is a perfect example. It has labelled buttons at the bottom, except you interact with them using your keyboard instead.
GUIs are still the best way of getting general users interacting with computers, it's just certain elements of GUI design that scares them witless. Working on a helpdesk for my University residential network, I reguarly hear what could almost be called fear in a voice when a dialog box or something pops up that I didn't expect, and warn the user was going to happen. GUI design is very imperitive. Boxes appear saying "DEAL WITH ME NOW" and giving themselves the utmost importance. This is what scares people. They think that because something took the time to alarm them in such a massive way, something amazingly bad must be happening. These windows often pop-up from applications that aren't being worked with. By preventing these, everyone would be a lot happier. The Mozilla new mail notification is an absolutely excellent way of telling the user something is happening, it pops up in the corner, says there's some mail, and disappears. It doesn't ding. It doesn't grab focus. It doesn't appear in the middle. It just gives you a quiet hint.
GUIs are also far too ready to boot up programs of their own accord. When users get notifications from something they didn't run explicitly, they get the fear. CLI doesn't do that, it only shows you output from things you've done.
The author says that users are scared to click buttons, in case of something going wrong. But they feel that a CLI can't do any harm. Users *do* want to point and click their way around buttons, and GUIs do complain of something wrong in essentially the same way as CLIs. Maybe it's because they have no visual feedback when they type sudo rm -rf / ? I think it's just a residual fear from the constant shouting that current GUIs do.
GUIs are currently too noisy, and the essential quietness are what these users are responding to. I would hazard that as soon as the users want to do something more difficult (that would need a pipe), they'll be desparate for a GUI interface instead.
Now, why do people not like CLI, especially newbies? Because it isn't tolerant. If I do something wrong in Windows, I'll get an error message (usually cryptic) and the chance to try again with a click or two. On a CLI, when I have spent 5 minutes writing out a command to find that I get one character wrong, I get an error (usually with a little helpful advice) and have to re-type (or use bash and edit) the line. Windows is a little more tolerant than CLI, but CLI is the powerhorse...Once you learn to use it correctly, you never go back
Another poster suggested having a little paper-clip on the command line...If I EVER see that I will hurl my monitor from the top of a really tall building, followed by a deletion of the OS in question (in the meantime I have bought a new LCD screen to replace my broken one, good excuse) that does not have an in-yer-face help that is about as helpful as a plane is to a bird.
When all is said and done, nothing changes...
totally stupid article, as if people are going to start carrying a unix handbook to remember what god damn flags they need to put on a command.
what about the varying flavors and differences that exist there?
give it up, GUI is way easier for normal people.
Having done everything from assembly language programing for embedded systems to UNIX CLI (Command Line Interface) to Macintosh, I find that CLI is distinctly inferior to GUI (Graphical User Interface) for all but a few tasks. I challenge CLI users to do any form of word processing from a shell prompt. Even the most hard-core of them will resort to vi or emacs which use a primitive pseudo-GUI (and yes you can create and I have used a pure CLI text editor, but it is extremely painful). I don't want to even think about trying to replicate Photoshop with a CLI.
CLI = Dialog? The article mentions the notion of CLI as a dialog. But this is a misleading metaphor because so many CLI commands create invisible effects. You tell the computer to do something and all that returns (in most cases) is a command prompt. At best its like teaching someone to to do a job while speaking through a door. You give a command to do something (e.g., move a file from directory to another) and then you have to give a command to see the results (ls).
Discoverability: GUIs also provides visibility on to the set of available commands and functions. By browsing through the menus (which are usually nicely organized), you can learn the functions of an application. In contrast, a CLI-only machines provides no obvious way to learn about commands that you did not know existed -- at best you can access an alphabet soup of cryptic vowelless cmmnd names and then access the man page on each command. Therefore, GUI applications tend to be self-documenting, CLI commands require that you first know of the existence of the command and then you must read the man pages (grepping the man pages sometimes works if you know the jargon for what you are looking for).
Undo command: Most well-behaved GUI applications further support user learning via experimentation by having an undo command (and a revert command). CLIs tend to be irrevocable with no possibility for undoing inadvertent damage by a novice user (short of reloading the entire machine from a backup). Its no wonder *nix people get upset at the thought of novices on computers. But this lack of an "undo" is the fault of *nix CLI (it could easily be remedied with automatic file version tracking and journalling).
GUI is the superset of a CLI: Some people complain that GUIs take too long and I agree with them. CLI does offer a faster interface for experienced users. Yet a good GUI offers keyboard shortcuts that let experienced users invoke commands from the keyboard. While it is easy to have a keyboard shortcut available and shown in a mouse-oriented graphical GUI menu, it is hard to have a graphical menu shortcut in a keyboard-oriented CLI. With a GUI that shows the shortcuts in the menus, the user can learn shortcuts as they use the machine. Thus, I would argue, a GUI is the superset of a CLI.
Direct Manipulation: And CLI's inferiority is not just a matter of the learning curve (although that is a big disadvantage of CLI). For some tasks, a direct-manipulation WYSIWYG GUI is vastly superior. I challenge *nix people to build a CLI-only version of Photoshop. This is more that a matter of ease-of-use it is a matter of creating a coordinated interface between a person and a machine. While CLI forces the user to preform a completely defined action (e.g., type in a command that turns pixel 100,103 in file x to RGB value 128,128,200), a GUI lets the user try something (select a paint brush tool from the toolbox, test it somewhere, undo, use the tool somewhere else, etc.)
Control Panels vs. Config Files: The article claims that modern GUI-driven OS have too many control panels ("To master modern GUIs, one must recall the operation, layout and relation to each other of hundreds, if not thousands, of such panels." Yet how is this same functionality attained in a CLI machine? Config files are the absolute worst because they offer no form of input checking or potential for embedded help. Most config f
Two wrongs don't make a right, but three lefts do.
I don't think single ones are 'uncommon'. His point is taken, however.
Gamingmuseum.com: Give your 3D accelerator a rest.
Command line arrogance cost Novell the network market. They originaly had the market because their only competition was banyan vines. Then MS came along with a gui server that could be handled by someone who could stumble their way through with a mouse. Novell refused to add a gui to their server for reasons unknown and lost the multi-billion dollar server market for it. Novell was king back then, and MS had a product that while inferior, you could use without being a comp sci major. They eventually came out with some gui tools to administer the server like console one, but it was too little, too late.
/not/ IT personel, and this is the portion of the market that simply won't be bothered to learn command line. It doesn't matter if the alternative is superior, all that matters is that they can "see".
Now before you flame me, I learned on command line before windows ever came out, and am quite comfortable using it with Cisco routers or the like. I also think learning DOS should be a requirement for any technician or IT person outside of the *nix world. However a pretty good chunk of the server market is administered by people who are
When you are repeatedly typing lists of commands in at the command line it gradually dawns on you that you might be able to put the commands into a file and have the computer run through them for you. That's called programming. Making the leap from shell programming to lower level languages is simple.
Government of the people, by corporate executives, for corporate profits.
I thought you said you didn't want to understand how your car worked. You should just be able to drive it forever without thinking about anything. Why do you have to fill it up with gas? What is gas and why do you need it? You shouldn't have to learn that cars need oil changes. You just want to get to work. Those warning lights on the dash are annoying too; ignore them. Strange noises? They probably all do that eventually.
For that matter, why all that time spent learning how to be a good driver and having to pass a test before you're allowed on public roads? The car should be able to do all of that for you.
Knowing that you need more space is understanding how your computer works. You understand the difference between disk space and RAM. You understand that more space can be added. You're not the woman on rinkworks.com claiming that she'd run out of pages in Word if she didn't send some through the recycle bin periodically.
(By the way, most modern general-purpose operating systems have very good support for USB/firewire drives. Plug it in and use it.)
Here's the crazy part: people have tried to make computers that are _really_ easy to use. They have a few buttons to do what you want, a MythTV-like interface for email/Web/word processing. But they haven't sold, even though they're cheaper than Dells, and even though people complain endlessly about Windows and viruses and popups and difficulties. You can give someone a computer at work that's a cinch to use, that Just Works simply and effectively, and they will probably still inflict themselves with a Windows machine at home (and then complain about it, and probably ask for help). I don't know why.
WMBC freeform/independent online radio.
The advantage of a GUI over a command-line tool is that once you've got used to the GUI system you can reuse that knowlegde when using other GUI software that you may not have seen before.
There is seldom much information I can reuse when moving from one CLI tool to another.
n/t
Over many beverages one Friday evening I got into a discussion about interfaces. This is in the early Windows / Mac era, and as a group of relaxed wannabe intellectual types, we came to the conclusion that there is only one intuitive interface... only one thing you are born knowing how to use. It's a nipple. After that, EVERYTHING is learned bahavior. As for CLI's, they appeal to a simple linear command / response mode of thought. I've known programmers to get confused with context and focus in event driven models, so how can we expect ordinary users to think it's intuitive?
As for the 'Help' command, take a look at VMS. Properly built help files fit right into the system help like one, so HELP FOO looked just like HELP SHOW. Once you got used to the system, you could abbreviate, and HELP SHO SYS worked just as well as HELP SHOW SYSTEM.
My $0.05 (AUD - we don't have pennies any more)
By what does it mean "Best for Newbies?" The article doesn't even try to compare the user performance on a CLI to a GUI interface. The author made many subjective comments about what the users may think. A more objective experiment should be done with a control group that tries to accomplish the same thing using GUI. You then measure the task performance (like how long does it take to write an email or type a letter on either interface). Companies such as Microsoft and Apple spent a lot of money on research like this.
User interface is a field of active research and study, using actual performance comparisons on actual users, not on people reading slashdot. I think the general Linux community needs to recognize that it's not doing as much as it should. As Linux is moving to the desktop, this is becoming more and more important.
...until a person who's spent months learning his own custom commands gets put in front of a new computer. Suddenly, they can't use the OS, no matter how much they trained with it.
As much as I've come to love using CLI since entering the Linux fold, one thing that's bothered me a bit is I wonder were the future lies in terms of computing and interfaces and such. I find that a lot of people, such as me, who like the CLI type stuff, also have a retro nostalgia for computing in the 80s and such, or earlier. But I have to ask myself, will this really be the direction that technology goes in the future, for me I find that doubtful. Stupid example I know, but I was struck by that part of the film 'Minority Report' where Cruise's character is tapping away at holographic windows on his system. Never mind the bit about the psychic trio and such, for some reason it did leave me wondering where heavily command line based systems will be in a while. Not that I think MS's domination is going to last forever, but realistically, I wonder what will replace it. Will we still be hand editing config file is /etc using vi in thirty years? Are we just re-inventing old technology (like Bill Joy seemed to think), or is this going to expand to something quite beyond itself? I don't know. Any thoughts?
People who receive training on a system become more comfortable with it!
Does Aunt Trillie have an SMS pager on which she routinely drops her vowels?
Could Joe User possibly put his Remember "box" on a GUI desktop where it's always visible?
Would it maybe help exlporation if you told them anything they ruined in GUI would be replaceable as well?
My computer experience started with ms-dos. I learned most of the commands while trying to scratch an itch (mostly trying to play games). I learned how to edit config.sys and autoexec.bat and by that the computer internal basics. It was simple and I learned many stuff.
Now newbies start mostly with windows. In order to learn how to use a computer you have to know how a computer works in general, and how a computer will respond to an action you take. Microsoft tried hard so this stuff is invisible to the user. In order to play a game you just have to put the cd in and "next" your way through the installation process. If users don't gain experience from simple things as that how can someone expect from newbies to learn how to use a computer?
Between '93 and '95 I supervised my University's PC lab for the medical faculty. One of my main jobs was to help the users around to were back then more or less computer illiterate. Certainly the Uni also offered PC courses. The result of that often were people who entered the lab and then painstakingly started to type letters written on a secret magic piece of paper where they had exactly written down from their course the magic keys they had to press to get to their Word 5 or Word Perfect 5.1 (it was still a Novell3/DOS based lab back then). Sooner or later they would forget a letter or something unexpected would pop up, and then they could be completely out of their league and utterly helpless but still to proud to ask anybody for help, even the guy with the big "Ask me I you have any questions, I won't eat you" sign at his desk.
Moral of the story: CLI doesn't necessarily foster a deeper understanding of computers, it just improves sales of magic pieces of paper to write keys on.
The Command Line -- Best Newbie Interface?
Windows -- Is It Worth $45?
Gifted Youths -- Building Social Skills?
Perl 6 -- Does It Have Simple Syntax?
Slashdotters -- Do They Ever Get Laid?
Earth -- Is It Flat?
Stay tuned for more! Only on Ask Slashdot.
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
Am I the only one that found the contradictio in terminis in the first paragraph?
He starts out with this comment:
Many of them had mastered complex technical jobs and excelled in their chosen field.
Then, only a few sentences later I read this:
These people are technophobic both in that they fear being left behind by the rapid advance of technology and that they fear the technology itself.
This raises two questions for me:
Am I missing something here, or is the definition of 'technology' been changed and broadened last night?
-- The Internet is a too slow way of doing things, you'd never do without it.
"information theory"? I like it...
GrimRC
I understand your frustration, but also disagree with it. Allow me to explain.
The concept you're bringing up is black boxing: a simple (or standardized) user-interface that hides a complex system.
The pros of black-boxing are obvious: black boxing makes it possible for many people to operate complex equipment (think cars, phones, computers). There is also a psychological factor at play here: as many people seem to suffer from self-learned helplessness when dealing with technology, black-boxing (e.g. think nice-and shiny i-POD, or automatic-transmission lady-car) helps them to overcome their physological aversion and acutally use the device.
Now, as already stated by another user, the main con of black-boxing is what happens when something goes wrong: black-boxing provides a very poor way of dealing with failure-conditions!. There is also another con, which is public perception: black-boxing makes people believe that the equipment they are operating is simple, while in reality it's very complex. But because they reason from their internal "simple make-believe model', they can make mistakes that they wouldn't have made, had they known a bit more about the equipment.
To provide an example: Here in Europe, most cars are manual transmission (typically 5 forward and 1 reverse). When driving 80 kph in a flat country like holland, it really doesn't matter that much whether you drive in 3rd gear of 5th gear. However, when some Dutch people drive through Switzerland during the summer holidays (with a big trailer behind the car), they persist in driving in 5th gear up-hill, their argument being: "Hey, don't worry man, the car maintains speed uphill, so what's the problem". Of course, had they known a bit more about how an engine works, they would have switched back to 4th (or even 3rd) gears, to allow the engine to run at a higher specific torque, and to allow the cooling fluids to be pumped around more quickly to cool the engine better. Our black-boxing people usually end up overheating their engine (and blocking traffic and creating big jams in the Alps, grumble! ;) You see: it pays to know at least a bit about what's under the black cover of your black box!
In the same way, your shiny XP thingy makes your computer seem a simple device. But of course, it is still a really complex device. We've all seen people do stupid things because they persisted in acting according to how they believed the computer works (their simple model), rather than basing their actions on how the computer actually works. Knowing a bit about the latter, however small, enables you to do better in times of failure, but also in general.
On a personal account: I learned C after I learning assembly. I experienced this as a big bonus, because after using asm, you know what pointers actually are and how they work. I've seen people program Java and doing stupid memory allocation things, because they had no clue about what happens when you do "new bla" or "delete bla".
To conclude: black boxing is ok, but you need to keep in mind that you are still operating a complex device!
Support a Europe-related section on Slashdot!
and also: echo $?
If you actually RTFA, you'll find that despite the title "The Best Newbie Interface?", the article actually does precious little to find the best. It has more to do with the author's observations while teaching a course to novice users with a particular CLI, and things that can be done to make the CLI more user-friendly.
What's more, any references to a GUI are to some unspecified version of Windows. I'm sure it's mainly my own biases showing here, but I recently had to use Windows XP for the first time in a couple years, and I had a pretty tough time myself. Early versions of MacOS were particularly easy to learn to use because they weren't full of bells and whistles, and also because Mac's used to come with a little tutorial that taught you how to do basic stuff like use a mouse, use a menu, etc. It's pretty damn obvious that not all GUI's are created equal in terms of useability for new users, and the same is certainly true of CLI's.
A final problem is with instructors. Most of us have probably taught someone to use a GUI at some point. Most of us also skip the basics and go right for the techniques that we use in everyday work, like double-clicking to launch apps or open files. But when you do that, you actually make the work more complicated. They have to learn to double-click (which can be difficult for very new users) and they have to learn *when* to double-click and when to single click. A lot of people just start double-clicking everything all the time. If you start with basics, you can give the new user just a few important rules that are very consistant.
Example: When you want to do some operation on some object, first select the object and then choose the operation. Want to open a file? First select the file by clicking on it, and then choose Open from the File menu.
The article lists features that are important for new users: dialogue, tasks, discoverability, location, appropriate notification. I suggest that these are all present in any decent user interface, whether graphical or command line driven. What's more, I think they're a lot easier to implement well in a GUI. GUI's also tend to be less modal, which IMO increases useability.
I guess what I'm saying here is that I respect the author's opinion, but I think he's mostly wrong.
I find the comment "before MicroSoft" amusing. Apple had the first commercially successful GUI in 1984- nine years before MicroSofts wirst usable version of windows. The UNIX world was using XWindows six years earlier too. Everyone was making fun of MicroSoft's lowly MS-DOS interface well into the 1990s.
doesn't even sound that hard...
GrimRC
This essay describes the surprising results of a brief trial
'Brief' sums it up. Optimism is good, but I think experience shows that a lot depends on your demographic, for there are clearly two distinct groups here: those that have an appreciation for the abstract in computers, and those that do not.
Those that have an appreciation for the abstract will always be fascinated by a command line, for they are interested in - fascinated by - how things work. They also like to learn things.
That's the good group. Of the other group, there is not much to be said. They won't learn, they won't learn, they won't learn.
And they won't learn.
I am happy the author of this article has spent time working with adults in this context. But please - there are a lot more people who have amassed tens of years of experience like this together, and sorry to say, their collective experiences are more accurate.
...have shown it's also much harder for CLI users to click on email attachments in Outlook.
The thing that this theory misses is the value of learning intuitively for most people. With CLI you have to be taught or teach yourself through research how to perform each task. With a GUI a few basic principles and you can learn as you go by reading on screen instructions in a context sensitive environment. Does CLI promote deeper learing...absolutely. Is it the best interface for learning quickly and achieving a minimum standard of literacy...nope.
any idiot can click a button and screw something up.. it's the perfect money making machine.. give them a command line.. and they're lost.. afraid to type anything in for fear they get a cryptic error message..
/. user was browsing the site in lynx with no problems.. his higherups were "pleased" he was working the command line so hard.. heh.
give a user a mouse and a gui.. they'll blow away their network connection, delete all the icons on their desktop.. and copy the entire contents of the network fileshares to they're "My Documents" and then wonder why you can't restore their files when they blow them away..
every sysadmin worth their salt should know the command line.. i don't care who you are.. being that i live in windows world.. the net command cuts tons of time off waiting for windows to do wins/dns lookups.. and then connect to the machine.. blah blah blah.. net use z: \\stupid_users_machine\c$
fix their crap and get on with important things.. like posting to slashdot..
besides.. to the average user/manager/ceo/wanna be geek.. having a commandline open means that you might be working.. i recall a post from a while back where a
He's right, when I first typed ls -l, I thought it all made sense. GUI's are for wimps.
PS. I've been trying to submit this story for hours now, but somehow there is no command-line equivalent to pressing the 'Submit' button...doh
Martin May
Sorting and sharing your digital photos using bash and pine!
Office work part 1: Emacs+bc = Excel!
Office work part 2: Q1_presentation.txt - who needs powerpoint?
Nethack or rouge? - the wonders of computer gaming.
Your own jukebox, easy as mpg123!
This brings up something I've been wanting to ask: What slick, modern command shells are available for Windows? cmd.exe is crap, of course :) Ideally I'd like something like an OS X (or Linux GUI) terminal window. I've used 4NT, and the related Take Command, but I'm looking for alternatives. Surely there are some?
(Yes, you can run bash under Windows--as part of the Cygwin package--but it still runs in a crappy little console window.)
Autocad is probably one of the most complex applications that I know. But the one thing that they've done right over the years is preserve a command line that gives you total functionality, along with a history to show you what you did. You can click and drag your way through a design, or you can type it in at the command line and then selectively move items with the mouse *if* you want.
It also reinforces your understanding of the commands to the point where the dialog boxes are merely pretty wrappers and you know exactly what you're trying to do, instead of getting wrapped up in the position and naming of items to click.
The command line also reinforces concepts and a deeper understanding of what the program is designed to accomplish (with Autocad, designing objects). Try as the designers might, you can always get into an argument that this menu item belonged here, and this dialog box doesn't make sense, etc. etc. With a command line in the program, I simply ignore the arguments and get work done.
I've done some tutoring in my day, mostly clean-up work for people who've taken the 'intro to windows and the net' type courses where the instructors go through the 'finer points' of click, double click, dragging, etc. most users are flubbed up by such things. and most never grasp the concept of cut and paste bcause of the way they are tought...
/dir/dir/ etc, press enter
1. select text (click+ hold, drag over text, release)
2. navigate to EDIT menu, don't click anywhere else lest you fubar your selection (most lose the selection box at this stage), click COPY.
3. click on window to paste in, click mouse at location, go to edit and PASTE (again losing place)
my way:
1. select text (this is still the easiest way)
2. press CTRL+C
3. move curser where you want it (switch windows if necessary)
4. Press Ctrl+V
5. done
all the menues are confusing to joe uses cuz they are confronted with first 'file edit view... etc' and then 'undo, cut, copy, paste, paste as, select all, etc' rather than just 'to do this, press this'
Also in WP, instructors say 'go up and click the B for bold print' usually the curser gets misplaced in the process, rather tahn ctrl+B, keeping the curser where is is without ever touching the mouse.
I work in linux a lot, usually over ssh from a doze box, i do find organizing large numbers of files in a directory 9but not all of em) of various names, types, sizes, etc is easier with drag n drop, but shorter tasks are easier in the CLI like moving similar files, deleting, renaming, etc.
renaming: GUI:
2. open dir, navigate X times as necessary
1. click file
2. right click file, select rename
3. goto keyboard, type new name, press enter
renaming: CLI:
1. $ cd
2. $ mv
3. ls -s n* (where n is first letter of new file name) to confirm
just plain quicker, and some things, like mounting a drive are easier in a cli as they can be invoked from anywhere, rather than just the window of MY CONMPUTER.
Logistical Chaos Officer http://www.slagg.org - LAN Gaming in Sarasota FL,USA
but I would love to have a ST:TNG-like computer interface.
"Computer, lock on Carrie Ann Moss and beam her to my hottub."
"Unable to comply"
"KHAAAAAAAAAAANNNN!!!"
(sorry.)
Well, I'm an "old timer" who does _not_ appreciate the command line.
By "old timer" meaning, admittedly, not 60 years old and having started on punched cards and electronic tubes.
I did, however, learn programming in hex, not even assembly, on a ZX-80 with 1K RAM. In 1K you didn't even have space to run an assembler. I had a big old paper notebook with 1 page per command and a matrix of the registers involved. E.g., this is the page for "ADD", take the column for "A" and the row for "B", and there you have the hex code for "ADD A, B".
I continued through such mis-haps as editing source files on a CP/M machine with a hex-based disk editor, because the PHB forgot to also give us a text editor. Sad, but true.
You know what? I _don't_ miss those days.
The command line is powerful and all, as long as you already know _exactly_ what you're doing. It is a pain in the donkey when you don't.
The time and effort to get past that learning curve is not fun, and not what Joe Average wants. Heck, it's not what _I_ want.
I do _not_ find it fun to spend hours digging through obsolete, incomplete man pages just to find out that I need to type some obscure command like "obscureProgram.sh -XFGXRmnq -i filename1 -o filename2 -c OBSCURE_COMMAND_CODE -p some_obscure_regexp -f unix-style-font-name" just to get something done. Bonus points if it expects me to already be in some directory, and some obscure configs to already be set right. More bonus points if it doesn't even do the whole job, but expects me to pipe it through other obscure programs. Double bonus if it outputs some cryptic error messages like "1962 Short School Bus", that don't even tell me what the **** went wrong there.
Gimme a break. My time is too valuable to spend it on that kind of crap.
Give me a GUI which has input fields for the stuff I need to enter. If it's a file name, give me a good file selector dialog, don't expect me to manually list directores 20 times to find it. If I'm supposed to enter options, give me checkboxes, radio buttons, or drop down combos. And, ffs, give me an up to date help for it. And clear, humanly understandable error codes.
And you know what? I'm surprised how much energy goes into defending the sacred right to produce crap code and piss-poor interfaces.
Here's an idea: if half the time that went into whining about how the 60's command line interfaces are better for the user, went instead into throwing together a simple user-friendly TK or ncurses or whatever GUI, we'd all be far better off than we are today.
And let me get back to the part where I've said "The command line is powerful and all, as long as you already know _exactly_ what you're doing. It is a pain in the donkey when you don't."
The problem there is that to get to know exactly what options to type there, you have to invest ludicrious ammounts of time into that. Which for most people isn't justified. If you'll configure printing on your home network maybe 4 times in your whole life, consider the following two situations:
1. spending 4 hours to learn how to do that with CUPS and only with command line tools. But then you can do that in 30 seconds flat each time.
2. spending 5 minutes each time doing the same in Windows, through the GUI
Believe it or not, solution 1 is _not_ an improvement. On the whole, the l33t Unix command line way took 4 hours from your life, while the point-and-drool Windows way took a total of 20 minutes. The winner is... the GUI.
Yearly millions of hours go into just learning to use some crap software. It isn't learning some l33t skillz, it isn't "getting a clue", it's just _wasted_. It's time when you're _not_ doing what you needed to do in the first place. Time where, like in the example above, instead of already having your file printed on that networked printer, you're still searching through obsolete man pages and trying stuff that fails for no obvious reason.
A polar bear is a cartesian bear after a coordinate transform.
I don't want to know how to operate my car. I just want to get from point A to point B quickly. That would be a much more accurate metaphor for how most non-CS people deal with their computers. And, when you get down to it, how they deal with their cars too.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
Try Mac OS X... 'nuff said.
perl -e"\$_=q#: 13_2: 12/'{>: 8_4) (_4: 6/2'-2; 3;-2'\2: 5/7\_/\7: 12m m::#;s#:#\n#g;s#(\D)(\d+)#\$1x\$2#ge;print"
Why does everyone forget the Stanford Research Institute? They were exploring GUIs in the late 60s. The have the *patent* on the first mouse. I even think they explored the concept of a suite of office applications.
--- Ban humanity.
No, there are often examples. Likewise, there often aren't examples.
Face it, a lot of man pages just aren't up to scratch.
it's horses for courses. copying huge amounts of files will be far quicker in the CLI, whilst visual editing (imaging, whatever) would REQUIRE a GUI. I think they're complementary technologies, not exclusive.
In my experience there are two kinds of novice computer users (newbies, if you will), those you don't "get it" and those that do. Those that "do get it" will quickly understand that the "little blue 'e'" is not "THE INTERNET" and that they are free to change thier start page for that application (or choose another one altogether). The author choose a bunch of (his words) "the more advanced members" and gave them a little instruction on the command line, to kill a little time, while he tried to catch up the dense. At best, it is just a good way to interest the "soon to become power users", while the rest of the class catches up.
I use the command line frequently, and am very comfortable telneting (and SSH) to Solaris and Linux servers, but I don't think that most newbies will benifit from the extensive command line instruction, they would need to be truely "productive" on a system.
The grass is only greener, if you don't take care of your own lawn.
Look, if the car starts bouncing, I know I have a flat tire. If the engine is having problems, a red light on my dashboard tells me to take the car in. When the car struggled to shift gears, I knew it was a transmission problem. The CAR informs me of what is needed and I take it to the specialist. The basic maintenance schedule is given to you when you buy your car, there are no surprises.
Regarding a license... you need a license because with an automobile because the misuse of an automobile can endanger others.
Look, I'm a computer engineer by training, know my way around Unix, know my way around NT (MCSE, CCA from old career), and know my way around a CLI. Guess what, when I want to put together a business model, I want a graphical spreadsheet that is out of my way. Do I know ALL the Excel functions? No, but I know the ones I use regularly, and the help system gets me through the rest.
I have no desire to memorize arcane commands, I want to build the business model. Will I learn arcane commands to speed things up? Sure, but on MY schedule, NOT yours. I buy the machine to let me get my work done, and I pay the premium for a laptop to do so on the road, and I pay the (admitted small these days) Apple premium to have wireless support that is amazing and to be able to have my Unix applications on the road. These are all my choices.
Guess what, I don't pay Open Source programmers, so they don't have to listen to me. However, don't complain that I don't have an open source desktop when you put out bizarre GUIs that interfere with my workflow.
My Mac stays out of my way and lets me do work, MUCH faster than Windows or Linux would let me. In the end, that keeps Linux a step away from "global domination" or whatever the goal of the week is.
My computer should work for me, not the other way around. Sure, I had to demonstrate an understanding of traffic laws to get on the road. But guess what, EVERY car I drive is nearly identical, and the controls don't change. That consistent UI makes cars a success.
Windows has problems, no question. But it is "good enough" for most, and it is pretty cheap.
For a single-purpose machine, Linux is fine, I can train my people on 1-2 applications... If GNUStep was further along, or Qt didn't blow as a RAD tool, then our dedicated personnel would be on Linux machines and not eMacs. However, if you think that Linux is good enough for a business power user, you're sadly mistaken.
The integration of the Office Suite has been AMAZING for a few years, and the combination of Word, Excel, and Powerpoint is TERRIFIC for business users. Until GNU can mimick that power (NOT mimick the widgets, but the power and integration) then it is NOT a viable desktop system for the modern business power user.
- Automatically convert a directory full of graphics images into JPEG/GIF/etc. formats, achive them up and burn them straight to CD
- Play a computer game when you're really bored, have no games installed but have access to a terminal, the Internet and your home machine with Nethack or an Infocom adventure on it.
- Use bash and pine to access your ISP email from work when you're sick and tired of the ISP's web interface timing out before you've finished entering a reply.
I'm productive because I use the GUI for some things and the CLI for others. What's your excuse?
Gentoo Linux - another day, another USE flag.
I'm not sure why nobody's picked up on this yet, probably the horrible must-work-in-a-ssh mentality. Sure, people who can ssh in can use man -k. But for the rest of us, typing in an xterm or similar, the original Mac programming environment - mpw - had the best method by far of helping someone on the command line.
... and a dialog box popped up with full-on gui goodness to let you enter the command. While you were chaning the options, it wrote and rewrote the exact command line you had to use in a pane at the bottom of the window. Genius.
It was called Commando, and if you couldn't remember a command's options, you could type it, press apple-enter (IIRC)
It turns out that companies like Sun and IBM have researched this before. The results they came up with is that the new users found their way around and accomplished tasks faster with a GUI interface, but were more likely forget by the next time how to do it. With command line, it took a while to learn it, but then the retention rate was higher. The research, I believe, the systems used were running Solaris/AIX respectively with their X Windows vs. the command like on the same systems.
Under "Start Up Disk" in the Control Panel in Jaguar (10.2.x), it will boot into OS9 by default...so it claims...personally, I've only booted into OS X as the majority of apps I use are OSX or Fink/XFree86 based. I have a hanful of OS9 apps...Diablo, Starcraft, Warcraft, and Netscrape for Launchcast which launch OS9 when I open them.
This article, to me, smacks of nothing more than Linux advocacy. While advocacy is not bad in and of itself, when it has misleading information it is as bad as Microsoft or whomever else's FUD.
How exactly does learning the Linux command line help these people move forward in an increasingly connected workplace? The article specifically stated that as one of the main goals of the class, however almost nothing that was taught will actually be of any use. Basic fact, if these people are going to be using a computer in the workplace, it will have a GUI, most likely Windows.
While it is great they have started to lose their fear of computers and have learned some useful skills, this teaching method does nothing to help them with a GUI. IMO, the energy expended to create metaphors for the CLI would have been much better spent creating metaphors for the GUI.
Why not provide a hybrid solution... a CLI 'master window' for the GUI.
Any experience with true newbies, facing a windowed desktop and visual hierarchical structure for the first time, reveals that almost none of this works for them, and they stick to the Start menu (or equivalent), fearful of virtually everything else.
But what if a window user could open up a Messenger-like window and just talk to the OS? They could be guided thru the windows, or they could delve deeper, based on their own queries, or they could just kickoff functionality without having to double-click a single icon. An AIML-enabled CLI could do this wonderfully.
The point is, a futuristic CLI window is what's missing.
Anybody thinking this is a Linux v. Windows debate is invested in a Linux v. Windows debate.
Where you would never think to look.
Actually, no there aren't any in general. Sometimes, yes, but for the most part, no.
-- Fugacity: Confusing chemists since 1908
The problem with *nix GUIs is that they are simple CLI command replacements or an editor for a specific config file. *nix GUIs are rarely designed to achieve a task.
When I was in public school I had a couple of Amigas, in High school a Compaq (dark days), in University I got a PowerBook with OS 10.2.whatever and now I've graduated to the working world and my own Panther machine and a few servers to admin (SuSE and RedHat AS).
I've found that for the most part, Linux world GUIs are GUIs for the associated command or config file (esp. with RH AS!). When we installed RH AS I looked forward to perhaps using the some advanced GUIs for server config to save time etc. - I even wondered about setting up a secure VNC system.
NO! As most to who read the article would agree - It's quicker to just do it on the CL then wade through a GUI. Most Linux GUIs are useless and just mangle config files, the CLI is the only way to get anything meaningful done.
Compare this to a Mac OSX, where the GUIs are designed to do a specific task - not replace a specific command. The whole printing situation on *nix has been used to illustrate this before. My under standing of Panther Server is that it has applications that preform tasks, not replace a command - but I have yet to use its tools.
If linux GUIs continue to be just replacements of commands and config files then we'll never see linux on the desktop.
Simple Example: If Aunt Tillie wants her printer to work she'll need to ensure CUPSD is running in level 5 in the init level GUI plus working with all the other GUIs with an actual printer icon.
.\.\att Clare
In the Beginning was the Command Line, by Neal Stephenson. It's available in text form from http://cryptonomicon.com/beginning.html.
I think it only fair to point out that your examples is a critique of implimentation than the CLI concept.
"$ edit foo"
[appropriate editor pops up]
"$ print foo to printer local"
Some man pages are very good at explaining what the program does - man gzip, for example. Some are awful - man rpm comes to mind as one I find useless, although I suppose people who've been using rpm for a couple of years might find it a helpful reference.
Since I have the dubious honor of being the resident egghead in my clan, I'm often asked to help support systems for relatives--
If at all possible, over the phone anyway, I have 'em drop to a command line. It's MUCH easier to diagnose/remedy problems when you can clearly and concisely convey exactly what to do:
"OK, type C:, that's Charlie, colon"
"No, I didn't know that about Uncle Charly. I hope they can fix that..."
Any generalization is a stupid one.
I think GUIs and the CLI both have there place. However, undoubtably, the CLI is simpler, faster, and more powerful in certain circumstances.
Just recently, a colleague (running Windows XP) and I (running Linux) took our laptops to a computer lab providing IP addresses via DHCP. My colleague, after spending literally 20 minutes fighting with his GUI receiving ambiguous error messages and having the OS seemingly do the exact opposite of what his intentions were, finally gave up. Some setting, hidden in XP, was refusing to let him use DHCP and insisted on trying to connect to his usual ISP.
On the contrary, after 3 seconds editing a config file, I confidently typed "/etc/rc.d/network start" and, as expected, had instant network access.
I think this is a simple example of the many (not all) areas in which the CLI is simply superior.
Our black-boxing people usually end up overheating their engine (and blocking traffic and creating big jams in the Alps, grumble! ;) You see: it pays to know at least a bit about what's under the black cover of your black box!
No, it pays to actually design black boxes that warn users about things like this.
You can't account for every stupid thing that a user might do. But you can watch for common problems and either take evasive action or alert the user. (This is what the oil light on your dashboard is for)
We have the technology, you know. And when there's a simple problem that's easily spotted, it's far easier to encode the problem and its solution in easily-replicable software than it is to try and train all the users.
There's a common theme in this forum of people getting all uppity about "stupid users". But users aren't stupid. They just don't have time to learn everything. And given that we have the technology to help them, why don't we?
Simple little script to figure out what a command does. Works on most of them. Keeps me from having to do a "man [command]" just to see what it does. It's just something I put together in a minute, so forgive me if you don't think it's done the right way - it works quite well for me. Feel free to use it if you like.
; ;
#!/bin/bash
test=$1
if [ "$test" = "" ]
then
echo " desc - Short for describe. Display a one line description of what a command does."
echo " Usage example:"
echo " desc ls"
else
if [ "$test" = "desc" ]
then
echo " desc - Display a one line description of what a command does."
else
man $test | grep "$test - "
fi
fi
Find a job you like and you will never work a day in your life.
You forgot to tell us how its much easier to chain a series of tasks together using drag-and-drop than to type a pipe symbol.
Ever tried telling people on phone how to do a task in Windows?
"Click Edit, Options, and... err, wait, yeah, Page settings, Margins..." (5 minutes later, or 10 minutes if you don't have the same program in front of you) "Wha? I told you to click on OK, not Cancel!" (10 minutes fly by...) "So it doesn't work? What do you mean there's a setting like that? Why didn't you say so? I'm deaf and stupid. Sorry."
As opposed to:
"Just type '/sbin/ifconfig ppp0'. ...Wha? that's 'slash-s-b-i-n-slash...'" and a moment later "So it isn't even connected. Right. Try typing 'pon'."
The GUIs may be good to work with, but CLI is easier to explain. Especially if you're used to doing GUI things in one way and others do it the other way.
GUI is like a religion - you "learn" it, and only you can explain what it means to you. CLI is like science - you learn it, you can explain it, and it means the same thing to everyone - except people who argue about "useless uses of cat(1)" and proper order of parameters, and whether to use sed(1) or perl(1), of course.
And now I need the freaking coffee already.
Is that you, Prince Charles?
Wow, recycled FUD from 1984. We've already had this battle. GUIs won, get over it. New user like to see what they are doing. Clicking is more intuitive than typing. CLI has it's place and use, but don't try and tell me Grandma is going to feel better using CLI over GUI 2 weeks or 2 years down the road. It just ain't true.
My PM left last week, he said if I wanted to use his Linux box, that I could use the GUI. I told him I didn't know how to use the GUI and that I've only used it 10 times. He looked at me strangely.
it's a sig, wtf?
No.
Yes.
Don't bother.
No.
Definately not.
No.
I always fsck that up! But you know what I meant. Nice one. =8-)
I want to delete my account but Slashdot doesn't allow it.
RPM is supposed to be easy to use... but the dang man page is so long... Here's just the SYNOPSIS section at the beginning:
...
...
...
...
...
...
...
...
NAME
rpm - RPM Package Manager
SYNOPSIS
QUERYING AND VERIFYING PACKAGES:
rpm {-q|--query} [select-options] [query-options]
rpm {-V|--verify} [select-options] [verify-options]
rpm --import PUBKEY
rpm {-K|--checksig} [--nosignature] [--nodigest]
PACKAGE_FILE
INSTALLING, UPGRADING, AND REMOVING PACKAGES:
rpm {-i|--install} [install-options] PACKAGE_FILE
rpm {-U|--upgrade} [install-options] PACKAGE_FILE
rpm {-F|--freshen} [install-options] PACKAGE_FILE
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
[--notriggers] [--repackage] [--test] PACKAGE_NAME
MISCELLANEOUS:
rpm {--initdb|--rebuilddb}
rpm {--addsign|--resign} PACKAGE_FILE
rpm {--querytags|--showrc}
rpm {--setperms|--setugids} PACKAGE_NAME
select-options
[PACKAGE_NAME] [-a,--all] [-f,--file FILE]
[-g,--group GROUP] {-p,--package PACKAGE_FILE]
[--fileid MD5] [--hdrid SHA1] [--pkgid MD5] [--tid TID]
[--querybynumber HDRNUM] [--triggeredby PACKAGE_NAME]
[--whatprovides CAPABILITY] [--whatrequires CAPABILITY]
query-options
[--changelog] [-c,--configfiles] [-d,--docfiles] [--dump]
[--filesbypkg] [-i,--info] [--last] [-l,--list]
[--provides] [--qf,--queryformat QUERYFMT]
[-R,--requires] [--scripts] [-s,--state]
[--triggers,--triggerscripts]
verify-options
[--nodeps] [--nofiles] [--noscripts]
[--nodigest] [--nosignature]
[--nolinkto] [--nomd5] [--nosize] [--nouser]
[--nogroup] [--nomtime] [--nomode] [--nordev]
install-options
[--aid] [--allfiles] [--badreloc] [--excludepath OLDPATH]
[--excludedocs] [--force] [-h,--hash]
[--ignoresize] [--ignorearch] [--ignoreos]
[--includedocs] [--justdb] [--nodeps]
[--nodigest] [--nosignature] [--nosuggest]
[--noorder] [--noscripts] [--notriggers]
[--oldpackage] [--percent] [--prefix NEWPATH]
[--relocate OLDPATH=NEWPATH]
[--repackage] [--replacefiles] [--replacepkgs]
[--test]
Each of the above options is explained in detail, but there are no FAQ-style examples. It's no wonder the distributions are putting layers on top of rpm (urpmi, yum, etc). I like yum, and largely because the man page is short and to the point! It only takes a few seconds to figure out what I need to do.
bp
Consistent UI layout/behavior is what makes any system, whether GUI or otherwise, easy to learn, use, and understand. The old Wang mainframe is an example of this - the function keys on the keyboard ('PF' keys) almost always had the same meaning, whatever program/menu you were in - PF5 was always next page (or record), etc. Most GUI programs have nine different ways to do things - the same function is on a toolbar, buried in a menu, and has a different shortcut key than the next program.
CLIs are easy to use and very efficient for many tasks. However, that does not make them easy to learn. The discoverability of basic tasks with a GUI makes that approach very powerful for learning.
My mid 80's computer (a Commodore Amiga) had a very simple GUI. I shoved in a disk, and after about 30 seconds, I had a screen with precicely one obvious icon to prod with a mouse. No choice. No complexity.
Now, at this stage, we get to the complex bit. I had to learn to use the mouse to move the cursor (fairly intuitive really), and then double click the icon. This stage is less obvious, but it's about all I need to know. Once we get there, something has happened. A window has opened and it contains another button. Repeat the previous step, and you get the application.
Under Windows, things are a lot more complicated. You have the obvious "My computer" icon. Clearly you don't want the network, or the trashcan, so that's the obvious first button to press. It's also the wrong one. It comes up with a list of the internals of the machine. It turns out that I made a mistake. So, I press "start". Well, I guess it's a fairly obvious second choice, but I had to backtrack. What do I want now? Run, or programs? Run doesn't work too well. Let's try programs. Experimentation gets me there in the end, but it's not totaly intuitive, and mistakes are demoralising.
Program Manager and Windows 3.1 were a lot better in this respect. It was obvious which bit to click on there.
I actually think it's a good thing that unix-ish commands have wierd names.
For a beginner learning unix, there's a conceptual hurdle they have to jump: that commands are not "commands" at all, but specific named programs which can be used as tools.
Lack this understanding, and you're confused and trying to second-guess a nonexistent "designer". Gain it, and you can start to ask the right questions. Not "how do I get help" but "what program displays the help documentation", for example. Or, if one program isn't adequate for a task, might there be another which could do it better?
In that regard it actually helps that unix programs have idiosyncratic names. "grep" is grep, it's not some generic "search", and it's probably not the only tool on the system useful for "searching".
That's the thing: such words as "terminated" mislead and disconcert the user -- it makes it sound like the program itself was destroyed, not the copy in RAM. Other such grammatical flaws abound in Windows as well -- "illegal instruction" is a particularly bad one -- that confuse and irritate the user.
As for mapping an error message in plain English to specific problems or errors, it just takes a little thinking -- and effort to avoid using misleading terms. In your examples:
SIGSEGV could be "Sorry, this program quit unexpectedly because of a memory error."
ENOMEM could be "Sorry, this program quit unexpectedly because it used too much memory on your computer."
ENOSYS could be "Sorry, this program quit unexpectedly because it tried to access a part of the system that does not exist."
The idea of having a bug buddy installed also would be an excellent idea -- it makes the user feel more comfortable with the error having occurred (in my experience users tend to blame themselves for everything -- "what did I do to make it crash?" -- whereas the bug message would let them know it wasn't their fault). Such little things make using computers a lot less painful and irritating.
I suppose it would help if developers imagined all users to be crotchety Andy Rooney types. ;-)
FWIW Mac OS X 10.3.x gets pretty close to the ideal solution for a GUI (unless you insist on the Holy Grail of error-free coding -- fat chance :-P ). In OS X, you get a fairly neutral-sounding error message, and are presented with a dialog box asking if you want to "notify Apple" of the error so that it can be fixed. Doing something like that in a CLI ought to be fairly easy...
Cheers,
Ethelred
Everyone wants to be Ethelred. Even I want to be Ethelred.
Although I'm only 21, I grew up in a DOS, and, later, a Linux environment. I still prefer vi and vim to VS.net. I was using a Windows program a couple days ago, and it wanted the folder to rip music to, I went to type in the folder (q:\.......\music), and it wouldn't let me. When I realized that I would be forced to use a GUI folder selector for each of the three paths rather than copying and pasting, my heart sank: I realized just how horrible the world has gotten when even programmers expect me to use GUI for everything. My point is, a lot of us grew up on command line, and we turned out great. A lot of people grew up on windows xp/msn messenger, and I can't help but look down on them. When I say, "Your 40gb drive is full of spyware and installed programs/partially uninstalled programs/whatnot, it's time to format" they say, "huh?" because they aren't famalier with core computer concepts. When I was forced to learn what IRQ and DMA meant, and I had to use mscdex when I was 10, I ended up better for it. I understand how the machine works, and I am much happier for it.
http://www.skullsecurity.org/blog/
The people this article is describing were probably familiar with dumb-terminals and green screens... so, of course, a command line is going to ease their minds. It's what "they grew up with."
As the topic states... GUI is newbie-friendly for a while. If the user wants to do normal activities, that the GUI programmer expected users to want to do frequently, there would be a function for it.
On the other hand, if you want to program your GUI so that all kinds of people regardless of their wished could use it to their full extent, then there would be hours of extra work just to add those functions in the GUI. If there's a CLI, the programmer didnt have to spend that much extra time to add these features, but the problem with CLIs are that there are many that does not have much documentation.
If the CLI has good documentation for beginners, then there's a pretty big chance that the newbie would find it easy enhough to use (newbies can get pretty far on UNIX-systems, if they start at 'man man'). On the other hand, there are alot of cases with bad GUI programming, for example, where many settings and such are placed far away from eachother, resulting in the user spending hours just looking for the feature, instad of finding them all together under the 'preferences' menu.
this is probably the most boring sig in the world
People have brought up good arguements for why a GUI is better than a CLI. Yet, in a wierd way I can understand what this person is saying. There are many basic things that I am more than willing to do with an xterm even though I could do them using a GUI. And as a power user, I can still related to some of the feelings of the people in his class. Looking at my desktop I see about 100 buttons, (97 to be exact. And not I didn't count the links and such in this page. And this is w/ 2 programs visible.), and I definately don't know what all of them do, nor will I click many of the ones I don't know because I don't know what they do.
Either way, this is definately interesting research that really needs to be covered in more depth.
I do security
I think this article really makes sense, when I look at my grandma, this is exactly one of the problems. Last time I was really surprised how far she got on her own. She told me that she wanted to learn a lot of other stuff, she felt like she didn't know enough of the computer's power. She "only" knew how to mail, use google and surf a bit. I only remember telling her more or less how to mail.
So she learned how to use a mouse pritty well, but she still panics (well at least call someone else to help her) when some error pops up. She simply doesn't know what happens, and indeed, in a multi-window environment, it is certainly not that easy to know which program gave the exact error.
We have an awfull lot of GUI's around in linux, at the moment, with at the "top" arguably Gnome and KDE, which do a great job for the more experienced desktop user, but in this test, they would fail miserably. I do not think you can limit such people to the commandline forever, graphics are very usefull in many cases, like when browsing the web. They can be made chaotic, but can also be used to structure things in a clean way.
So why don't we see a graphical userinterface that is more like the way the console is used? It will probably be very hard to imagine how this would work, but it should be consistent, same logic everywhere, and as the article says - the user is - as said - only interested in one thing at a time, and wants to be notified discretely about other events without being pulled away from his current task...
I think it would be a very challenging and usefull job to design such a userinterface which is very (to the extreme) consistent in use, but I'm afraid there won't be any interest in making such a thing in the linux/geek world which loves the power to customize...
(Sorry for the possible grammar errors!) When I started to learn about computers, I found the DOS CLI very unfamiliar. I don't knew it exactly what was the problem whit it. (Now I know: It has no such thing that comman line completion, the terminal handling is rude, the command set doesn't allow the writing of useful applications like a shell script. IMHO the DOS shell is a vague shadow og the powerful unix-like shells.) I was still a newbie, when I first saw a box running Slackware, I asked my "mentor": "What the **** is that?" and he said: "The bash!". It was like falling in love. I learned trough the CLI that you can do more interesting things on a computer than playing DOOM. After two years I started to code in C...
That reminds me... I need my oil changed!!! Crap! I hope my car isn't mad at me from the neglect... maybe I'll buy it some feul additive to appease the internal combustion gods!
In the future, I would want to not be isolated from my friends in the Space Station.
Basically, you have two types of users. People who like computers, and people who don't. For people who don't, which make the vast majority of 'lusers' a command line is easier. They memorize specific tasks, and never get a general 'feel' for the machine. With a command line, they only need to memorize a string of commands -- usualy one. With a GUI, they need to memorize a ton of steps.
:)
For people who like computers, a GUI is better to start with. Why? Because they can explore, click different buttons and visually see what their choices are. They'll quickly get an intuitive feel for how interfaces are designed and be able to use new applications without much trouble, at which point they won't be newbs anymore, and can start on figuring out the true power of the command line
autopr0n is like, down and stuff.
This comes up whenever keyboards are mentioned on /., but I don't get it.
/. geeks would avoid manual labour like the plague and still have sensitive nerves in their fingers as well.
I'm not an old man, but I've used both the clicky keyboards and the mushy keyboards. To this day I can not figure out what the positive thing is to the clicky keyboards. Are most mushy keyboards poorly made or something, because I never have problems pressing keys and having them not do anything, unless I try really really hard to do it (i.e. press lightly on the corner of a wider key).
People mention tactile feedback... well, my mushy keyboard gives me enough feedback to know if I've pressed something or not. I would think that
Can anyone explain?
Only on Slashdot is an entire article posted about the command line being the "best newbie interface." The rest of the modern, non-UNIX-obsessed computing world laughs in response. Riiiight...the command-line is the best interface for newbies...
This article was only posted to make Linux users feel better about the fact that 80% of setting up and using Linux still requires using arcane commands. So we get articles claiming "in my experience, the command line is better for newbies than a visual interface." That way, when people bring up the overly complicated command line routines, Linux people can say, "But the command line is better for newbies anyway!" And it gives assholes more of a reason to answer every single newbie question with "read the man pages."
It's groupthink holding things back. Look, there's nothing wrong with just admitting that things aren't quite there yet for newbies when it comes to Linux. We're getting there, but this silly let's-justify-20-year-old-UNIX-philosophy is holding it back.
"Sufferin' succotash."
First, the article is purely anecdotal, it does no controlled comparison between CLI and GUI users and has no business drawing conclusions of any kind. My opinion is mostly anecdotal too, but all the same: The big difference between CLI and GUI users is training.
CLI teachers are more careful with their instructions, and CLI users take more time to learn the guts of the interface and resort to using help because the interface is non-obvious. They know that they can't do much without a good understanding of the system and periodically getting help.
Conversely, GUI teachers and users put themselves in a false sense of security, "it's GUI, it's easy to use, so I don't need to take the time and learn/teach it properly, just click away." Many GUI teachers don't even refer to the help mechanisms, considering it an unnecessary tool, and their students never learn to use it (some even avoid it like the plague).
E.g., I've had many friends call me and have the following conversation [no paperclip jokes please]:
Friend: how do I do x?
Me: I don't know, did you try help?
Friend: bah, help never works!
me: *sigh* click on help, now see that box there... type "x" in it and hit Enter.
Friend: oook if you insist... oh! thanks!
A well done GUI is easier to learn and use than CLI, it's just that many people are never taught properly on how to use it. Of course, there are both GUI and CLI applications that are just badly implemented and hard-to-use.
GUIs rose to ascenancy at a time when typing skills were rare. Lack of typing skills is a huge impediment to the penetration of CLI computers, both then and now.
My problem is that I /want/ to learn how everything in unix works but i just don't have the time, as many other people don't also. So i bought a book, it may be outdated and not for my os. But it has the basics and everything i need.
I think that is a very good idea and for that reason after reading your comment I decided to write such a program according to your specification.
Just remember who has just made Linux four times what it was today: me, Pan T. Hose, PhD.
That having been said, I'll post that program in another comment, because I have to post it as "Code" instead of "HTML." Please mod it up (the actual code, as well as the instructions below) as Score:5, Insightful, so everyone could read it and install, because I think every Slashdotter deserves to have her Linux four times better than it has ever been.
You have to save my program as /usr/local/bin/smarthelp, then run:
chmod a+rx /usr/local/bin/smarthelp
as root and insert this line in your ~/.bashrc file:
[ $PS1 ] && alias help=smarthelp
Remember to give me credit and to not violate the GNU General Public License it is hereby released under. The code follows:
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
I used to work in a group using these where we had no sysadmin or any sort of Unix guru but we were all very experienced geeks.
Since we had to puzzle out system configuration problems from densely-written manuals, the RS6000's combination GUI->CLI method was very helpful. The RS6000 had a faked-out full screen mode (probably VT100 emulation) that let you assemble a command a piece at a time.
You started with, e.g. some half-understood disk configuration command from the manual, and the interface would pop up drop-downs with valid parameters for each required one. Once you had assembled the command this way, you could dump the finished CLI string to a file and save it for re-use or study and modification.
This was a very effective way to bridge the gap for people who knew general things like "you have to prepare a new disk for use" but were unsure exactly how you accomplished this in Unix.
#!/bin/bash
/usr/local/bin/smarthelp /usr/local/bin/smarthelp
0 901
# save it as
# chmod a+rx
# and insert this line in ~/.bashrc:
#
# [ $PS1 ] && alias help=smarthelp
# PTH(R) Smart Help(TM) v1.0.1-pre2
# http://slashdot.org/comments.pl?sid=99801&cid=851
# Copyright (C) 2004 Pan T. Hose, PhD.
# http://slashdot.org/~Pan+T.+Hose
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
a=${@:-help}; help "$a" 2>/dev/null || man "$a" || apropos "$a"
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
Then there are gems like this: Again, what proof do you have that there is any kind of 'groupthink' going on in the OSS community and that this 'groupthink' is holding things back? Oh, that's right, you don't. You're just throwing that out there and hoping it will stick.
And every time I see you use the phrase "we" in a post like this it makes me wonder just what you mean by that since you have never had one positive thing to say about Unix/Linux/Open Source here on Slashdot. The only positive things you have to say concern MS and Apple--anything that is noncommercial and free is shit in your opinion--so just what do you mean by "we"?
Seems that phrasing is thrown in by you in a lame attempt to karma whore (and, to the shame of moderators everywhere, it usually seems to work). We know you hate everything that Slashdot/Unix/Linux/Open Source stands for, so just why are you here? You have nothing constructive to offer to the conversations here, so why do you bother?
Hey, this program works EXACTLY as the (Score:5, Insightful) idea in nokilli's post The 'help' command! I have just installed it according to the instruction posted here (please mod it up as well) and now every command below works perfectly!
Yes, the last one tells me to use df!!! Just like the insightful idea of nokilli! Wow! I didn't know it was possible.
Thanks a lot, Pan T. Hose!
Mods: PLEASE MOD PARENT UP!
Nicely put. There is an amazing competition for attention in nearly everything we're exposed to, at least in Europe and North America. Watch television with the sound off sometime, just to revel in the lack of audible noise and be stunned by the visual cacophany.
No, I don't really need a computer interface that yells at me graphically all day to get work done. No beeping when mail arrives, no clicking every time my left mouse button is pressed, no flashing shouts of IMPORTANT THING HAPPENING HERE all the time. If all information rich environments were designed that way, it would be far to difficult to distinguish between a normal event, an urgent event, and the system's background processes. Planes would fall from the sky.
Anyway, enough of a tangent. Thanks for bringing it up!
-Met.
I'm exclusively using the command line (well, besides MozillaFirebird and sometimes xmms or TheGimp) ;)
There's not much choice anyway since I'm working with a Pentium Pro 200 right now
Oddly enough, since I started my webhosting ordeal, I have found that complete and utter newbies ARE oddly good at picking up the command line.
:)
For example, I walk most first time customers through the usual setups, SCP client, SSH client,Mail, all that depending on what OS they are on.
I swear, it takes me three times as long to walk them through the GUI stuff, with all its bells and whistles they have to think about.And then the 'hard part' of the command line, they are off and banging away within a few short minuts. In fact, I have had a few newbies take one look at Pine and go 'Oohh, neat, I don't even need a program to use it!'
AND THEY USE IT(pine)!
And you have no idea what I mean when I say 'newbie', I mean literal 'Just got away from yahoo webhosting, does not even know HTML yet' newbie. Picked the command line right up, and yet I got two more calls for the damn GUI client. And this is hardly the first time.
Sometimes I really love this line of work..
My new top secret key -> C>N|KB
Think about all these wizards.
Download shortcut for this kind of work (from internet), click on it, and get results you wanted.
Unfortunately there is'nt such shortcuts in current op. systems.
Opportunity for linux?
I was an operator/admin on an archaic Wang 300 mini system back in the 80's on a US air force base. The OS was Wangs multiuser system and, while fantastically old by todays standards, demonstrated something that I not seen in later jobs as admin for on Windows and Novell systems: consistency and simplicity.
The user had access to Wangs text based word processor, spreadsheet, groupware and simple database programmes, of course everything running on a central system and the users only having terminals.
There was far less, and I really mean far less support hassle, especially on the telephone as it was so much easier to understand what the users currently were doing and the users, having a reduced set of commands, could mess up in x number of ways. Added to that the interfaces were consistent and easy to remember. Ironically, all that could today run on a single Unix machine with terminals with ease (about 150 users).
I compare that to the aches of supporting Microsoft office in my last jobs, with users being all over the place and repeatedly not being able to remember the simplest of GUI functionality. Not even younger employees who had grown up with GUIs were confident in what they were doing.
The comment about graphics is valid though. A hybrid CLI with graphics functionality would probably be the best bet for all.
Yes, I was strictly following the specifications posted by nokilli.
It was possible. Otherwise I wouldn't have written it, now whould I? But seriously: nothing is impossible in Linux. Nothing. And that is the true power of free software. Always remember that. I really hope my program will serve you well. All of you.
Please don't thank me. I only did my duty as a free software developer and a Slashdot community member.
Thank you. You are very kind.
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
..anybody who uses an OS X box regularly knows what i mean. a well-designed GUI makes a lot of tasks simpler - i know a lot of you like your config files, but i really enjoy my mac config dialogs; you're absolutely nuts if you want to argue the firewall (in OS X) is easier to set up from the shell rather than system preferences. OTOH, i do use iTerm rather a lot, especially for dealing with huge quantities of files (Aqua bogs horribly when you try and move >2000 files around at once) and non-graphical web stuff...FTP is literally about half again as fast from the commandline. basic text editing too, although bbedit's multicolored highlighting with programming languages is nice for certain things.
side story: my dad was a communications operator for the air force in 'nam, a guru of the proto-net - he used to tell me about playing battleship with people in Greenland, in 1968, over the teletype. he hadn't touched a computer in 30 years, loathed the things, until i sat him down in front of my box, logged in as >console (switches off Aqua, drops you to a pure CLI). he stared at it for a second, then his face lit up as he said "OHHHhhh, it's just like my teletype, only on a screen!"...he's now does all his email, web browsing, imming, and text editing (invoices, inventories, whatnot) off the commandline. he DID ask if i could use the printer instead of the monitor once though, i had to shoot that one down...
Facts do not cease to exist because they are ignored. - Aldous Huxley
(define set-him-straight
(lambda ()
(display "Learn a language that's capable of abstraction without boilerplate, dammit!")))
(set-him-straight)
Try using a CLI when you can't spell, or like me make so many errors when I type, that CLI's would make me un-employed.
:).
Or, try using a CLI that is written in somthing other then english? Try mocking GUI's after you travel through Europe, and you have to use computers in a French/Polish/Spanish internet cafe. It's amazing how easy it is to use OS X or windows even when they are running in some other language.
(RANT)
As for all the people saying that CLIs are faster to use, it's you not the GUI thats slow, it's your brain. Try watching someone who thinks 3D space use a good GUI. It can blow CLI people away, easy. The thing is, the majority of people (70 percent?) think in the normal way (in words). Where as some people think in pure images. It's not that CLIs are faster then GUIs, its just that less people are phisologicely (spelling, ha) able to take full advantage of them.
(/RANT)
Disclaimer: I'm a 3D thinker and a bad speller (as you know if you read this far
My 5 year old niece seems to get along quite well with a GUI machine.
Phones were initially a mystery to people and I've heard stories from today's grandparents, then whiz kids, helping their grandparents crank and dial a phone. Today, that sounds laughable.
Ten years down the line this will be a non-issue.
I think the fact that the recent Matrix game had a CLI as its coolest feature supports this theory.
RaviWhen the axe came to the forest, the trees said, "Look out - the handle was once one of us."
They have man pages for everything, and they are well-written. With examples. With cross-references. No "go see the Info page" or "for documentation that doesn't suck goat balls, go to http://[some immature linux-only project].sourceforge.net/docs".
My dream OS is GNU/Solaris. The GNU userspace tools and the Solaris kernel. And maybe their man pages, too.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
Command line might be easier to teach, but hand two complete novices(as in never used a PC) a GUI system, a command line system, and a typicaly sparse new users guide.
See who makes effective use of their system faster. Idiot simple interfaces aren't for those who go out to be trained, they are for the secretaries and such who take a job and need to work right away, without training in how to use the computer.
As for the user, if I sit down at a computer that is localized in French, I can still use it because we all agree on what the command names are, regardless of what language we speak. "cd" is not "change directory," it's the mnemonic for the command that changes the directory. I don't care if it's zk or zmienkatalog, so long as it's the same. If I want something else I can alias it. By way of example, I logged into my normal account using Croatian as the localization context. Everything works as expected, but I can't read the error messages.OK. Let's see what languages are supported on this machine.
No problem. English, Japanese, and Croatian. My Japanese is not much better than my Croatian, so let's try English.
Oh... that wasn't too bad. Let's just set the language for English from here on out though.By ensuring that all the commands and protocols are the same, Japanese, Croatian, and English users of this machine can all use the same programs, and most importantly, their programs can interact as well.
-Hope
I submit the following "dialogue" I had with my computer for your amusement....
$ check email
bash: check: command not found
$ get email
bash: get: command not found
$ read email
(I had to ^C out of this one, good thing I know how to do that)
$ find email
find: email: No such file or directory
$ where is my email
bash: where: command not found
$ help email
bash: help: no help topics match `email'. Try `help help' or `man -k email' or `info email'.
$ man -k email
audiosend (1) - Send an audio email message
showaudio
hmmmmm...still no email......yup, that's an intuitive dialogue I just had
while and after reading the whole article all I can say is that the author needs to read some of Bruce Tognazzini's (www.asktog.com) work. Many of the reasons why his class is working well is addressed by Tog. they are true reponses but a correctly done GUI allows a much greater range of mastery than the CLI. yes helping build a mental map of locations is a definate goal for GUI's as well as what the guy was teaching. yes having a dialoge model of relationship is helpful. A well done GUI should have as it's goal dialoge and discoverablity. yes reminders and system dialoges should be unobtrusive till wanted. all of the points that the authro made are also made by tog only to much greater and more scientic standards.
Later
Chris
A CLI that had lots of programs with simple optional curses-based menu systems(but nothing using the mouse).
Why?
Because I remember what it was like when I was little. Typing quickly was difficult, and my mouse control wasn't so great either. So what I really wanted was something with short commands that still let me choose what I wanted.
So in that context, some sort of standard menu that appeared if I just typed, say, "cp" without arguments would be great. I would have access to all the options, without having to read and interpret the man page and then copy the things I wanted by hand into the command line. And if I wanted to do power-user type things or shell scripts, the options would still be around.
It wouldn't even have to be an interface that let me get at all the little features and options; just supporting the basic tasks would be simple enough.
...the help system offered by...
...wait for it...
...VMS.
You type "help [command]" and you entered an interactive mini-CLI environment. The help screens were nested, so your help sessions might look like
The help interpreter was "fuzzy", so you could just type part of a command, or even just a topic, and be presented with a list.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
I remember when upgrading from my Apple II, the choice was between a Mac and a DOS machine. Despite having learned the mouse on the Apple II, when I sat down to the Mac, I couldn't make it do anything. I didn't know the concept of double click, and the menus weren't that helpful. DOS on the other hand seemed more straight foward, even if more cryptic.
Also at the time I had several friends who knew DOS, so I was willing to take that risk. Knowing people that can help makes a big difference.
You are asking for programmable completion, which zsh and ksh have had for years, and bash just added a couple of point revisions ago. Look for the "bash completion" project at freshmeat to get a large library of hooks. Some distros already distribute the library, you just to turn it on (e.g., for Debian, uncomment some stuff in
For ls, I type "ls --q<tab><tab>" and get a list of options beginning with q. For make, I type "make cl<tab>" and it completes the target name to "clean". And so forth.
I contributed one that does option completion for gcc, then somebody rewrote it. :-)
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
My web page was designed to keep people away from my web page... That is why I went CLI (Requires Newest Flash Player) for my Command Line Flash web page at: CLF
Enjoy
--Bucktug
I had a flame... but she had a fire.
...is that apropos (man -k) just grep's the SYNOPSIS line that's at the top of the man page. So if the man page is poorly written, the tools can't help you.
Better implementations of man allow the user to restrict the -k searching to certain section numbers, just like normal man usage.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
For most users like "Aunt Tillie" there are only 2 or three "tasks" that they use their computer for (e-mail, chat, web, word processing). The problem with sitting down in front of the computer is discerning how to do just those things without getting lost in the clutter. The author's users liked the CLI because they were not being bombarded by other processes while they focused on the task at hand.
One place we are going to see the type of simplified GUI that these users would like is in the MediaPC arena. In the review of the OS-Optional MB yesterday, the screen shot showed a very simplified interface consistent with the limited functions the computer was aimed at: "Play DVD", "Watch TV" etc. In other words, the only options presented by the GUI were the 4 or 5 that the user is going to need 99% of the time.
When my mother first started using computers in her office 15 years ago, they had a "programmer" come in and put together a startup menu in Dos that presented just the 4 or 5 options the users needed. Apple tried this with the GUI in "AtEase" and the "Panels" interface of OS9 and limited interface of OSX. The trouble with the limited GUI interfaces (in my opinion) has always been administering them. I would like to set up a GUI for my 3 year old son that allows him to instantly click on the games he plays, or URLs to the websites he likes. However, whenever I try to install a new game for him, I have to torture myself to get everything working correctly in the restricted mode. If someone could do "Panels" right, that would resolve all of the complaints the author's users had.
I'm a lawyer with excellent karma. Something's gotta be wrong.
Aunt Tillie awakes to find her world ruled by the philosophy of the CLI!
She is jolted awake in pitch blackness, with the chattering of repeated words in gibberish, and some beeping. She is cold and scared and feels like she cannot do anything, and is too frightened to do so even if she tried. The words being spoken somehow remind her of her charts at hospital: concerning her intimately, but not for her. What is going on?! Suddenly she is ejected somewhere dark. She can't move her hands and feet, and everything is still.
"What's going on?" she asks. She is scared, but Aunt Tillie has always been a tough lady and she knows she can solve this problem.
"'WHAT' DOES NOT COMPUTE" a voice booms.
"I can't see anything."
"'I' DOES NOT COMPUTE"
Aunt Tillie mutters to herself but realizes she is dealing with someone incredibly literal and stupid, with whom she can only communicate in a very limited way. From the booming voice though she can tell the person is powerful and she might say the wrong thing and who knows what might happen then. If only she can learn the magic words!
"Show me where I am?"
"SHOW WHAT? YOU MEAN SHOW beep something squawk somehow?"
[ A few minutes of trial and error pass. Aunt Tillie manages to hit on something: ]
"Show here," she says, muttering "you bloody fool" to herself quietly.
The lights click on briefly. Aunt Tillie gasps in shock. Her hands and wrists are trapped in some kind of upright scooter. Worst of all she seems to be in a horribly complex and sterile place that reminds her of the nightmares she used to have of the New York Subway system after that one time she visited Eric in America. Strange, powerful looking machines lie around in shadowy places, and many chutes and passageways are around. Cryptic signs decorate every wall and surface and most of the machines, but there are so many of them, and they are all generally unreadable that she can make no sense of them at all.
Soon the lights shut off.
"Keep showing it!" she cries.
"'KEEP' DOES NOT COMPUTE"
Aunt Tillie spends the next several hours with magic words. She never learns how to keep the lights on, but she discovers that she can keep saying "show here" and most importantly by saying the right words can move herself around, although the upright scooter thing lurches terribly, and she finds that she has to describe everything in terms of the cryptic signs on the walls. Instead of just "turn left, stop, go forward..." she has to say "trav'l beep 'crptcwrd'". She has to say travel with a slight accent, which would infuriate her if she were not so pessimistic and weary already from getting the beep sound right.
She makes a chilling discovery when she discovers that right where she woke up is a sign that says "Aunt_Tillie", and that the booming voice sometimes implies that her "home" is right under that sign. Where is her cozy bed? Where is her teapot? Where is her wicker mail basket? "Even if I could find a teapot I coudln't use it" she says forlornly, "until I learn to talk to it right."
"'EVEN' DOES NOT COMPUTE"
She's mad that she has taken about four hours to learn what someone could have described to her in ten minutes. "If only I had a cheat sheet on how to use magic words, provided to me by some kindly person trying to prove how easy it is to live like this!" she thinks, "and while I'm at it I could really use some tea."
[ Days pass. She becomes more and more proficient at moving around, shackled to her scooter. Tillie learns how to make tea. Sadly she learns that the nearby sign marked "TEA" is not at all helpful until much later when she learns how to see invisible things. However she finds that if she says "MAKETEA" a faraway machine jolts to life. One time she went to find the machine. It sat huddled among hundreds of others, very few of which she recognized. It was a scary place and she quickly left, finding nothing helpful
Nope.
I am pleased to announce that my current prompt:
PS1='`[ $? == 0 ] && echo -e "\033[01;32m" || echo -e "\033[01;31m"`\u@\h:\w\$ \033[00m'
just became:
PS1='`[ $? == 0 ] && echo -e "\033[01;32m:)" || echo -e "\033[01;31m:("` \u@\h:\w\$ \033[00m'
Thank you.
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
Please mod parent up: +5, Funny!
I've TA'd a few 2nd-year CS courses, and I've noticed that even the most primitive CLI-proficient users are leaps and bounds ahead of the most advanced GUI-adept users when it comes to understanding the fundamentals of computation. CLI users are quite familiar with things like turing machines, because much of what they do behaves in a similar fashion. GUI users can't do anything without triggering events, dealing with multithreading, etc. It's so complicated they don't really know where to start when we make them build them themselves for the first few times. Our department has a few low-level classes that emphasis GUI-based programming, and a few that emphasize CLI-based programming. The students love the CLI, because, get this, it's a simpler and more intuitive way of doing things.
Granted, the average newbie and the average starting CS undergrad are a little different, but I've definitely witnessed the phenomenon at work.
WARNING: there is a trojan on your
Fire up 'info bash' sometime and have a look around. They split many things according to whether they're Bourne or Bash shell features. I can see where this information would be useful for someone writing portable sh code, but splitting the contents by it is Just Wrong. It should be done by command. Things seem to be split up among too many indices, as well.
The cvs info page is another horridly designed piece of trash. They may have one index, but you have to use the 'l' command a lot since all the commands (at least) are documented several ways in several places, none of which is ever what you wanted.
Try finding "GCC options" in the GCC info pages. They're stealthily hidden away under "Invoking", like it's some sort of deep black art to run a fscking compiler. It wouldn't be too hard to find with recursive search.
Which brings me to my last point: info's navigation is awful. Why can't there be a sane system for it (like pinfo) with Emacs overriding it for people actually using it in Emacs (who would therefore be expected to know the proper commands)?
I'm pointing this out because a lot of times Linux Oldtimers point people to info, probably without realizing exactly how horrid it is. It is not at all accessible to newbies, and probably should just be chucked in its current form.
__CmdrTHAC0__
In Soviet Russia, Spanish Inquisition doesn't expect YOU!!
Given this basis, we can now ask the question: what is a useful model for a shell that is easy for the general public to learn and makes them productive. I don't think that we have to abandon traditional shells entirely. To the extent that a friendly shell is similar to a current shell it will make things easier in the long run.
In the overall discussion we see some things that a friendly shell could do better then current shells. Clearly help and error reporting can be improved. I also think that having good integration with a simple text editor would be a great help. Take a look at how EMACS handles this issue: one pane is editing and one for the shell interaction. I'm sure there are other improvements that could be done.
Now all that's needed is some programmers with a lot of free time on their hands and a new project on Source Forge......
Have you ever noticed how difficult it is to explain how to do something in a GUI? It's easy to show people, but it can be real hard to explain it succinctly in writing (or over the phone).
One side-benefit of the CLI is it is real easy to give a line by line explanation of how to accomplish a task. The CLI is almost self-documenting in this respect, if you log the command session.
Now, I suppose the point of the GUI is that it is easy to find your way intuitively, so you don't need to follow instructions written by somebody else. But the fact of the matter is that the sort of folks who would have trouble with a CLI are same folks who need to go on training courses to learn GUI-driven programs too. GUIs are not really intuitive enough for joe user.
More on my thread about comparing *nix shells with BBSes: even the worst, most bare bone BBS shell had a "menu" command. Any newbie, from a 7 year old to a 77 year old could type "menu" to see what he could do (read email, read news, edit, etc.) and then type help to get more details.
Sit a newbie down at a *nux machine and see how long it takes him to guess that he has to type in a tree species to read his email or a synonym for vigor and vitality to edit a file.
I actually taught a computer-unfriendly new webmaster to do VI based web design. Now he has a flash and streaming video non-porn site. He will not even touch the quicky edittors as they allow design with their limitation versus how he wants it displayed.
In my experience, I see that newbies get along better with the CLI than with the GUI. Perhaps this is because they "know" the CLI is hard, they pay attention, but because they "know" the GUI is easy, they think they're stupid when it's not.
But another reason is that GUIs have an infinite number of states, whereas when he see a command line prompt, you know exactly what state the system is in.
I gave me parents my old 8086 running DOS. They had no problems with it. When I told them what to do, they wrote down the instructions step-by-step. Now my mom has a Windows system, and she's as confused as I've ever seen her. I can't give her step-by-step instructions, because one can never know the exact state of the system to start from. If the order of the menu items change she gets lost. If she installs a new program the icons on the desktop change position and she gets lost. I've even had her accuse me of breaking the computer when I forget to remaximize the Internet Exploder window after I was done using it. Since it wasn't maximized she didn't recognize it, and wanted me to put the system back the way it was.
It took her the longest time to realize that the purpose of moving the mouse was to reposition the mouse cursor. For a while she was wondering why moving it two inches to the left and clicking didn't always bring up the menu.
My mother is not stupid, she just hasn't groked the underlying, unwritten and unexplained paradigms behind the GUI. She doesn't think of the computer as something to interact with, but as a machine you issue commands to. Hmmm, she is pretty smart after all...
Don't blame me, I didn't vote for either of them!
Being a former backup system admin (I was laid off 2 years ago when they sent my job overseas) for a very large company, we had simple shell scripts whenever we added a new box. Not that hard to do, and I'm sure we had a hell of a lot more boxes than MIT does.
The instructor was more enthusiastic about teaching a unix cli than a windows gui and the students picked up on it. That is all.
"all the different commands available on linux systems" fills many screens, even without descriptions.
Contribute to civilization: ari.aynrand.org/donate
Dude, pardon my abrupt language, but how did you get bitchslapped into -1 oblivion? You don't have many comments, and the ones you do have are mostly highly rated. It's unusual to be posting at a default -1 so soon. I mean, I post hundreds of flamebaits and trolls with the anonymous checkbox clicked and I still have neutral karma.
A long time ago, I used to work for damn near minimum wage - I had an old piece of crap Chevy CK10 pick up truck, with vacuum hoses n' such controlling all the tricky little elements like advanced timing spark and other obscure little bits. The truck was cheap, it was functional, but still a piece of crap.
.305, how to rebuild a carb, how to replace brakes, fuel lines, and even bearings in suspension.
When my truck broke down, I didn't have the money to go out and take it to a shop to get it fixed, so invariably I'd have to get under the hood to turn wrenches with a Chilton's manual propped on the radiator cowl and work through basic trouble shooting problems and hope that I could afford the new parts I needed at Checker or Autozone.
You know what? I learned so much about my truck. I learned about all the obscure little devices that were attached to the engine, the internal workings of a Chevy small block
You know what else? I don't feel like I'm anymore enlightened because of it. Why?
Because back then, if I had the choice of doing something else (like playing a video game or boozing it up) I'd damn sure be spending time at a volleyball court with beer than goofing around on my engine because most of the time it was filthy, dirty, nasty work. I had and still have better things to do with my time than trying to figure out where top dead center on cylinder 1 is. I'm not that into cars.
Same goes for my OS. Back in the day, I had a 'liberated' copy of DOS which, I must say, had a decent CLI. When I got Windows? Whole new world - stuff had pictures and the file system graphically told me where all my stuff was found. Did I understand whan those objects did? Sure. Did I care? Not really, I just wanted to load Quake and blow shit up. It's that simple.
I think it's great that there are folks who take a very keen interest on figuring out the underlying code in an OS kernel and want to turn wrenches on it. You go for it. But don't misinterpret your enthusiasm for CLI as a better standard user interface. People like pictures because, my friends, we are tactile that way. It's the whole reason why the GUI took off because people like to associate a picture with a function (like the bicycle analogies in OOD? Everyone got it when the instructors put it into terms we could visualize).
Nowadays, when my car object breaks down, I take my cellphone object and message the wrecker object (yeah, long way from the minimum wage days).
> Try man cvs or man gcc if you don't believe me.
What newbie is going to be using gcc or cvs?? I think man ln or man mkdir is more representative of man pages a newbie might need. Those are only 3-4 screens.
... or at least all DOS shells post Win95 do. It's just very well hidden and not turned on by default. You can assign any character to be the completion character.
... leads you right to it.
Hint: Search the registry for the string 'completion'
*lacivious grin at thoughts of CLI-using geek-girl* ;-)
GENERAL PUBLIC SIGNATURE (GPS) Any replies (derivatives) of this post must also use the GPS
The fact that manpages do not always include examples shouldn't be a problem: the principle of command-line arguments is quite simple to understand, and man pages normally list the descriptive "long" version ("--option" in addition to "-o"), which makes it quite easy to quickly skip to the one you need. The argument that unix commands are not always descriptively named certainly doesn't apply to long command-line options.
That is one of the downsides to Linux. It is viewed as having hard to find, read, understand documentation. There are some things I prefer to do at the command line. There are some things that are just hard to get done right in the GUI. I wouldn't mind the help of a Penguin guiding me in my options.
Ops, I shuld have usd the prevuwe but in.
and they want their functionality back. CLI has always been superior to the GUI for completing small, discrete tasks, especially when repeated.
I want to delete my account but Slashdot doesn't allow it.
Yeah! I know this one!!!
ISP = internet company.
AOL = shiny beer mat company. I can't remember when I signed up, but they send me free 'trial' beer mats every month. They look really cool, very modern.
Emacs sucks!
It would be nice if I could actually read the article, but it apparently is no longer available.
Ops, I shuld have usd the prevuwe but in.
Imagine a world populated by people who live in farms, or in a nomadic tribe somewhere. The most advanced form of transportation is the horse.
Now you come up with this invention called a "car" and want to sell it, or just persuade all your friends that they should use it. What would you do?
Obviously, you'll outfit the car with bridle, reins and saddle, and a mechanical whip instead of the gas pedal.
Then you'd tell all your friends: "just ride it like a horse! It's easy! You don't have to know how it works, the car looks and feels just like a horse, so off you go!"
Gasoline would be made to look like oats, or whatever it is that horses eat. So every once in a while you'll just stop by a gas station to "feed" your horse.
Obviously, this is not how cars work. A horse is a shitty metaphor for a car because it is a) possibly dangerous and b) probably dumb in the long run.
a) Unlike oats, gasoline explodes if you're not careful --and it may kill you if you try to drink it instead of "feeding" it to your "horse". You think it's clearly a win, but the dangers of gasoline perhaps need to be dealt with. (There are no lawyers in this primitive world but there are tribal vendettas, which are almost as unpleasant).
So you add a well trained monkey, that comes with every car. The idea is, this creature will remain hidden unless you try to put some gas in your mouth, and which point the monkey jumps right in front of your face and says: "are you sure? oats are for horses! not for people!".
Having gone through the trouble of training the monkey it's hard to resist the temptation to add value to the user experience by teaching the monkey to do other helpful things at random times, which thinking leads directly to the dancing-paperclip-from-hell-that-won't-go-away-no- matter-what
which is going to drive you completely insane,
unless you happen to like monkeys --which of
course some people do.
b) By treating the car as a horse, the user remains ignorant of important stuff like gas being toxic; and also ignorant of the car's full potential b/c a car can do things that no horse can.
And as intuitive as the car may be to us 21st-century western folk, its interface (ignition switch, gas and brake pedals and so on) is far from intuitive to a horse-only person. All of us who "just want to drive" have had to learn how to do it; and despite claims to the contrary the modern desktop GUI also has to be learned and taught.
Trying to deny that there is a learning curve with GUIs leads to more and more bloat (wizards, assistants, dialog boxes and whatnot --lots of monkeys). Worse, it seems to persuade even sensible people that everything the computer does should be understandable without mental effort. As a sysadmin, I've been amazed at seeing many users, highly intelligent and successful people, go through a personality change of sorts the minute they have a problem with their computer and become infantile and almost helpless in dealing with the machine. In my experience, the fancy GUI liberates the user for mundane tasks. For interesting or slightly more difficult ones the user tends to become more, not less, dependent on other people to show them how the computer works.
I don't mean to condemn "the GUI" in general, but certainly the current desktop environments --all of them-- try so hard to be intuitive that they end of being even more complex and overloaded.
As a wise old BOFH said: the only intuitive interface is the nipple. It's all learned behavior after that.
I can only confirm this: in a course I once taught, participants found the hierarchical file system (commands: pwd, cd, special directories: .., ., /, ~/, and its concepts of relative/absolute paths)
more difficult to grasp than extended
regular expressions, much to my surprise.
but rather they are short and easy to type over and over. That was the primary criterion at the time of their creation.
Remember: no shell aliases. No command or file completion. No command history of any kind (neither arrow key or !n or ^P or anything). Work under those conditions and you'll be very happy for two-letter commands.
Occasionally, depending on the terminal, no backspace. The longer the command is, the greater the chance that you'll make a typo and have to start all over.
There are very good reasons why it's spelled "ls" instead of "list" or "show me all my files". It's not lack of design, or a deliberate wish to beat the new user upside the head.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
Bah, that last line should be:
rename this.cpp that.cpp -< *.cpp -> &.c++
razzafrazzing html
Mac OS X users can extoll the virtues of a shortcut-launcher such as LaunchBar...
Talk about a productivity enhancer... it is somewhere in between the best parts of a CLI -- direct initiation of commands/ability to drag files to applications -- and a GUI -- access to various applications and their individual interfaces...
Is there similar software available for Linux and Windows? What about comparable options?
We apologise for the fault in this post. Those responsible have been sacked. -- Signed RICHARD M. NIXON
Waiter: What would you like this evening, monsieur? ...
...
Customer: Let's see, for some wine I'd like some Chardonnay.
Waiter: I'm sorry, we don't have that.
Customer: Chardonnay.
Waiter: I'm sorry, we don't have that.
Customer: OK, then how about some Beau... (looks to Waiter and waves hand)
Waiter: Beau-Mayne? Beau-Sejour? Beaujolais? Beaulieu?
Customer: Yes, Beaujolais!
Waiter: Very good, sir.
Customer:...
Waiter:....
Customer:Oh, and for an appetizer, do you have escargole?
Waiter: I'm sorry, we don't have that.
Customer: How about pate de foie gras?
Waiter: Very good, sir.
Customer: Oh, I didn't want that! I was just asking...
Waiter: Very good, sir.
Customer: But... Well, are you sure you don't have escargole? (Strange, I'd swear those people at the next table are enjoying some.)
Waiter: I'm sorry, we don't have that.
(A glass of Beaujolais and a plate of pate are brought to the table)
Customer: Look, I didn't order the pate...
Waiter: I'm sorry, we don't have that.
Customer: (Sigh) OK, so for the first course I'd like some chicken (looks to Waiter and taps table)
Waiter: Poulet-croustillant? Poulet-roti?
Meanwhile, over at Chez Graphique...
Waiter: What would you like this evening, monsieur? Here's our menu.
Customer: Let me see... (perusing menu)
Waiter:...
Customer: Yes, I'd like to start with a glass of this Bordeaux (points to menu), a plate of olives farcis, and the soupe du jour.
Waiter: Very good, sir.
Customer: On second thought, I think I'll skip the olives.
Waiter: No problem, sir.
>ls .trapdoor/. .trapdoor/ .trapdoor/ is closed. .trapdoor/ .trapdoor/
You see here oriental.rug, elvish.swd, and brass.lnt.
>chown adventurer *
elvish.swd: Taken.
brass.lnt: Taken.
oriental.rug: Insufficient disk space.
>mv oriental.rug
With great effort, you mv the rug, revealing
>cd
The
>chmod +x
The directory reluctantly opens to reveal a rickety staircase descending into the filesystem.
>cd
You have entered a d-wx-wx-wx place.
You hear someone chmod -x $OLDPWD.
>
I have nothing to allude to, and I am alluding to it.
OK, I think I've misunderstood what people meant by "mushy" keyboards then. I was thinking more that mushy keyboards were just the flatter variety where the keys don't press down as far.
I guess the only thing I still don't agree with is that the audible bit has to be so loud... I have no problem hearing myself type even though it's way quieter by comparison. I don't know enough about biology to know which form of feedback gets to the brain first.
Anyway, the response is appreciated, thanks!
Not bad at all, part of my prompt turns red when the last command was a failure. And it has a kick-ass clock. :)
No one's suggesting we go back to the commandlines of the 60's. Even less suggest that we all program in machine-code assembly or edit text source files in a hex editor (I thought you were programming in machine-code..?).
/usr/src/linux mykernelmod/". After doing simple things like this so easily *I* find it frustrating to have to go back to the GUI world where everything takes 50 sub-operations to accomplish some small task. *My time* is too valueable to be spent doing that tedious crap.
For most simple or complex tasks (at least that I perform) the command line is faster and less frustrating than a GUI.
Copying a directory:
In the time it takes you to open Explorer, navigate to the correct directory highlight a directory, right click, select copy, navigate to the destination directory and click edit->paste, I have already executed the command (even though I may not have remembered the exact name of the directory--that's what tab completion's for) and even added the '-v' so it tells when each file has been copied.
This is not a case of "obscureProgram.sh -XFGXRmnq -i filename1 -o filename2 -c..." this was just a simple "cp -vrf
GUI is useful sometimes, for tasks of moderate complexity. If you need to do something really complicated you'll be relegated to the command line anyway (because that's where the real power is--You know all those windows apps--they have command line options too [though it's a little harder to enter the arguments for some reason and they're completely undocumented]).
Time spent learning new skills (not 1337 skillz) is not a waste. Every year corporations spend how many billion$ educating their employees. The time you spent learning how to configure CUPS from the command line will help you use UNIXy systems later on. The first task you attempt will take 4 hours, the second task 2 hours, the third even less. Pointing and clicking on printer icons probably will not help make you a better windows user or make your clicking and pointing any more efficient.
I second that motion: what we should conclude from the article is not that CLIs are best for teaching newbies, but that GUIs need to adopt some of the best things from CLIs to become more user-friendly. After all, on the last page the author starts musing about adding notification areas to the terminal window and what-not.
Wizards, for example, are so popular because they use a dialog-style interface. Drag&drop is horribly underused (mostly because the things you want to drag onto are never around), but emulates verb-subject execution. Making alter windows behave is easy and I can only assume that Microsoft doesn't give users control over whether they pop on top because they hate users. I'm not sure how to emulate the CLI style of command lists, any suggestions?
The base assumption in this article that Tilly just does this stuff is a tad out there.
Tilly has had say 60 years of learning and working in her environment. She may have taken 5 or 10 or 20... years to be in command and comfortable with her environment and comfortable with the pardigm proposed.
To assume that she picked up the environment fresh is off the track.
The corollary is is that when Tilly is presented with a control panel, ie banks phase out tellers and want her to solely use an ATM, then there is a period of confusion and relearning before the previous feeling of being in command and comfortable re-asserts itself.
Tilly would be likely to be far quicker in regaining lost confidence in a graphical teller environment than one where she has to type a list of commands from memory the structure of which changes based on what she did immediately before don't you think.
It really is dangerous making analogies from assumptions basedon comparing apples and cupcakes.
Wolj
Wolja Future Tombstone: Shit happened then I died
I'm productive because I use the GUI for some things and the CLI for others. What's your excuse?
My excuse for being productive? I don't have one...;)
I agree about the CLI being useful, I never said otherwise.
Your examples are either not newbie tasks (did you notice the headline of the story?) or even easier with a GUI. You can set up connection monitoring and automatic emailing with a GUI or a CLI, the interfaces are unrelated to the task.
You can convert pictures in a GUI by selecting those you want, right-click and select "convert to [format of your choice]".
Of course there are times when a GUI is not available, but that makes the discussion pointless - it doesn't mean that the CLI is preferred, it just means that's what you've got.
. . and you could TYPE the C-64 Basic commands in full, or just the Tokenized (Shorter) version!
Creating a disk full of Enter-to-run Directory List Prog Names (after entering 'STOP" so it wouldn't try to RUN the Dir-List) was magic! Cursor back to ANY line and hit 'RUN'.
And, wasn't GEOS the simple-to-use-for-Newbies cut-down GUI?
.
(David Bowman, EVA near HUGE Monolithic Win-PC in orbit around Jupiter) "My God - its full of Malware!"
This guy conveniently forgets to mention that you can't just walk up to a command line interface and use it with out training or a reference manual.
Are you sure? It works on my system:
pth@cc9:55:~$ help disk space
No manual entry for disk space
df (1) - report filesystem disk space usage
pth@cc9:55:~$
What shell are you using? This is what I'm testing it on right now, a fairly old bash on a fairly old Debian GNU/Linux:
pth@cc9:55:~$ $SHELL --version
GNU bash, version 2.05a.0(1)-release (i386-pc-linux-gnu)
Copyright 2001 Free Software Foundation, Inc.
pth@cc9:55:~$
Maybe try changing a=${@:-help}; to a="${@:-help}";? Or even something like a="'${@:-help}'";? This is a quoting problem (it should pass all arguments of smarthelp as a single argument to apropos) so try to experiment with different interpolation of variables, like $var, "$var", "'$var'", escaping quotes etc. This: a=`echo $!` should work as an ugly work-around.
Wait a minute... You should get:
No manual entry for disk
No manual entry for space
If there is indeed a problem with quoting in my script, while you got:
No manual entry for disk space
which means that man gets it as a single argument. Are you sure you haven't written it as:
a=${@:-help}; help "$a" 2>/dev/null || man "$a" || apropos $a
instead of:
a=${@:-help}; help "$a" 2>/dev/null || man "$a" || apropos "$a"
? Are you sure? Please answer as soon as possible. Thanks.
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
Afterthought: These commands we are talking about aren't even something affecting the entire distribution. If you feel they are that necessary, re-compile BASH with this feature, because I'm not writing code for it. But to imply that the default shell should include these features that would only bloat it to the point of being unrecognizable is arrogant to the opinions of hundreds of thousands of users that are already happy with the basic Linux shell that can fit on a bootable floppy.
Hey, I found out why your karma is so low. It's because of the overrated moderation that was done to your posts. Check out this post for more details.