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."
I use Linux specifically for the powerful Bash-fu.
... 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?
This is dead on. Human beings invented symbolic language because it's simply more expressive than pointing and grunting. CLIs are superior to GUIs for the same reason.
Give me Classic Slashdot or give me death!
I'm afraid I can't let you do that, Dave.
There's no -1 for "I don't get it."
I haven't used windows since '99.
looking around my desktop right now, while posting to slashdot, I have chromium running, and 7 xterms. Two of'em are running irssi, the others are just nice little windows to do various bits of work in.
I live and breathe in a CLI environment. I can't really remember doing much useful in GUI's except lookup information (for which it's suited perfectly well).
But why on earth would you do configuration in a GUI? Why would you ever program in a GUI, instead of vim or emacs?
I just don't get it.
"Rune Kristian Viken" - http://www.nwo.no - arca
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.
I can back up the claim that the CLI is making a huge come back. I run a feed on twitter and identi.ca called @climagic that is becoming very popular. I think that people are trying to find ways to do the things that they need to do in GUIs and when it can't be done, they find that it is easier to access and manipulate your data using Unix command line tools in very efficient ways. Does that mean that its great for everything? No of course not, I'll admit that I use the GUI for many things too, in fact, I do graphical work in Blender and Inkscape and listen to music in Pandora and do my browsing in Firefox because it works well for me, but in many places, I can get my work done using the CLI and still wow people with iPhones and Androids in 2011.
Some UI may go this way eventually, but I imagine most written/typed communication is still incredibly valuable.
I imagine it won't be long before we communicate with computers very much the same way we do with people.
For casual simple tasks, that means mostly voice (which computers suck at today) and a bit of gestures (which computers are OK at with a mouse).
For anything complex, though, communication between humans is typically written - and I expect it'll continue to be so for computers for as long as people interact with them -- not because it's great for the computer, but because it's the best humans come to a high-bandwidth precise recordable communication channel.
A command line is more flexible than a GUI could ever be. It just has a steeper learning curve. Since computers are more mainstream these days GUIs are more prevalent. That doesn't decrease the value of command lines though.
except that software should be accessible by design, and GUIs have issues for blind people.
The frustration of doing this was foreseen by some of the writers of Star Trek. If you watch some TNG episodes where Geordi interacts with the computer, you'll see him getting frustrated with it not understanding what he wants. I always felt that Geordi was a lot like an IT engineer of today.
We may be able to talk to computers, but I imagine it will be very hard to get them to the point that they understand each of our individual expectations. Even once we think they are comprehending, they still won't.
cmd.exe is a terrible shell. The new Powershell Microsoft has is pretty nice. I like it more than Unix shells. I find passing objects between commands to be easier. Now Microsoft just needs to dump their console.
Anyone who thinks that a command line prompt starts with a 'C:\' has no idea what they're talking about.
The idea that people have to be on either side of the fence is almost as ridiculous as there being a metaphorical fence to begin with. I use a desktop OS (Windows 7) and I love cygwin, which I run in Console2. The two can be used together, you know. There's no need for it to be a black and white discussion -- only useful for making one seem 1337 or 'in the know' and bicker like tools. We have both -- why not love both?
Truth, Just Us, And Hatred For All Mankind!
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.
Interestingly, I had to put little watermarks on about 400 images a year ago. It took about 5 minutes of scripting with ImageMagick to do it.
If I'd done that with Photoshop or GIMP, I'd still be at it!
A picture (GUI) is worth a thousand words. Why use a thousand words when one or two CLI words will do?
GUIs are useless at performing repetitive tasks. The emergence of PowerShell on the MS platform in the last few years means I can do stuff that was previously impossible to do - maybe throw user objects around between AD, SQL Server and SharePoint. Heck, even the GUI tools are based on top of the PowerShell commands.
In fact, PowerShell is one of Microsoft's best moves, and something that has sorely been lacking from the Windows platform for too long.
As an avid CLI user on *NIX and Windows I would vehemently object if I was dragged back into the "dark ages" (aka 1980s). It seems that as soon as you mention CLI this is what people bring up for an argument. I suspect these are the same people who have not taken the time to objectively evaluate a modern CLI be it bash or powershell or something similar.
I humbly suggest these are the same people who have never had to log into and click away on a GUI to configure an option because the package does not have any CLI support on 30+ machines. Don't get me wrong, GUIs are great for a great many things but there are many tasks where a good script and a command line beats the GUI hands down. A simple example is turning 70+ machines over in a computer lab to put them in a special "exam state". With scripts and command line this takes literally less than 1 minute to hit all machines. Now I suppose if you had some nice admin tool GUI that allows you to point and click to select a set of actions to perform on each machine or group of machines you could achieve the same thing but I have yet to see it.
The difference between a GUI and a CLI is that a CLI rewards understanding with capability.
GUIs are appropriate to non-expert systems where functionality must be patently clear. Think of your smartphone / PDA, or a consumption-oriented computing device (iPhone, iPad, PowerBook).
If you're administering or creating content, you'll eventually want the power of a real scripting tool.
Command lines discriminate against those with poor memories. GUIs make it possible for people who can't remember detailed shit to be productive without having to constantly refer to some other resource(s).
I learned English well enough that I rarely require a dictionary, but I was never so lucky with programming languages and other syntaxes. I love my GUI... when it's implemented correctly. Paul Simon wanted his Kodachrome, and I want my GUI.
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?
This is not really about Linux vs. Windows, as both of them have GUI methods and CLI methods for accomplishing this task. It is more about GUI admins vs. CLI admins.
If you don't know where you are going, you will wind up somewhere else.
Yes, but you'll likely end up specifying the verbal commands in a spoken language that's actually a semi-strongly typed pure functional language inspired by Haskell. Oops silly me! I forgot how to define the commutation relation between my xml parser monad and my route updater monad.
http://yaxu.org/category/haskell/
The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
A dividing line in human history is the invention of writing. That's what differentiates pre-history from history. After the invention of writing we have records of what happens, before that it's up to archaeologists to dig ancient garbage dumps to infer things.
Incredibly, there are people who want to run the inverse way in computing.
What next, will we have to climb trees to use computers?
What is Google but a command line interface? Your browser url bar? Your start menu search box with integrated desktop search? Then there's something called the Web.
It seems CLI and GUI has been hybridized after a brief fad of flashy GUI (now isolated to gimmicky tablets). If you actually IT at the momment, rather than post on a website blog about the IT industry you'll find yourself working more and more with web interfaces. No CLI, no native GUI. It's just how it's all going to be done. (please take away some of the CLI and crappy native interfaces I have to deal with PLEASE!).
Ultimately 80x50 inline text sucks for representing any information. Since re-flowable HTML and the hyperlink it's as obsolete as dinosaur DNA. Ultimately you can sit down to a very powerful web app or the occasional well designed GUI and start getting shit done. You don't have to read the man page or all but read the source code to use it, which I might add, man pages still don't have examples. GUI you don't learn, you just use it. Ironically, most CLI work is done from a GUI.
Have worked with CLI for years, I cut my teeth on it way back, it still helps me out but I don't delude myself that CLI is somehow magical or is in some way a superior interface it's not. It's often epic usablility and discoverabiltiy fail and completely ignores advancements in human interface over decades). I don't need that doublethink in order to cope. Admit it, it sucks. But we use it at times and we get awesome shit done.
Thats what matters.
After logging in slashdot still does not take you back to the page you were on. It's been that way for 20 years.
Nevermind the limited menu systems and the unidentifiable icons, GUIs lack any means for users to use multiple programs beyond the clipboard (mouse cut'n'paste) also available on CLIs.
For example, I type
$ du -m | sort -n | tail -69
to get the 69 largest directoriess under the current working directory (often but not always /). And something only slightly more complex to search logs for the IPs who have attacked me most. I have lots of neat one-liners like this stored in my command history ~/.bash_history and will often use one as a template for a new task.