The Case Against GUIs, Revisited
snydeq writes "Deep End's Paul Venezia advocates the importance of the command line, in light of the increasing use of GUIs in today's technologies, as well as the increasing perception among admins that proponents of the CLI are dragging computing back to the 'dark ages of the C:\ prompt."
... speaks more of the admins who assume that "CLI" == "C:\ prompt".
Or the idiots who think "CLI" == "the GUI in front of me is therefore made unusable". The people at "GUI Industries" can't make a link or shortcut to the appropriate script?
Why would you trust an admin who can't, as TFA indicates, edit a text file?
I'm afraid I can't let you do that, Dave.
There's no -1 for "I don't get it."
Yes, but to master same functionality using windows batch files it takes a lifetime of discipline
CLI is not essential. It's a holdover from a time when we thought words were a good way to express function. And then left the 'e' off "creat" for kicks.
Everything can be done in a GUI. I don't see why not. We just haven't made that happen yet.
Human beings invented symbolic language because it's simply more expressive than pointing and grunting. CLIs are superior to GUIs for the same reason.
CLIs are superior to GUIs in the same way romance novels are superior to sex. Sometimes taking the time to carefully describe things in clear, unambiguous detail is important, but sometimes pointing and grunting is both more effective and and more satisfying.
And when's the last time you edited photos, video, or audio with a CLI?
https://www.eff.org/https-everywhere
Anyone who thinks that a command line prompt starts with a 'C:\' has no idea what they're talking about.
While the C:\ prompt would really be the Dark Ages all over again, command lines done right can be significantly faster to use for experienced admins. Not to mention they can also be used in diverse interface environments like serial connections in almost exactly the same way that they are used anywhere else. It's significantly easier to script from the command line as well.
Just about every shell available on a UNIX-like OS is at least ten times better than DOS ever was. Lumping in bash with DOS is like taking a BMW and saying it is equivalent to a Yugo because they both have four wheels and an internal combustion engine.
There's certainly a place for a GUI, and well designed GUI apps are lifesavers in big environments where seeing a graphical representation of 1000 servers as icons and being able to click and drag to select and execute group commands is a much easier way to work with that many servers. Having 1000 lines of text zoom by is going to be hard to take in at a glance. I love the GUIs that I use for certain tasks like visualization and management of complex environments.
Still, anyone who considers the command line to be the Dark Ages either doesn't know how to type, doesn't understand how to use a CLI, or is simply trying to sell you a pretty GUI app.
Why does this always have to degenerate into a Campbell's Chunky Soup "Fork or Spoon" debate? Why not just use the most appropriate interface for the task at hand?
A GUI can be shit for some things, and (unless you live and breathe CLI) a CLI can be too complex and unwieldy for other things.
Does it make you happy you're so strange?
And when's the last time you edited photos, video, or audio with a CLI?
When I was a sysadmin at a radio station, I wrote scripts that processed audio, including cutting and splicing. Having it automated saved a hell of a lot of time for the people that used to have to sit in front of a GUI and do it.
Of course, there's all kinds of audio work that couldn't be done by script. The point is, you need both kinds, even for audio and video.
And masochism
or you could have made a photoshop action while applying the first one, then told it to do the action to every image in the folder. done in less than five minutes. probably only about 1, if you know what you're doing. There's a lot to be said for knowing how to use the tools!
I like my CLI smartphone. With wget and Perl5, I don't need any of those useless, cluttery widgets for connecting GPS to reviews of local restaurants - and dialling is a breeze, as I grep through the flatfile of contacts I have acumulated by rsyncing from my desktop dump of the company LDAP.
"Flyin' in just a sweet place,
Never been known to fail..."
Batch files are easy. The only people I've found to have trouble with any sort of scripting are people who grew up only using GUIs.
That being said, I grew up on old Macs and only started using windows at 15 when I got my first job in a computer shop. Not having used a CLI previously I dove straight into it and learnt all I could.
The problem with the whole user/CLI disconnection is that there is a perception among certification/uni degree holders that once you finish your qualification you don't need to learn anything further. I saw this happen to many people who graduated with my fiance, they learnt Windows, learnt how to use the GUIs for admin, and nothing more.
To be honest, I blame complacency and the fear of intellectualism for the decline in the CLI. It seems to be "cool" to be stupid in developed nations, intellectualism and learning are almost feared. Maybe it's due to editorials damming intellectualism, maybe it's to do with politicians damming intellectualism. I'm not quite sure, whatever the cause it's one of the worst things to happen to humanity.
At last, I've found another n900 user! Brilliant phone.
By your own admission you've devoted half a lifetime or more to developing computer skills. Should everybody have to do that? Are people who don't devote half a lifetime specifically to computing skills "stupid' and "fearful"?
This is just a form of elitism. I'm not even going to call it intellectual elitism, as preferring CLIs is no more a demonstration of superiority or intellect than preferring GUIs is a demonstration of inferiority or stupidity.
Everybody gets what the majority deserves.
The trouble with CLIs though is that the functions aren't always named whatever you would expect so you *have* to look up the function name and formatting.
If a command line could be written as:
"Take this image, resize it by 50% and increase the contrast 10%" then people would use CLIs all the time.
Instead it goes:
ImageProcessor ... /help ... ... /help ... .. /help ...
ImageProcessor -scale 50p...
Image Processor -scale 50p -filter (contrast,1.1)
etc...
You have to keep looking through a huge documentation system. GUIs at least present you with the documentation *AS* the interface.
You don't need to know what the "Contrast" filter is exactly called, you just look through the list by default and choose the one that closest matches what you want.
If we had smarter more adaptable CLIs people would be far more familiar instead you find out you missed a comma somewhere and it takes you 5 minutes to track that down. Or you try to figure out if adjusting contrast is even a function at all.
"By your own admission you've devoted half a lifetime or more to developing computer skills. Should everybody have to do that? Are people who don't devote half a lifetime specifically to computing skills "stupid' and "fearful"?"
Yes, and yes, if their career is administering computers (or computer networks, which is what the article is about).
"National Security is the chief cause of national insecurity." - Celine's First Law
If a human is required, it's editing.
That's your opinion. I think the point the original poster is making (certainly the point I'd make) is that our interfaces should be agnostic as to whether a human or a decision-making algorithm is driving them.
Because otherwise, how are we going to take control of our workflow and delegate the automatable parts of it to automation, if the interfaces we use stubbornly insist that 'no, a human must be in the loop to do that!'
This attitude, which sadly is rife among GUI designers, is keeping us stuck in the dark ages. It fundamentally shouldn't matter if a human or a program is doin any job on your desktop. End of story. It's not the interface's job to decide. If a script can take a look at a JPEG, apply a beauty algorithm and decide to fudge the colour contrast and recrop - and if a human can look at that afterwards and decide that it's good and keep it - well, then that's editing, isn't it? But it's done by a partnership of human and machine, as it should be.
Don't force us to decide between human and machine for every job, and especially, as an application designer, don't impose your conception of what tasks should be done by which. As a user, closer to the coalface, I might well have a better idea. If your software gets in the way of my automation, it's wrong.
You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
It is often worth doing cost-benefit analysis and determining if the time spent reading the documentation is worth the time that will be saved by using CLI.
If someone asks me, for example, to add a user to active directory, it doesnt really make sense to research how to get LDIFDE or whatever to do an import properly. If, however, they hand me a CSV file of 100000 contacts and asks me to import them to active directory, then you better believe Im breaking out cygwin and awk documentation, and touching up on the active directory CLI tools. I may spend a few hours learning how to work them, but I will save hundreds of hours in time.
This isnt a "heres the right answer" scenario. You have to use your brain and your experience to choose the right tool for your job. That, as much as anything else, is the mark of a good systems administrator, not knowing every CLI in existence. A knowledgable SysAdmin can be inefficient if he needlessly ignores some tools (GUI) that are perfectly suitable to a task just so that he can use the same tool for every task.