Has the Command Line Outstayed Its Welcome?
dgharmon writes "The Command Line Interface has its uses, acknowledged Mobile Raptor blogger Roberto Lim, but no piece of technology targeted at the consumer market should ever require that something be done via CLI, he says. Keep it as an option or you can take it out all together. 'If it is there, it should just be there for the IT people or tech support to use when you encounter a problem.'"
Guy is a fucking moron. Thats all.
Mod headline -1, flamebait.
(and the summary is silly, as well—how many popular software products today actually require the end user to run terminal commands?)
How can I believe you when you tell me what I don't want to hear?
No. Fucking. Way.
A squid eating dough in a polyethylene bag is fast and bulbous, got me?
Sometimes you have to have a user ping something, telnet to something. I know it sucks and it is hard, but basic connectivity tests are what you need. /Love using AppNeta's PathView so I don't have to do this much anymore. //Just need the company to get more testing equipment.
Just a dude. Stuck in IT.
That is all.
Article = flamebait.
No sig today...
The GUI - Making easy things easier, and hard things impossible. (Seriously, there are still a lot of command line tools like sed and awk which are absolutely invaluable, with no real non-commandline alternatives)
Windows are for working with many things at once, like sorting emails into a tree of various folders. Icons are for newbies. CLI is for doing one thing (like writing code) and for doing it quickly. Icons put knowledge in the world, where the be discovered. CLI puts knowledge in the head, where it can be used quickly, efficiently, and on auo-pilot.
You can have my command line when you pry it out of my cold dead fingers!
There are some things that are easier and more intuitive in a command line terminal than through layers of menus or clusters of icons.
I think that is the key word... a rather hazy that doesn't really mean anything.
CLI isn't just for 'tech support and IT', but most users don't have much use for it. Though some people are just going to like it even if they are 'consumers', there are times where it can be a real time saver for common 'consumer' tasks. Though I do have to agree that no 'consumer' app should actually require its usage at this point.
Having worked with itnsince 1998 i am 100% behind not using cmd line for users, You see people are stupid and even if you think while doing things a majority of people do not.
The light-switch is one of the end-user interfaces for electricity in the house. The wiring behind it is better left to the experts. It's dangerous for the non-initiated to fiddle with it.
Same for the command line. Graphical user interfaces have become the de-facto end-user interface to modern computing devices, to information, to the Internet, etc. The CLI exposes some of the wiring behind it. No need for end users to mess with it or to have to understand it. It can be confusing for them or even dangerous.
The sooner software developers realize this, the better it is for everyone involved.
It may be sad that today's users are not introduced at the same level to the technology that many of us were decades ago, but that's the way things go. We don't expect to wire up our house ourselves, or build our own generators or electric engines. We shouldn't expect that a product for the masses should require in-depth knowledge or even expose an interface that is not really useful for every day users.
Why did this even make it to the home page? That door is so open you can't kick it in anymore.
-- Cheers!
*gets ready for mindless hate replies*
Look, I'm not against the command line. It's fine. And I actually would say that every program should have a command line. That said, every program should also have a GUI interface.
A serious problem in linux is that frequently you have to go to the command line to do a lot of things. You should NEVER have to go to command line.
The command line is great for people that have memorized all the commands, know exactly what they want to do, and can run the operations in their sleep. But for everyone else it's a hinderence. They have to do queries and check forums to figure out what the program is called. Then they need to look up the syntax.
It's the opposite of user friendly.
Command line is great for certain things. I Scripting especially is much easier if everything can take a command line. I wish more programs in windows for example could take a command line.
But linux especially needs to offer the GUI as the primary interface for EVERYTHING.
I know the old linux hands disagree. This is why you have adoption problems. And because you have adoption problems many companies don't write software for your OS requiring the open source community to write everything themselves. And of course hardware venders frequently don't release drivers for your OS. Fix the GUI issue and all that will change.
Quid pro quo. We're not asking for the universe here. Just the GUI as the primary interface. Keep the command line for those that prefer it. But you'll never get the adoption up so long as its the secondary interface.
I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
Taking away my CLI? That's cause for war. GUI's are for the weak/simple minded. I do not want graphs, charts, and pictures to tell me a problem may exist, I need just one line or 100's of them!
Excuse me... I'm a consumer. I use the command line all the time, because I recognize that it is far more powerful than any GUI tool that purports to serve the same purpose that I've ever seen.
The GUI is great if you only ever do what someone else happened to write a feature to allow you to do. If you ever think on your own, want to step outside those bounds, the command line is far superior. With a few simple tools piped together, you can do things easily that are highly painful and tedious with a UI.
But then, we seem to be fast becoming a species that no longer thinks for themselves, wanting everything dumbed down as far as possible.
Many times I've seen people laboriously doing something with a GUI that I can script in 15 seconds with Bash. When I show them, they are amazed.
But hey, let's take all the power user features out of our computers and make sure they are suitable ONLY for casual users and novices. That sounds like a good plan.
I can think of many reasons why the command line is still a very important part of any operating system. If, as a developer, you are worried that Joe User needs access to your tool, then make it easy for them. Rather then have the whole system cater to the computer illiterate.
The supplied quote: "but no piece of technology targeted at the consumer market should ever require something be done via CLI".
I can't agree more!!! No chance in hell the average consumer is going to want to learn a CLI. Anyone proposing a CLI for a consumer market device should be fucking fired. Hell, tons of Mac users don't know/care that you can run a CLI shell (bash).
Why is this news at all?
I invoke Betteridge's Law of Headlines here.
No.
Those of us who use the CLI on a regular basis find ourselves feeling confined on those odd occasions when we have to use Windows. With a GUI, everything is visual, but nothing can be automated or repeated. This greatly aids someone who doesn't know what they are doing, but since when did business want someone who didn't know what they were doing sitting behind a terminal?
In Windows, everything is point-and-click easy, but nothing can be automated. In UNIX, the important things have a GUI shortcut, and everything can be automated.
The society for a thought-free internet welcomes you.
Yes, those Windoze computer might just see that cmd thingamagicithinkiy when i tell them to windowskey-r-cmd-enter, but what the.
Ever heard of powershell? That thing that will be the only sane way to admin windows servers from yesterday to whenever MS changes its mind?
Obvious slashtroll is obvious
>but no piece of technology targeted at the consumer market should ever require that something be done via CLI, he says.
To my knowledge, no piece of consumer tech, in the last 15 years, has required the command line. I think Telix was the last one, and that was after ProComm went totally GUI after 95. One of my favorite editors, Aurora, was never moved over to the GUI, and remained moribund after Windows 95 - no updates, nothing.
Does *anyone* know of any consumer tech over the past 15 years that has ever required the command line to even start? I can't think of one.
That being said, there is something to like about the character based terminal for character based protocols. I find IRC to be a pain with anything other than something like irssi and screen. I also don't see any GUI based OS automation worth a damn. It's just simpler to write a bash or PowerShell script to do automated tasks than to fudge around with a GUI.
--
BMO
When we get rid of the command line AND the start button? Ahh I see where this is going. NO, it's MY computer. Piss off, monopolistic OS vendor.
Seven puppies were harmed during the making of this post.
Linux is a fragmented construct of programs, so great suggestion to get everyone to use linux. But.. get a grip on reality. There are many things that are easier to understand with the GUI but the CLI in linux is here to stay, sorry.
And if it wasn't available we would find a way to install it.
Next topic.
CLI is for writing code...?
What happens in your GUI when you have a folder with 10,000 files in it? What if you want to do something with all those files? Are you going to do it one click at a time?
No sig today...
"... but no piece of technology targeted at the consumer market should ever require that something be done via CLI, he says."
"... but no piece of technology targeted at the consumer market should ever require that something be done via soldiering iron, he says."
"... but no piece of technology targeted at the consumer market should ever require that something be done via distillation, he says."
"... but no piece of technology targeted at the consumer market should ever require that something be done via (fill in the blank), he says."
Now ask yourself what percentage of home users have ever used the command line on their phones. Or have opened up a device to re-soldier parts of it. And when was the LAST time something like that needed to be done.
Troll article is trolling. Nothing to see here.
Have you ever had automated something? This happens even in the consumer world and where the command-line comes in ;-).
Probably reacting to a flamebait i shouldn't reply to....
It should 'just work'.
For tech staff, it needs to stick around.
---- Booth was a patriot ----
"Mobile Raptor blogger Roberto Lim"
Well I'd assume raptors would be mobile, but I still have no idea why a dinosaur would be blogging, let alone why anyone would care what they thought about CLI vs anything else?
I've had situations where a site was getting 99% packet loss and the GUI was not working. Without a CLI to bounce the DS3 interface it would have required someone be sent on site. In the world of Fiber and high speed Internet people quickly forget that a CLI doesn't have to be a primary means of configuration but it can be a life saver. Not only that whomever wrote this article is clueless. Many scripts and remote management tasks can only be automated easily with a CLI.
...when you pry it from my cold, dead fingers.
Dipshit...
"Just the simple task of separating two kinds of files from a single directory, 'mkdir GIF;mkdir JPG;mv *.gif ./GIF;mv *.jpg ./JPG' and I'm done -- five seconds to accomplish that. How long would it take in a pretty looking GUI?"
Create two directories; sort by file type; drag & drop * 2... done. And it'll deal with mixed case extensions. Don't get me started about Mr. "You can't do that FTP transfer in less than 8 mouse clicks". vs 32 keystrokes. I'm not sure where his maths comes from.
They also don't go into how far you are away from destroying the world with a CLI:
sudo rm -Rf ~/bin
is one keystroke from
sudo rm -Rf ~ /bin
Or just the simple case of "cp a b c/", only you eagerly hit enter before "c/" so you blow away b with no checks.
And who knows what you get when your super awesome smart shell loop isn't escaped properly on a filename with a space, quotes or apostrophe in the name.
GUI or CLI -- do whatever you like -- but don't base your choice on the "quality" of information from the types of people in this article.
Writing command line applications are a lot easier, quicker and calling them programatically is a no brainer. It stays not because sysadmins or any kind of users, but because developers don't have to jump hurdles like GUI and IPC.
Or more specifically, a GUI whose interactions can be modeled completely by a finite state machine. Need context sensitivity? Sorry, too much computer for you.
Agreed. Just yesterday I had to change extensions for a bunch of files in a directory, and each of those files was in its own sub directory. Using a little for loop and the handy '*', everything was changed and I could continue on with my life.
The CLI is a tool like any other. Would I want to work with it as my sole means for using my computer? Most definitely not. But I couldn't image working without it, either.
"It's a trick. Get an axe."
Bwah ha ha ha! the command line is what they use in Star Trek. Its just an audio output command line with voice recognition.... I mean they even have an audio prompt sound that plays when somebody says "Computer". Without the command line how do you get the low overhead automation.. The GUI wastes too many compute cycles for those users who are actually worthy of having access to a computer!
CLI is the defacto interface for Google searches. People use it everyday and all day long. Nobody complains that it isn't intuitive.
Typing in a few keywords is not CLI. That's just data input in response to a prompt.
Using the more complex search modifiers does make it more like CLI use as you are driving behavior - but most people do not do that.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
The *menu* has mainly outstayed its welcome. For helping a lot of non-geeks with computers, I'm amazed at how they get lost in menus, and are fearful of trying stuff out. I think most apps should just propose templates to be filled, use very loud and simple screen for configuration (à la Palm), and maybe just one menu for "More..." like Android currently does.
I know there are experts out there, who like menus, keyboard shortcuts, and CLIs (I do). But most people just can't handle them.
The Cloud - because you don't care if your apps and data are up in the air.
The command line is not better or worse than a beautiful GUI. It is a whole different paradigm with a whole different purpose. I love that I can go to my mac and type nearly the exact same commands as my linux box to do the same things; xvfz is nearly one keystroke. But these are not things I would ever impose on my family.
The key (hee hee) to the command line is constancy of knowledge. Things I do now, I have done for over a decade, and hopefully will do for another decade using the same keystrokes. These tend to be dark arcane things like ssh tunnels that again I would never impose upon my family. I don't need to learn a new interface from year to year, I don't need to learn a new interface from OS to OS. Much of my Solaris knowledge is still good. One of the reasons that I fled Windows was that its command line was not consistent with my other more Unix'y knowledge. If I had to noodle a Windows box I would start poking around looking for applications and menus that conceal the things I want almost as well as a command line ever could.
To eliminate the command line from an OS that I use would be to eliminate an OS from my use.
I would have agreed with all the flamebait posts, except that the Plex Media Center team, which makes an otherwise super-user-friendly front end and back end for managing their media center, requires the use of a CLI for even basic operations like updating the library.
I will give up the command line when you pry the keyboard from my cold, dead fingers. Still, I would prefer that consumer software not require its use for common, or even uncommon but simple, tasks.
Is it just my observation, or are there way too many stupid people in the world?
There are several problems with eliminating a simple command interface. The first is that it means someone has to create a GUI for EVERY action a user might need to take no matter how obscure. And that interface needs to be changed every time a new option is added for even the most obscure command. And you need to create a menu selection so that the user can access the GUI for that command and create documentation for the user to find that menu item.
The result of all that extra work is that it will often be a lot cheaper and practical to simply not to offer the ability to do some things at all.
The command line is actually a very good interface for rarely used commands. Once someone has found the proper syntax, they can easily cut and paste it to run the command and be done. With a GUI, they will usually need instructions on navigation and its likely various choices offered by the GUI will have to be explained.
In short, the command line is a user friendly way of doing some things. Its easier to document. It doesn't change locations. It is flexible.
Oh, that's right. That's why MS is finally allowing Windows 8 Server to be administered without a GUI. In fact, according to MS, it's one of the big selling points of Win8 Server. I can finally SSH into a Windows box into of using RDP.
That's the whole point. What percentage of the light switches currently in use are NOT operated by some kind of switch?
He's advocating for something that has been solved and implemented years ago.
Yep. So he's advocating that what has already happened ... happen? How many people have used the command line on their smart phones? Already solved. Already implemented. No need to claim that it SHOULD be done.
They have realized it. They have implemented it. It is already done.
Again, already realized, designed, implemented, shipped and sold.
Been there. Done that. Ten years ago.
With a GUI, everything is visual, but nothing can be automated or repeated.
While somewhat true in Windows, OS X has the Automator, which is basically a GUI for building scripts using the OS X environment. It's quite powerful, and I often find myself using it to accomplish tasks that I normally would have written a shell script for in Linux. Given the complexity of the tasks it can accomplish, it's fairly user friendly.
On the other hand, my impression is that Automator is also vastly underused by OS X users. I think the fundamental difference between "computer people" and computer users is that if a computer person has to do the same thing more than twice, they see if they can't find a more efficient and automated way to do it... whereas computer users just sigh and resign themselves to a redundant and mindless task.
"Anyone who [rips a CD] is probably engaging in copyright infringement." - David O. Carson
'era of the gui' - false premise, too. You can have both, as it should be.
It would be great, however, if all GUI apps were designed with a client shell component and the gui just manipulated the command line part for you.
mov ah, 4ch
int 21h
abruptly aborted 299 seconds ago.
The article is right. To reach the masses you should not rely on CLI.
If informatics teachers preparing students for university use written down instructions "[Start]->[Programs]->[Application Folder X] (third item from top)->[Application X1] (second item from top)" to open applications (yes, one sheet per application) or have Google as their browsers' startpage to reach any site via Google Search, then why should one expect people to use CLI or even know about it?
You don't believe it? Such an expert lives in my house. Sorry, couldn't resist...
cb
I'll be happy when I get a CLI version of Photoshop!
Seriously, the more I get under the hood with Linux, the more I appreciate the utility of a good CLI. Then again, I date back to the days of DOS and WordPerfect....
Three Squirrels
duh
There used to be a word processor I think Borland Sprint that was sold as having every popular word processor UI so no retraining would be required for a large office.
Why not allow every UI that someone wants to use, CL unix or DOS, Win 95, OS/2, OS9, OSX, X11, whatever?
Why ever disable, ignore or exclude anything? It ADDS effort to do so.
According to Betteridge's Law of Headlines: No.
Just the other day a Linux distro decided that they want to do away with "Upgrade Kernel Without Reboot" feature of Linux
Now this guy wants to do away with CLI
Just what do they want to turn Linux into - another M$-Windows-like kludge?
While they are at it, why don't they import the "Windows registry feature" into Linux, and/or turn Linux into a proprietary closed-sourced OS??
Why can't they just leave Linux alone?
Muchas Gracias, Señor Edward Snowden !
The command line is still the preferred way to do things in some environments. Period. This is especially true in servers. In fact the next release of Windows Server supposedly has a non-GUI aka command line oriented interface by default. Linux is becoming more like Windows and vice versa. As someone else said, some command line tools offer features that just aren't available from a GUI... and again... vice versa. I say use the best tool for the job... even if it is a command line tool. I still prefer to run package managers from the command line even when there are reasonable GUI front-ends for them. The command line isn't always a failure, it's a feature.
Scott Dowdle
www.MontanaLinux.Org
I've got hundreds of reinvented one-liner (or other quick script) wheels stashed away on my computer, so was quite pleased by this quote:
having to use a whole bulldozer when you just want to reinvent the wheel slightly doesn't make any sense
I didn't think that was quite punchy enough, so thought up the following alternative phrasing:
There's no need for a bulldozer when all you need is another wheel
Ask me about repetitive DNA
sudo rm -Rf ~/bin
is one keystroke from
sudo rm -Rf ~ /bin
From the rm manpages: -i Request confirmation before attempting to remove each file, regardless of the file's permissions, or whether or not the standard input device is a terminal. The -i option overrides any previous -f options.
Or just the simple case of "cp a b c/", only you eagerly hit enter before "c/" so you blow away b with no checks.
from the mv manpages: -i Cause mv to write a prompt to standard error before moving a file that would overwrite an existing file. If the response from the standard input begins with the character `y' or `Y', the move is attempted. (The -i option overrides any previous -f or -n options.)
alias rm='rm -i'
alias mv='mv -i'
Problem Solved
Is that an article from 1985?! I would argue that at least 95% of all PC user's nowadays have never worked with a CLI, plus there should be no important CLI-only tool left for everyday tasks. If these users have to relay on CLI interfaces then you are doing it wrong.
Now, for the rest of us, stream-redirection, pipes, scripting, remote shells, etc. are just much more comfortable with a CLI.
GP
Well that depends on what's drawing the window (a smart GUI would keep the 10,000 files in memory and only bother displaying / retrieving any metadata about those actually on-screen), and what you want to do with it.
For example, P:
While I would use the CLI for this task as well*, I could just as easily use e.g. Total Commander.
1. Select the files + sub directories you want to filter in, if you just want all, skip this step.
2. Search for the extension you want to replace**
3. Feed to listbox**
4. File - Multi Rename Tool
5. In Search & Replace, fill in the Search / Replace fields.
6. Hit Start (or press enter)
* Of course, Total Commander has a CLI built-in and running console rename commands in that works just fine.
** Steps needed because multi-rename tool doesn't search in subdirs itself. If the files are in a single directory then these steps also become unnecessary.
The reason I use the CLI for this is pretty obvious - it's much faster. But it can be done in a GUI fairly well, and a more dedicated 'batch rename' utility would probably do it in less steps still.
Additionally, let's say you have all those subfolders, but there's a few that you want to exclude. Within the Total Commander GUI, all I'd need to do is de-select them. On the command line... well I'm not sure what the exclusion flags would be, actually.
So like you basically said - there's a right tool for every task and every user. GP would do well to look beyond the stock tools, though :)
If some bright idiot "somehow" takes away my headless BSD servers we are going to have a problem.
Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
The way the author drops the phrase 'the IT people or tech support' makes it obvious that this is the opinion of a non-technical pleb, or at best a Windoze admin who is scared of a shell prompt. Most Windoze admins I've worked with over the years possess an irrational fear of such, and I've seen many spend endless hours clicking through GUIs to accomplish tasks which could be completed within a few minutes of scripting for a more competent Geek. M$ have returned to such a paradigm to the extent that now there are certain tasks which can only be efficiently performed from Powershell; many operations have very dubious GUI equivalents, if any!
I understand that the CLI is not useful to the average user aside from the fact that it is the best way for IT people to fix their computers. So I don't really see why there is any reason to remove the CLI. Plus, I don't know of any server admins who'd like to waste resources by having a GUI on a headless server or any other kind of server set for that matter. The CLI has not over stayed its welcome because it remains the most efficient and thorough way to interact with a Computer. GUIs are great and all, but they still do not provide all that is necessary for full computer operation. The day that changes, then we might be able to have a conversation about their demise. Up until that point the CLI will remain, because it is needed. Its not like we are on the cusp of a massive change in the fundamentals of OS design. They are all, at their core a CLI running a GUI on top. Bidding farewell to the CLI would require a massive change in how we build our operating systems. A change that, with current technology, would be both inefficient and unnecessary.
So yes, in a nutshell I may see where his sentiment is coming from, but the proposal is currently ridiculous.
~theCzar
After years of buying that koolaid they developed powershell. The commandline will be dead and obsolete the day an OS stops needing to be programmed, configured, or managed. In other words, never..
What is this? The attack of the iZombies?
When all you have is a hammer, every problem starts to look like a thumb.
Because nobody goes barefoot.
Damn it, this really bothers me. I'm usually very careful to check my theories and hunches before I post a comment, but I really messed that one up. Now instead of modding me down, like I asked, people are modding it up. Apologies to Roberto Lim and Robin Miller, and anybody who read what I wrote but missed the AC's correction.
I want to blame the Euro soccer finals and copious amounts of alcohol, but I should know better than to drink and post.
Ah, arrogance and stupidity, all in the same package. How efficient of you. -- Londo Mollari
...is that there really is a very serious problem in Linux, when it comes to usability, and that is the near-ideological insistence that having to use the commandline is fine.
Commandlines are great, every program should have a commandline version, but if you want them to be user friendly they should have a fully functional GUI too!!!!
No reverting to CLI when encountering a problem you can't fix by other means, that is a sign of an incomplete user interface, and instantly makes an OS less usable for a wide swath of computer users, that don't have the intelligence, patience or time to figure out how to fix their problem from the commandline.
I've been meaning to get into Linux for about a decade, and I do programming for a living so I'm well capable of plowing through and getting things running smoothly if I want to, but it's such an exercise in frustration trying to get things working the way I want, and having endless little things I have to drop to CLI and google solutions for; I just don't want to waste my time screwing around like that, when I encounter such problems I think to myself "ok fuck this, I'll wait another year or two and then see if there's a new distro worth messing with".
This article may trigger a flame war of sorts, but it's a core problem with Linux that is going to prevent it from ever achieving desktop dominance for ordinary or impatient users, who like things to 'just work'; I know distros like Ubuntu and Linux Mint have come a long way, but the problem's not gone, and people need to be able to acknowledge it without turning it into a flame war.
It was called MacOS 9 (and 8, and 7, ...).
Seriously, it was a valid attempt back in the early days when a PC was a PC, but if you want to accomplish the difficult, you need flexibility.
Why do we continue to insist that users never learn anything about the computers they use?
I can click on a file and hit delete in a GUI :P
Possibly.
But you do realize that you are talking about a small segment of the Linux-using population, right? Smart phones, DVR's, etc. Those all seem to be just fine for the end-user without a command line.
And even that small segment that you described, if using Ubuntu or some other end-user-friendly distribution, would not NEED to use the command line.
The people who use the command line on Linux use it because they want the increased flexibility that it offers. With the command line they can expand the system to do more than the basic operations covered by the GUI.
Not because it is required for basic operation.
Yay. More minimalist UI experts telling us to remove everything not used by the lowest common denominator.
Back in my Amiga days, people ranted endlessly about the machines custom chips, the games, the graphics, the multimedia, and some forward-thinking people actually even mentioned the multitasking. But to me, the greatest feature of the Amiga was the seamless coexistence of the GUI and CLI in one environment, without forcing one or the other upon people. At least once OS 2.0 came out, you never needed to use the CLI unless you were messing around with public domain software. A huge number of GUI-driven applications had tons of command-line options without needing a separate executable. Granted, the Amiga's shell wasn't anywhere near as powerful as a typical UN*X terminal, but it was powerful enough for everyday use. With some exceptions, there never was a war between CLI and GUI fanatics.
I was always wondering when Windows and UN*X would get their stuff together and finally learn that the GUI and CLI don't have to be separate environments designed for totally different people. Ironically, the Mac, which always treated the CLI as evil, comes the closest today.
Are you kidding, the command prompt / terminal is REQUIRED on any system. Even if your a user that has no computer ability and no skill it is still a requirement when you ask for help. There are some problems that have no way to be fixed via GUI, any IT "professional" that claims they don't need a prompt should stay 100 meters away from all computers. The command prompt / terminal is the single most powerful computer tool there is, with out it your using a childs toy mean't for kids 0 - 3.
You don't write code in a CLI. You just happen to use the same terminal emulator that hosts your CLI to host a text editor and IDE, and that's only in the worst-case scenario where you are too much a troglodyte to even use gvim (let alone a modern IDE.)
A command line is great for lots of things. Writing code isn't one of those things.
When I upgraded from an old Mac iBook to a MacBook Pro, I mistyped the username in the Migration Assistant application. Without really thinking it through, I deleted that new user account in my new MacBook, which left thousands of orphaned files on my new machine. A few minutes of Google searching provided a single command which changed the ownership of every file owned by the deleted user over to the correct owner. Problem solved in 15 minutes. I wouldn't even want to think about how to fix a problem like that through a GUI.
"I'll die before I surrender, Tim"
I'll give you my terminal when you pry it from my cold, dead hands!
Why would you require sudo to delete your personal bin directory under your $HOME ?
Five last-minute gifts for open source fans (Dec 23, 2011)
10 Last-Minute Gift Ideas For Linux Geeks (Dec 21, 2010)
12 Ubuntu Derivatives You Should Consider (Nov 22, 2010)
Fact or Fiction? Top 8 Linux Myths Debunked (Sep 10, 2010)
Top 5 Mistakes Made by Linux First-Timers (Oct 14, 2010)
Linux Barbies Battle the Command Line (Mar 28, 2009)
I *did* cherry pick a little bit, but generally speaking, I've seen cotton candy less fluffy than this.
Don't tell try lump everyone into a group like "consumers." Figure out what the market is actually interested in then make available an array of options that makes sense.
It might be true that most consumers don't want a product that needs a command line. They don't need the flexibility and the usability gains are a good trade for it. Others have more complex needs and are willing to invest some time in learning more capable (not automatically better) tools.
This is like saying we should only market circular saws to consumers because only a professional carpenter would ever want to deal with something that gives them more options. A hammer and circular is all you need tackle some small projects around the house, and is great for many perhaps most people but some want something more.
I don't know where this idea that the consumer should *never* need to know anything about a tool to use it came from. Simple options that require nearly knowledge are good. They don't typically handle unusual use cases well however. As developer, don't assume the only thing anyone will ever want to use your product for is something you can imagine.
Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
Or just the simple case of "cp a b c/", only you eagerly hit enter before "c/" so you blow away b with no checks.
Put this in your ~/.bashrc so that an overwrite will prompt you:
alias cp='cp -i'
Works for 'mv' too. Most distros default to prompting.
Command-line-only OSs will use less memory than GUI OSs. GUI OSs are more prone to memory leaks than CLI OSs because GUI OSs continually allocate and deallocate memory, CLI OSs can use the same input buffer over and over. I think MS is finally realizing the inherent vulnerabilities of GUI OSs for server applications in their introduction of a headless version of Windows 8 Server: http://tech.slashdot.org/story/12/01/13/1455242/windows-admins-need-to-prepare-for-gui-less-server
For server applications, CLI OSs will always be my preference. http://ttylinux.com/
Lets not forget who dominates the computer scene; computer nerds.
No. Really 1000 times no. The nerds make up a very tiny minority of the computer users. The dominating force in the computer scene are people who spend all day playing on Facebook, the people who actually welcome the Ribbon Bar because it's more "user friendly".
You've made one key mistake, .... or you're just seeking job security, I don't know.... The goal of software should be that WE DON'T NEED to set up a CLI script to run grandma through a list of options. If grandma can't use her computer the way she wants without my help then the designer of the software has failed.
In another reply to me someone compared the use of awk and sed to entering functions in Excel. My reply then makes a good example here too. awk and sed will be ready for the consumer when a window pops up giving the user a searchable list of software functions, guides the user through entering the arguments with extensive help, and when you balls it up fixes the function for you.
A consumer should NEVER need to access a CLI. If they do then the software developer has failed, or they are a power user like most of the Slashdot posters here who like yourself are getting very defensive at the prospect that computers should be usable by untrained monkeys.
It's a matter of economics. If a very small percent of users/customers is going to need to change something, then it does not make economic sense to create a GUI for those few.
Further, one cannot anticipate all customer needs or future tweak needs, such as an OS version that doesn't exist at the time of app writing. You cannot predict what a future OS will do different.
And you don't want to make a GUI up-front for everything, because there are some things you don't want the customer fiddling with under normal circumstances.
Table-ized A.I.
please remind us where the word 'prompt' comes from... the 'bash prompt' or 'shell prompt'.
you type 'key words' into it and get responses.
why does it work? because its an anlogue of verbal communication. .. which humans have been doing for 10,000+ years.
as opposed to 'poking square things that look like candy' which humans have been doing for 20 years.
Considering one of the focus areas of recent MS endeavours is to provide a richer baked-in shell (powershell), OSX has the same CLI credentials as the rest of the *nix world, it's silly at this point to say CLI is dead or dying.
I understand the sentiment that nothing should 'require' a GUI, but that's actually a pretty poor sentiment that can lead to an atrocious GUI experience. What you want is a clean GUI that enables what most of your users have to cope with. The CLI in a sense is freeing for the GUI developers. If you have advanced capability that is rarely going to be used by a small portion of the population, you can make it CLI only and keep the GUI clean. Similarly, there are some things the CLI just inherently does better, and any attempts to cater to some of those use cases in GUI is similarly going to ruin the GUI for the things that it currently does well.
I have dealt with software that held the philosophy of 'must provide all function and do it via GUI because CLI is dead'. The GUI had a labyrinth of menus and UI elements. Any attempt to do the most simple tasks prompted a 'wizard', to cover the 'well, 99% of the time, what you wanted to do was obvious, but to cover the corner cases, we are going to force you down a wizard that wants to make sure you want to do it now instead of later, when later you might want to do it, do you want to repeatedly do this same thing, while you are here, are there other things you want me to do this for, occasionally it might make sense for this to be combined with another usually unrelated task, do you want to do that this time? The data that will be processed, would you like the data exported for consumption elsewhere or thrown away?'. While it may be argued this particular piece of software was poorly designed and maybe it could've been done better, if you are trying to cater to all those scenarios trying to be *competitive* with a CLI strategy there aren't a lot of ways really to do that...
XML is like violence. If it doesn't solve the problem, use more.
since 99.9% of users will not have the permissions to start up an access database, and the "IT crew" will be too busy / underfunded to help them, they will revert to sharing Excel files on sharepoint.
furthermore, since the vast majority of people in these corporations have never been trained in database stuff, and the company will not pay to train them, excel is something that is essentially something 'anyone can use' the basic features of and still kind of understand whats happening without much training.
Without the CLI, how are you going to script anything in proprietary apps? Surely this is trollbait, otherwise this guy is a complete idiot.
Just as Micro$oft is moving more to command line. Anyone played with Exchange 2010, lots of typing there. The core version of server 2k8 and supposedly the next version of server will be non graphical. Figures, Windoz playing catchup!
If you really insist:
sudo cp /dev/sda1 /dev/sda
When all you have is a hammer, every problem starts to look like a thumb.
What? You mean, what? Uh, well... yeah... what?
This signature intentionally left blank.
slashdot stop pushing me away from this site ive been a daily visitor to for the last 11 years of my life!!
People used DOS forever. Was it intuitive? Sure, after you learned a few things. No one needed to know the ins and outs of DOS to be productive, but before the Mac and Windows, mainstream computing (used by businesses, sold to kids from Atari/Commodore, etc.) was a command line interface. I forget who said it, but it is still appropriate: "The only intuitive interface is the nipple. All other interfaces are learned." We can teach command line to new users just as easy as we can a mouse/touchscreen. It isn't about what's more difficult. It's about what we bother to teach the up-and-coming future users...
It's nice that there is a Graphical interface to computing, but it should never be at the expense of the command line. In other words, there should never be an arbitrary "One True Way" to do something with a computer. If someone wants to ignore the command line, that is their choice. Removing it altogether or making it just an afterthought is what the DOS prompt is for Windows XP (and yet, the Powershell is Microsoft's answer to "not everything can be done graphically.")
This reminds me of the desire to eliminate writing since we do lots of communication via computers. That's dumb to a fault, and I think the mentality of a command line being some sort of anachronism is just as dumb.
It's not about being a relic, nor is it about being stuck in the past. It's about being a useful device for everyone. I think we're moving the wrong way by creating the "One True Way" in Tablets and other devices. Just like Oracle (and others) tried to kill the PC a while ago (Ellison's famous "No PC will be below $500")... the industry wants to take the power out of the hands of the user. They're like pushers. They gave the ordinary user power, but now that is cramping their plans. Removing the command line isn't about progress. It is about removing power from the user.
It's the Stay-Puft Marshmallow Man.
you type 'key words' into it and get responses.
In search you are not typing in "key words". You are typing in ARBITRARY PHRASES, and hitting back fuzzy results based on input.
A shell has very precise and well-defined answer to any input. A program being executed by the shell might not, but the shell itself does.
Also to really be a CLI Google would have to be wholly keyboard driven, but again most people use the most to select results.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
If you're doing one thing with 10,000 files, CLI is most efficient, if you know what you're doing. If you're using a dozen different tools on eight different fifiles, a GUI toolbox comes in handy. A CLI basically shows one thing at a time. GUIs were invented primarily for multitasking - for using multiple windows at onc, copying and pasting between them, etc. CLI to focus on editing ONE text file - windows to copy and paste between many files, or otherwise handle multiple DIFFERENT objects. (A group of 10,000 files, processed as a group , is ONE group, ONE object, and good for CLI.)
No, not no, but MF'ing hell no. I hope that clears this up. The CLI is VERY powerful. If you want GUIs, fine, I have no problem with GUIs. But CLIs give power to those who want it, and it should never be taken way. Full stop.
Hello,
One thing I haven't seen mentioned about this particular mole hill is that it was uttered by someone who runs a blog dedicated to small form-factor devices like smart phones and tablets.
Given that typing anything of length on such devices is painful, it is unsurprising that he is denigrating the command line interface. It simply doesn't fit in his worldview.
Regards,
Aryeh Goretsky
Dexter is a good dog.
LOL, obviously no. I'm also reminded of all the graphical programming languages. Sooner or later you end up with textboxes in those languages. It's text that got blown to smithereens, scattered all over, and surrounded by pretty colors. It's actually harder to look at than a line of text. Saying that CLI should go away is like saying that English should be replaced with something based on Ikea furniture assembly instructions. No more simple English for pilots. They'll transmit a picture of an airplane angled towards an iconic cloud with lightning coming out of it, and maybe a number underneath. You'll figure out that you're supposed to come to a new heading to avoid weather. Or descend? Or that the cloud server is out again and you're on your own. Or that you're supposed to put a drop of glue on that little dowel and stick it into the console. Something. Oh crap... it's off the RADAR, what happened?
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
I have actual been transitioning back to the command-line user interface over the past year with the exception of on my smartphone and tablet, though it is still possible to use the CLI on the smartphone and tablet for remote access to the servers.
I teach college students, and almost all of them are hopeless at programming. This is at least partly because they have never seen a CLI. I'd like to see more CLI used (yes, required!) not less.
When you sudo it from from my cold, dead hands.
That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
I really do not see where any changes are required.
Look 90% of the consumer markets time on a pc is spent fucking around with facebook, twitter, click ville, pinterest shit like that. Guess what there is your point and click interface for linux. Linux owns the frigging desktop, a consumer os is nothing more than a launch platform for a web browser. Linux flat out powers the internet thus it already owns the desktop.
Got Code?
If the article is really trying to ask whether or not the command line has "outstayed its welcome", the case of user support is irrelevant and not useful for arguing the case one way or the other. Some users will always have a use for the command line - I for one use it all the time, in both windows and *nix. Just because Joe consumer doesn't use it doesn't mean it isn't "welcome" at all. Feel free to make it less obvious for regular users, but this case doesn't do diddly towards an argument for abolishing it entirely.
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
The reason that the command line survives is that it is a model of the way that humans communicate abstract concepts - primarily using language, not using pictures. Yes, there are plenty of examples where a picture is worth a thousand words. For many applications (such as one-off editing of a photograph) a GUI makes a lot of sense. But there's no need to rip out the language facility from the user interface!
If you were going to criticize the command line interface, it would be to criticize the poor "grammatical constructions" (the inconsistent syntax and quoting methods), and the poor "semantics" (difficult to remember option codes, hard to access manuals). But these are arguments for improving the command line interface, not for discarding it. The prime reason that puts people off using the command line interface is that there are no hints as to what to type next, no feedback. It is a problem we should address.
A graphical interface is quite poor for some things, for example "do this a thousand times". The problem isn't the "thousand times"; easy enough to have a GUI element that handles it. The problem is the denotation "this", an abstraction that is hard to visualize. At best, you represent "this" as a macro sequence of GUI actions, but that is only a single level of abstraction with no parameterization. A command line interface can handle such abstractions with ease.
Actually the GUI-fication of Windows Server was one of the many reasons Windows based networks are so insecure and poorly configured. It creates this notion that any "kid" can configure a Windows Active Directory Domain, and small to medium sized (and sometimes larger) companies hired amateurs to save a buck. I met some pretty bad sysadmins in the last 20 years of my life, who left a horrible mess wherever they lay their hands.
Not to mention that the GUI kept changing every year, because that's just how Microsoft does stuff; anything you learn becomes obsolete a year later. They are very volatile like that. This is not so in the Unix world, where API's and tools are kept minimalistic, are cleverly crafted, slowly improved upon, with stable releases coming out every few years instead of betas coming out every month. Indeed, history shows that a Unix person retains his knowledge for decades. Show me one Windows person who can say that what he learned about Windows 2000 Server is still useful?
Enough with the Microsoft Bashing, here's one product I actually liked that took the CLI forward: Splunk. They took the CLI and put it in a Web browser! Splunk is basically a data collection tool that pipes everything through whatever you type into the web based "CLI" prompt, with the basic function being a combination of "grep", sed, awk, with powerful regular expressions, etc.
The beauty of it is that you can take your piped processes, and save them as a "View", and you can even create charts based on the resulting data. The result is a Unix admin's dream dashboard into the depths of his IT environment. I seriously recommend any Unix head look into that technology, especially considering the product has a free version (the free edition removes some "enterprise" features, but for many applications you won't miss those features at all).
I also like the combined approach: UI tools that produce either scripts or configuration files that you can read and understand and modify manually if you wish. Make a change in the configuration file? It will register in the UI. Made a change through the UI? It will register in the files and scripts. You get the best of both worlds this way.
All those moments will be lost in time, like tears in rain... time... to... die...
Ubuntu was supposed to be really user friendly and hand-holdy compared to other versions of Linux but I tried it anyway. I attempted to install Java to turn it into a Runescape machine (it was a while ago lol) and it took over a dozen hand-typed, 50+ character commands in the command line to run it properly. A single right click and run as root function would have made all the files execute properly, all the libraries register, etc.
I do find ipconfig and chkdsk commands and their resulting output the fastest and most helpful compared to a UI but that's because they're short commands. So I vote no to endless pointless typing of impossible to remember file paths and stuff and yes to short and quick text commands that do simple things. They're just faster.
Subject: Fucking moron journalist. And guy is a she.
Try to start your comment in the comment section. The subject line is for subjects. You're badly, sadly wrong, because the GP was referring to Roberto Lim, the blogger who is quoted by Katherine Noyes in this particular episode of her Linux Blog Safari. Hilariously, pretty much every point raised in this slashdot discussion has already been raised in the fine article, which suggests that it's not very fluffy at all. Perhaps you're just jealous that she built a bullpen of bloggers she can query and get publicity as a result before you did. I also note that you didn't cherry pick a little bit, you cherry picked a hell of a lot. The majority of Linux Blog Safari articles are on current events. I know, because I usually contribute to them.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Because sometimes, the car doesn't fit and you gots to walk.
All that Chrome does is move the problem somewhere else.
Exactly like a VT102, an X Term or a Windows RDP Client.
If all a user needs is a preconfigured system administered by someone else, a remote desktop is a good solution to support. But they are not without their own problems either.
At work my users are on fat clients with network homes though because it outperforms any remote display tech I have ever seen. They rarely need a command line though. However I wouldn't dream of creating that environment for them without one though.
That said, there are a few places where I haven't bothered to totally automate away the CLI. Have yet to encounter a user who can't click the icon in the GNOME menu to open a terminal and type a simple command. Yea if there are options beyond a filename or wierd punctuation all bets are off for most of them so they will probably never become bash jockeys. That is why I automate just about anything. On the other hand we have some stalwarts who learned vi on SCO Xenix before I came and they still turn to vim for some things, something I of course encourage and ensure works.
Democrat delenda est
Apart from browsing, email, music and RSS.. (which I know I could do on CLI), I use the command line for pretty much everything else. I do remote management, package management, programming, file management and text editing through the command line. If for some reason your GUI crashes (irrecoverably), your really only option without booting would be logging into a virtual console and editing or checking logs as to the cause and possible repair. I find it difficult to understand how someone with the GUI crashed or hung could (without a reboot) properly deal with it.
Why is it there are some who feel there has to be 'One or the Other !" Both have a function and have clearly got some positives and some negatives about them.
"no piece of technology targeted at the consumer market should ever require that something be done via CLI,"
No piece of technology targeted at the consumer market should ever be allowed to do anything that isnt force fed.
I always wanted to see a good graphical MUD. If we obsolete the CLI, sometime after the chaos and riots in the IT industry someone will make a non-CLI MUD, which, I can play when I'm drunk!
But unfortunately for drunk me, the CLI isn't going anywhere, when "Scripting" turns into "Automated Systems Function Management App" that I create with a point and click interface, I will say I'm too old for computers.
OP has a fundamental lack of understanding on how technology works I guess
I'm not signing anything
...scripting
but only when a better alternative then the keyboard comes by. Speech recognition still isn't perfect and not good enough for coding, spread sheets, etc.
Until an input method comes by which makes me want to ditch the keyboard, I'll stick with the keyboard.
To be able to compete with the keyboard the device will have to:
1) Allow individual characters to be entered.
2) Allow for a high enough input rate, while giving access to as much as possible characters.
3) Have a reasonably low learning curve (lower then or equal to the keyboard).
with a commandline - one needs a root-kit
with a GUI - one needs an App
Yes, but words are something that we are very good at.
If a GUI were made complex enough to be as flexible as the commandline, then people would have to remember just as many GUI options as commandline options.
But there's a difference. Humans are pre-wired to remember tens to hundreds of thousands of words trivially, without thinking. In contrast, we're not wired at all to remember many spatial locations, which is why complex GUIs are an utter nightmare to us.
CLIs match our brain and memory capabilities perfectly, at least when readable words are used as option names. Those who want to do away with the commandline don't realize that they're asking for it to be replaced by something that would be far, far worse.
"The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
Dear Smart People, please make it all go away
If you don't like using the CLI, then don't use it. For me, its (for most things) much faster than clicking on a menu. Certainly for administering the system, its trillions of times more efficient than finding something through a menu, clicking on something, having something else open up, then clicking on somethi1000030 bytesng else, and fiddling with some user interface and then only getting about 1/3 of what I really want. If I'm searching for something, gui's sometimes make it easier to find something than just text. Sometimes text is easier and faster. When I'm trying to move 3000 files, which start with either duv or clt (upper or lower case), and want to make sure that each file is moved to a remote drive with correct checksum before deleting it locally, plus generate a log file of any of those files thats over 1000030 bytes, but smaller than 1000048 bytes, and if its within the range move it to a 2nd destination (again with checksum), but the log written to a different log file, and have it automatically run every night at 2:45 in the morning, except on nights with a full moon, I can do that easily with a CLI, and not possible with any kind of GUI. There are a hundred billion different scenerios like that which I can accomplish with a CLI, which I can give to the computer and say 'you do it for me' and it will. And with a GUI, I'm stuck sitting there at 2:45 AM, bleery eyed. There are no GUI's that allow that kind of functionality. Here is the short answer. A picture is worth 1000 words. You can't replace 1000 words with one picture (or icon). You can do a whole lot with a CLI that doesn't use 1000 words, or even 100, or even 10. Unless you want millions of icons to try and replace that functionality, you have to use a CLI. Oh, and you have to then try and keep track of which icon does what.
Why is it that we spend years teaching people how to read and write, and suddenly when it comes to computers, they are unable to express their wishes in writing? Every educated person is expected to understand pen and paper, but a simple CLI is too difficult? We spend years and years teaching them math, but a CLI is too difficult? This is really pathetic!
The best statement of this sad state of affairs is by Eben Moglen:
"What I saw in the Xerox PARC technology was the caveman interface, you point
and you grunt. A massive winding down, regressing away from language, in
order to address the technological nervousness of the user. Users wanted to
be infantilized, to return to a pre-linguistic condition in the using of
computers, and the Xerox PARC technology's primary advantage was that it
allowed users to address computers in a pre-linguistic way. This was to my
mind a terribly socially retrograde thing to do, and I have not changed my
mind about that."
I completely agree with that sentiment. Educated, mature people need to be able to use and understand a command line. And they are. Denying them that empowerment is just unethical.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
1. A command line interface for everything the program is supposed to do.
2. A GUI interface that scripts and engages the command line for every button you press
Thus the program is forced to adapt to both requirements, and is scriptable as well as having an easy interface. Also helps in debugging.
Starbucks, Harbuckle of Breath.
Believing that any linguistically rich environment for interaction between people and computers will be commercially unpopular, the designers of operating systems want u s to live in an infant's world. They show you pretty pictures, and in order to communicate you point at the appropriate picture and grunt.
The most important accomplishment of humanity is language, it is the single most important invention. Without language we would not have culture or technology. But here we are, trying to eliminate language from computer and replacing it with hieroglyphs and symbols.
The only problem with the CLI is the illiteracy fostered by Windows and the still prevailing inconvenience of the DOS like command prompt. Some people think that if there is no GUI for a problem, there is no solution at all. Most people do not even know that you can actually tell a computer what to do instead of clicking on abstract symbols. We humans tell other humans all the time what to do. We left runes and hieroglyphs and symbols millenia ego, but if you tell people you can actually tell a computer what to do they will not known what you mean.
What is so difficult to tell the computer to "find . MyFile" or "whereis firefox" or to "reboot", or to print the current "date"? Or to "sleep 5m && reboot"? or to "wget http://some.server/some.file && poweroff"?
If you tell me, you have to remember the commands, then I have news for you: humans are very good in remember commands (aka words). We remember at least 10,000 words for everyday usage and if you speak multiple languages, that number can go pretty high. So why do you think the CLI is only for "geeks" and a regular user should not use the CLI at all? Is it because you think of "regular" users are stupid and can't learn anything? I watched flight travel agents and McDonalds workers use the CLI all the time. Or is it more that the dominant operating system on desktops have a horrible command line interface?
http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
When the question is so stupid? We'll have a command line on glass for fsm's sake.
"It's a doughnut stuffed with M&M's. That way when you finish the doughnut, you don't have to eat any M&M's."
I see a lot of comments here "I have to memorize all the commands to use the command line", and I have to agree - it's a steep learning curve, and a bit like Zork if you've never used the CLI before. A GUI, on the other hand, someone can pick up an entirely new application and quickly start figuring out how it's used.
My question is, why have UNIX command lines been so static, and not benefited from improvements to text inputs that IDE's have had, namely autocompletion? And I'm not talking about "ESC" autocomplete, that finishes a file name, but instead the "list" of options as one types.
I'm sure the terminal/SSH would not be compatible with this style input, but why doesn't someone build a new protocol that is?
The best path will always be a mix of both interfaces. GUI for common tasks and everyday use. CLI for tweeking and tasks that would otherwise require navigating a maze of menus to implement in a GUI.
Exactly, Apple managed to create a fairly useful environment without any CLI. (not counting the script-like MPW for developers). This went on for decades and really there was not much to complain about. When NeXTStep was recycled into OSX we saw a return to command-line stronger than ever. Now you might argue that most users don't use Terminal.app, but given the search hits on doing various tricks and fixes on OSX I suspect a lot of folks are doing cut-and-paste CLI.
iOS doesn't offer a CLI, maybe this CLI madness at Apple will start and end at OSX.
A Linux environment that offes no CLI is theoertically possible, but the influence of power users is just too strong for such an effort to gain much support.
“Common sense is not so common.” — Voltaire
One of the main indignities of old age is that young people regard all old people as the same, we don't see them as protagonists in their own right. It's tragic, because not all grandmothers are created equal, and don't wish to be regarded as such.
Seriously, you're making the disciples of Roland Barthes look good, and that isn't easy. I suppose what grandma wants is a technological experience devoid of human interaction.
Grandma goes to the store to buy a lb of hamburger. Let's not tell her about genetic engineering or bovine growth hormone, or heaven forbid, pink slime at the drive through. She doesn't want to know.
Grandma logs onto Facebook to check out her grandchild. Let's not tell her about privacy settings, or phishing, or heaven forbid, sexting. She doesn't want to know.
This magically disappearing technological shim you're so fond of doesn't exist. There are many magic rings in this world, Grandma Baggins, and none of them should be used lightly.
The entire GUI vs. CLI vs. speech recognition argument is hogwash. The developer should use the interface they most enjoy implementing, and the users should be properly trained on how to use it regardless of the format. The training is what is really lacking in all software these days, and the exponential growth in mobile games has shown that there is really only one way to effectively train the masses: forced tutorial levels. People wouldn't complain about the difficulty of finding the privacy settings on Facebook if all of the profile settings were hidden from them until they made their first few dozen posts and learned how to add 50 friends.
How else can you explain the fact that millions of people today can kill pigs with flying birds, when just a few years ago the entire population with experience slingshotting birds did not number more than a few hundred?
There are somethings like scripts which work best on the command line. it allows power users and experts to navigate a system quicker, and execute any command at any time. a real command line also doubles as a scripting platform, like bash or ksh. While a modern GUI based operating system should have all features available via point and click, it should also feature a command line with scripting capability for the experts and power users.
Then we have remote access, with servers, not haivng a GUI saves CPU time, and makes managing multiple connections to multiple servers easier and far more effecient.
"iOS doesn't offer a CLI"
but there is a xterm + bash + gnu utils ports and people DO use it once they've jailbroken their phones. Apple doesn't exactly cater to the type who'd care about a CLI anyway. I don't think android comes with CLIs stock.
The only embedded OS that came with a CLI I can think of is maemo on the nokia n900. But that wasn't an "everybody" phone, but a niche phone for geeks and hackers(you know the experts and power users who like the CLI). The geeks and hackers are numerically few, but they are by far the most productive users, writing apps, submitting buxfixes, testing the limits of the OS, etc...
The same retards have been saying the command line is obsolete for the last 20 years and they've all been wrong, then and now. It will be obsolete only once keybords are. It will be obsolete when computers are programmed without typed code.
My hypothesis is that those people previously worked inside the Windows ecosystem. There complexity is a treasured asset. The more complex a system is the better it seems to be. That's the Windows philosophy.
The Unix philosophy is different. Everything should be as simple and elegant as possible. Data should be stored in text format, whenever possible.
If you want to see a typical Windows way of solving a problem. Look at OPC. The OLE for Process Control. Essentially that's a way to communicate with an object storage system. Networking is done via DCOM. Even trivial things become complex.
Once, you could link all your test equipment to a GPIB bus, and control them all via TCL. The syntax would have been pretty much as you described. Not sure if that's still doable with modern equipment.
I just spent some quality time with an oscilloscope, debugging instrumentation for an aircraft. I can't tell you how much I enjoy waiting for Windows XP to boot up, then starting the scope "application", before I can look at a frelling signal trace.
With a decent command line you can simply do all the things people do on Excel databases in simple text files and shell scripts. And since that's all open source and uses open formats, changing to something better is trivial. Or you can simply add a different frontend.
If you have less than 100k datasets in your database, linear search is still acceptable.
I don't know many consumer products that MAKE the user go to the shell. Linux or Unix sure - def a playground for bash, but I know a few people that have never used bash that run Linux, albeit terribly. So I really don't understand what the issue is here? If you pay 250$ for a droid tab or 600$ for an iTab do you need to use command line? No. If you wanna program something - yes. .wav extension?
So just make sure it's there. I don't want to have to go to the manufacturer to be able to use the shell if I need it, and there aren't enough icons to replace the shell - what icon do you have for delete all files older than 3650 days with the
The only reason I was able to switch from Linux to OS/X on my desktop is exactly because it has a decent command-line.
From a customer support perspective I can tell you it's significantly easier to support an OS/X user than a Windows user as well. Why? Because I can send someone a string of commands and the can copy&paste the result back to. On Windows you have to enter each command one, often can't find a suitable command and, probably the worst, it's non-trivial for a regular use to copy&paste the output.
Probably the best troubleshooting technique ever, aside from this classic:
...yeah, you need to turn it on... uh, the button turns it on... yeah, you do know how a button works don't you? No, not on clothes."
"Hello, IT. Have you tried turning it off and on again? Uh... okay, well, the button on the side, is it glowing?
If you want a clown suit to do the job in a 'pretty' manner, then by all means stick with the GUI, any GUI. But if you don't want all the crap wrapped up in the clown suit; the delays, the errors. You know, the stuff standing between you and the job. If 'getting it done' is important, use the Command Lune.
Gates doesn't call it DOS anymore, but if it waddles like a duck and quacks when doing so. It's a duck. All that other stuff, is Bozo the Clown getting in the way.
Actually you can type editor on most unixoid systems, and get to your pre-set editor.
If you mistype something, you'll get a prompt "command not found, did you mean perhaps x?".
If you press tab twice you'll get a list of all options, etc.
Wouldn't it be awesome to have the ability to display images in the console? For example, I could type "look niceboobs.jpeg" and it would display a thumbnail of the image right below the prompt.
What most of you have no clue about, is that your habbits with your less than 1% market share of an OS, are in the less than 5% share of computers users. There is no desire at all from the 95% to have a command line, 0, none, nadda. got it? The reasons you think it should be there, are totally unwelcomed by the 95%. Companies that are in business to make money care about these things. ANY application written today, for a command line, is worthless crap to 95% of the market. Any time spent developing a command line application is wasted unless you are specifically targeting IT admins or developers, and to be real, many of us don't want your command line crap either.. Your grandmother now uses a computer - go explain a Java command line to start a program to her. See that funny stare you got?
Step one to making linux more popular and accepted; get a clue.
slashdot troll = you make a compelling argument I do not like the implications of.
Really? Is that the best anti-CLI example you can come up with? This is not even an edge case; in the days of dynamically generated /dev nodes, it is completely unnecessary to copy device nodes.
Mart
"I know I will be modded down for this": where's the option '-1, Asking for it'?
If the CLI really is dead, we can look forward to communicating via grunts & pointing.
Think of it like engaging a dialog with a computer -vs- pointing and clicking your way around. A dialog feels natural & normal.
One does not point and click on someone while asking for directions, you don't double click your barber for a haircut and if the cashier attempted to drag & drop me into their cash register, well.. how would you react to that?
Given the choice, I believe most people would prefer not to operate their machines the way toddlers communicate.
When I've shown people the command line, explaining it was like a dialog, they often enjoy it.
Seems that's what this blogger is saying. I am a consumer, we all are, and I happen to love the CLI.
assignment != equality != identity
Not exactly easy to do for income forms. On the other side, cash registers do a pretty good job. I've had cashiers tell me with a straight face "€50" for a handful of small articles. What did they go to school for? That's why we got scanner cash registers. Even with those, I had cashiers have a double take and check the item list without prompting. The equivalent for the anti-command line stance would be to disallow that sort of control.
Not everyone is stupid. While there is something to be said for not wasting intelligence on stupid tasks, making it impossible to even apply intelligence means that in the long run, not enough intelligent people will be around to implement interfaces for the dumb.
The idea behind "smooth" user interfaces is that they are setting your intelligence free for unspecified more important tasks. The end result is similar to an employer setting an employee free for unspecified more important tasks. The probability that you are actually improving its prospects by such a step is limited.
I use it every day! Why build a GUI when all that I want is to see the first few lines of a file, or find all of the lines containing specific text. It's what I do more then I want. when I just need to automate a simple task, my Bash shell is there for me.
There was an unknown error in the submission.
Almost as good as a Control Panel option: add this to your system.ini
MessageBackColor=D
MessageTextColor=C
That should give you bright red on bright magenta, which is as close as you get to Power Ranger status.
Who cares what some uninformed nobody has to say.
Useless flamebait article is useless.
Get a clue, person. That does not copy a device node. I would suggest you avoid doing anything sudo because you're a hazard.
When all you have is a hammer, every problem starts to look like a thumb.
Love the broken link in the 'Keep It as an Option' section.
Seems that whether the author's using a GUI or a CLI he's not very good at it.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Awww. I point out the idiocy of your example, and all you can do is complain about a minor semantic issue. Want some cheese with that whine?
Your example is idiotic regardless whether or not cp copies the device node itself or the contents of it. Period. And your over the top histrionics when this is pointed out paint you as the moron.
Mart
"I know I will be modded down for this": where's the option '-1, Asking for it'?
All you did is point out that you're an idiot. Care to continue?
When all you have is a hammer, every problem starts to look like a thumb.
... when you take it from my cold dead hands.
Comment removed based on user account deletion
What?? That "crusty old relic" is the backbone of almost every GUI ever. The "command line" is just a convenient wrapper around the system() and exec() calls that programs use no matter what kind of interface they have. This is stupid. I can't believe I'm reading this stupid stupid. How can stupid so stupidly stupid the stupid stupid??
Slow story day, /.? This flamebait is a lot like saying "right, we've got street signs, now let's get rid of speech - noone needs to ask directions!"
It's in a similar category to the regular "let's stop using X" arguments, and tends to come from an ignorance of what is being dissed. For a basic understanding of what a CLI is, I suggest The Command Line - The Best Newbie Interface?.
Its the old pointy click interface that is endangered. The command line is coming back because language is a fundamentally more powerful paradigm. Its just that the input device is switching from keyboard to voice.
http://rareformnewmedia.com/
Comment removed based on user account deletion
The command line is just another user interface. You are not "closer" to the machine with the command line. In todays Linux systems you have access to a wide set of tools with lots of options. Graphical user interface have less of those options, but in the end they are all programs running in one or more process and thread using the same systems API and the same libc.
The advantage is, that CLI can run on more degraded or misconfigured hardware, as hardware and kernel are designed that way, that they support a tty before they support 3D color graphics. In future it could come to the end that we do not have a merely textual interface to communicate with the system. If you can do everything graphical, so be it.
Right now we use hierarchical fle systems, but it might be wise to switch to set based systems in future, as they support tags and "semantic information" (e.g. relationships and attributes) more easily than the old system. That will make hierarchical systems not closer to the system even though today they are, as the tag stuff is simulated on top of hierarchical file systems.
The CLI isn't dead on MS Windows 7 either, and in fact it's far more annoying there with the worst of both worlds. I've just had to open a command line, run "secpol.msc" then hunt through an enourmous registry style tree structure (not many banches but a huge number of leaves with very long names), just to map a fucking network drive from another MS Windows machine after the unasked for install of some HP "security" shit broke things for the user. There is no way to get to that point from the START menu or even a search. The CLI is still a part of the system that it cannot do without because in some cases it's just built that way and we have to take it if we like it or not.
So the guy that calls us all ignorant is telling us that commands in a shell are doing things on an OS level instead of an application level?
Sorry, the GP example of google stands instead of your embarrassing revalation of using examples where you are out of your depth above.
A proper command line such as the bash shell and all the associated tools is the most powerful, productive and precise way to administer a computer. Of couse, it requires considerable skills to be able to use it. Only the self-trained crap admins of the Windows world might believe in a GUI to administer computers
"end users" should have an iphone-style interface. The control panel is already much too complicated for them.
Of cause it should not *require* something to be done via CLI. But the CLI is there to be able to automate things, do things remotely and.... fudge! Preaching to the choir here, ain't I?
poke at the "download" item in the "file" menu
I personally type much faster than I mouse, so I also prefer command lines for productivity reasons.
Same here, I first bought a PC as a Wordprocessor
"There is such a desire by the elites to make personal computers just a shopping interface." - brilliantly put.
Really. Who says that something you can do on the command line should only be possible on the command line?
Nobody, that's who.
However, this guy wants things you can't do in a GUI to be impossible on the command line.
How does he think this helps?
Yes.
OP: Who says a single command line utility need to do that?
You: You did, when you asked if Irfanview can uuencode and post to usenet.
You even quoted him.
Dipshit.
Can you say "Reliable Repeatable Process"? Don't hand me a GUI when reliability and repeatability are required.
Really? You cannot do better than "I know what you are..."?
Here's a cookie kid. Now go play, it's a nice day outside, and leave the adults to their conversation.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
The English grammar has its uses, acknowledged Stationary Raptor blogger Limberto Rob, but no piece of social life targeted at the consumer market should ever require that something be done via full sentences, he says. Keep it as an option or you can take it out all together. 'If it is there, it should just be there for the linguists or anglicists to use when you encounter a book or a newspaper.'"
CLI is for doing one thing...
screen and tmux come to mind.
Lim is using a fallacious argument known as argumentum ex silentio, or appeal to ignorance: Lim is unaware or ignorant of the reasons for a command line to exist, therefore, command line has no reason to exist. Here's another example of the appeal to ignorance fallacy:
Using a lawyer evokes a sense of pride, so I expect to get flamed by the members of your bar, but I have to admit, I usually wind up following instructions from an attorney without fully understanding their import. Lawyers don't make any sense to me, so lawyers are unnecessary.
Here hairyfeet is employing half truths or suppressed evidence --a statement intended to deceive that conveniently omits the facts necessary for an accurate description.
Here hairyfeet cleverly combines half truths with observational selection, which is similar to confirmation bias, as he points out unfavorable circumstances while ignoring the favorable.
Spectacularly, hairyfeet ends his nonsensical rant with a blatant non sequitur, as his wildly inaccurate conclusion does not follow from any legitimate established premises, nor even his own prejudicial opinion. Hairyfeet's reasoning is flawed beginning to end. Apparently, in hairyfeet's world, computer servers are not what they are because they serve the requests of client computers or programs, but they are servers because the type of their human interface is not used for anything often. Let me see if I can construct a similar example of hairyfeet's flawed argument:
There are only TWO reasons to write a blog -- boredom and conceit -- and how many readers or editors require writing blogs or repeating the same editorial constantly? That would be pretty much none, which is why I say as long as a blog is the dominant way to do anything on a webpage, it is a bad habit indicative of narcissistic compulsion and neither a legitimate profession nor a constructive use of free time.
The Admin and the Engineer
back on Fortune 5000ia, where most people actually work, things dont operate like that.
Every interface has an input and response
Graphical as well as commandline
The only difference is the encoding
2-dimensional and binary based
or one-dimensional and ascii-based (~ base 128)
What do Firefox, Windows 8, the Ribbon, Unity, Gnome 3 all have in common? Random change for no real purpose. If any of these were changing to improve, it would be one thing, but this is just change for no reason. It's like innovation has stopped and no one can think of anything to do with a computer, so they have to justify their own existence by changing things for no reason. Every time a change is made, it's to the detriment of people trying to get their work done. I mean, what possible reason could FireFox have for shuffling the menus and changing where items have been for almost a decade?
Now, let's remove the command line! Why? No reason, just random change.
Next, your monitor will reverse its colors every 30 minutes. Why? Random change. Some usability expert will say this increases productivity.
CL will always be needed for the really technical stuff, but if nothing goes wrong, a normal user would never have to use the CL (in windows/Mac, on LInux you can't do much without it (at least I've had to use it for a lot of stuff just to do some simple things)..
We need more illiterate, incompetent morons on the Teh Intarwebs -- so let's make everything sparkly and shiny and full of large friendly buttons. Let's hide the inner workings, let's seal them up, let's replace simple and elegant command line interfaces with hideous and opaque singing dancing graphical ones that make it impossible to see what's going on. Let's make EVERY web page an exercise in Flash (the technology of choice for inferior primates who think that every time they press a button the screen, a banana-flavored pellet will drop into their laps) and let's bloat all the applications to the point of bursting. Let's cater to the stupid, the careless, the ignorant, the mouth-breathing knuckle-dragging assholes who click on every shiny thing they see just to find out what it does. Let's give up any pretense that one should actually LEARN something and (gasp!) THINK about what one is doing with a computer. Let's just join in an orgy of stupidity, led by Roberto Lim, imbecile-in-chief.
What could possibly go wrong?
Oh sure! you can just take the command line right out . . . AutoCAD looking right at you dude
The CLI is the only thing that either stays the same (99,9% of the time) or very gradually improves. The Unix CLI is the only thing that doesn't become outdated. The majority of commands I used in 1995 are still the exact same today, 17 years later and in 20 years they will still be the same. I will use the very same commands and still be able to utilize the very most up-to-date computing power with those very same commands.
With grafical UIs we can't even count on the CUAS being upheld throughout desktop enviroments. And just now touch UIs of various sizes and usage patterns have entered the fray. Some of them even riddled with patents.
The *nix CLI will stay the same for a very long time, just as the bizar QWERTZ KB Layout will probably stay the same. Allthough I'd say with the CLI there are way more practical reasons for this. Take away a powerfull *nix CLI from a system and experts will abandon it. It's that simple.
We suffer more in our imagination than in reality. - Seneca
..there is a strong and growing cadre of professionals who use the command line daily. They even have it on windows machines in the form of cygwin. Just ignore the "can I haz it dumbed down please" crowd. Computer Science is as complicated as the medical profession and nobody suggests we replace medical academics by paramedics. That would imply that operating computers requires a solid education, including learning the command line.
IT, tech, and developers are not consumers.
When we go home we enter statis until the next morning.
that this would spark off Win vs Linux crap again.
Look MS are pushing powershell, because they realise that yes shell has a steeper learning curve, but taking that bit longer time writing the script will stop Open GUI, click this, set that, open that, next tab, type that, close GUI, open gui blah blah. Also that the fact a system that is headless is so much more efficient.
CLI is not for every body, OS X has shell, but face it, most users do not even open shell on their MAC, as its being bought because goes with their Iphone etc.
Leave it be, stop trolling and go write something useful please.
Find all image files in a hierarchy. Do some image magic based on a property (eg. size). Rename the file according to action.
Can you show me how to do that in your GUI?
Or worse, imagine a GUI only interface to MSN and SMS!
(As an example), I am still cursing mozilla and other new web browsers for the way they are keeping their UIs in a constant state of flux. Things like moving the home icon, making the status bar something that only appears if you hover over a link for 2 seconds, and just making everything look different from what it was 2 years ago. That sucks when you have to provide tech support for idiots who don't know if they're using netscape navigator or Internet Explorer 9.
And in Linux, I have found that there are plenty of GUI tools that I never bothered to learn, specifically because the Redhat version is different from the Debian version, and possibly the newer Redhat version is different from the older Redhat version.
So, yes, keep the G-d damned command-line in every version of every operating system, because I want to spend my study time learning new things, not just learning how to do the same old things in different versions of Windows/Linux.
And, no, I'm not going to make the argument for CLI reliability (that it never mangles your settings in such a way that you have to try again), or flexibility (that it's the only decent way to do scripting). Others have done a much better job than I could, in that area.
I use the command line to save time.
Example, to transfer FSMO roles there are three places in the GUI that you have to go to vs via the command line I can easily execute the command to transfer roles and after every command I get the response to verify it successfully completed.
Another example, I have a PowerShell script and a batch script to install windows hotfixes on standalone non-internet connected machines in the field. I can install 100+ hotfixes onto a new station in 20 mins or so. Also the script queries the system for installed hotfixes and skips them if they are already installed which equates into a major time savings. Try doing that via the GUI and see how far you would get w/o accidently rebooting or just giving up cause it takes so long.
WTF do you care if there is a CLI? Why are you even wasting breath talking about it? It is not a problem and is there for those who want or need it. Talk about solution looking for a problem. Honestly go regulate something else, ok?
And if you design hardware, keep DIP-switches and optional 0-Ohm resistors only for the technicians, not for the general public.
I don't mind if they cut out the CLI, as long as they don't take away my terminal!
YankDownUnder Veni, Vidi, volo in domum redire
Man, how does The Onion continue to deliver such great comedy after all these years?
"...specifically, whether [the command line has] outlived its usefulness in this era of the GUI"
Great stuff! I am still laughing.
The number of developers I'm meeting who are not comfortable on the CLI and opt for more obtuse ( not esoteric and hard to get into, but obtuse when it's time to understand what just broke ) IDE's, I'm obliged to pour fire on anything short of mind-machine interfaces to replace the CLI.
"There are some people that if they don't know, you can't tell them." ~ Louis Armstrong
As far as I know, no one is disputing that the command line is a useful interface for many administrative and scripting functions. But these are not things that most users are going to be doing.
The important part is this: "no piece of technology targeted at the consumer market should ever require that something be done via CLI". If you require a command line, then you must accept that a majority of regular users aren't going to put up with it. Fundamentally, this is aimed at Linux: as long as a substantial number of operations require dropping down to the command line (and Linux fans defend this state of affairs), then Linux on the desktop will never be a mainstream reality.
You can do important stuff from the command line on Windows - IIS log queries with LogParser and batch image editing with ImageMagick are some of the reasons I've used this in just the past couple of days. But the average Windows user never needs to see or touch it. This is why Windows is a mainstream desktop OS and Linux is not.
Macs are great like this. They have a POSIX-compliant terminal but it's not required for normal use. But it's there, if you need it.
The real benefit of cli over other tools for me is in the troubleshooting of issues.
Think of it this way, to have an interface means to put several processes between you and the system or service performing the function you need. Using CLI gives you that extra edge of not having a filter on your product. The filter is great for day to day use and for people who do not find comfort in remembering 49,000 text based options. When you hit enter on a CLI it does something, when you hit enter on an interface other than CLI, you have to wait for two to three (or more) other services to function properly and do something. These days, nothing requires CLI on the consumer side. If your work load is greatly reduced by the use of CLI in setting up, support, monitor, or any other and you don't want to be hampered by the behind the scene actions of a GUI then stick with CLI. It all comes down to CLI in the end.
Hesperant
That is why you'd better always use an absolute path as an argument to rm -Rf. I even know people who would enter the path first, making sure it is correct and then jump to the start of the line (C-a in Emacs binding) and insert rm -Rf at the beginning.
There are windowing systems for the CLI as well; they tend to have menus, pointer/cursor control, etc. They work fine, and are strikingly appropriate for interfaces that manage significant amounts of text. For instance, midnight commander uses a windowed interface to manage your files, and it is LOADS more powerful, faster, and cleaner than Windows explorer, and the the Mac Finder.
CLI's are also a great deal faster over a network link, and will remain so until all networks can transparently move one heck of a lot more data than they can today.
I have run into many applications that use windowed text interfaces quite successfully. I've also seen it done poorly, but that applies to bitmapped windows as well.
Then there are all the CLI based info displays -- top, various website monitoring tools... CLI obsolete? I think the word I'd pick would be "critical."
As far as I'm concerned, this blogger is out of his mind.
You're certainly no logician. You don't even know what "or" means.
Typical one-dimensional thinking. Hekkuva job.
Fang about as sharp as pudding. Those who modded you up even less so.
When you don't understand something, it's easy to say it has no purpose. It sounds just like kids in high school whining about algebra when they don't see how they will use it in "real" life.
Designing a program to use a GUI interface is a lot different than designing one with a CLI interface. GUI programs are event/message driven, they don't wait for user input, rather they are a collection of callback functions that get called by the user interface in response to a mouse movement or click. Many Linux programs are really CLI internally and have a GUI wrapper around them. In this case you can actually run the CLI versions stand alone or start the GUI version which will then "call" the CLI version and spoon feed it commands generated from mouse events. As an example there are many GUI wrappers for gdb the gnu debugger which is (and always will be) a CLI program.
If you need a simple program to perform some tedious data generation or modification task you'll probably write it in "C" (or Python, Perl, etc) with a CLI to quickly get the job done. If you had to use a GUI interface the task of creating the program would at least double, and it's size would probably increase by an order of magnitude. The CLI will live forever with "simple tool" type software that has to be written quickly to test something. Then these programs will hang around forever being re-used in many other projects. When a full featured application is derived from these tool applets it will probably use a GUI interface which may really be just a wrapper around the tool applets CLI.
I have nothing against GUI's. I'd hate to go back to the days of word processors using CLI entry (Such as Wordstar) where I had to memorize cryptic command letter combinations. True EMACS is STILL exactly this, but I can always use XEmacs with it's GUI and not have to remember the command sequences if I don't want to (yet they are still available for the power user when necessary).
Master Foo Discourses on the Graphical User Interface One evening, Master Foo and Nubi attended a gathering of programmers who had met to learn from each other. One of the programmers asked Nubi to what school he and his master belonged. Upon being told they were followers of the Great Way of Unix, the programmer grew scornful. “The command-line tools of Unix are crude and backward,” he scoffed. “Modern, properly designed operating systems do everything through a graphical user interface.” Master Foo said nothing, but pointed at the moon. A nearby dog began to bark at the master's hand. “I don't understand you!” said the programmer. Master Foo remained silent, and pointed at an image of the Buddha. Then he pointed at a window. “What are you trying to tell me?” asked the programmer. Master Foo pointed at the programmer's head. Then he pointed at a rock. “Why can't you make yourself clear?” demanded the programmer. Master Foo frowned thoughtfully, tapped the programmer twice on the nose, and dropped him in a nearby trashcan. As the programmer was attempting to extricate himself from the garbage, the dog wandered over and piddled on him. At that moment, the programmer achieved enlightenment.
The point raised by master Foo is clear, text is the only way you REALLY understand what is being said, in this case, to your computer. The GUI guy could not understand what was going on. For more Master Foo wisdom, see http://catb.org/~esr/writings/unix-koans/gui-programmer.html
it's called 'grandma-ware' and is what you'll find on all tablets and smartphones - so laptops and desktops are being dumbed down as well now - to wit: Ubuntu with their lame-ass Unity DE
Let's put this to a slashdot vote. I vote that MORE end-user applications should have a CLI. If you don't understand it, don't use it. Nothing essential should require it.
I've found that people with more classical training in information technology (i.e. programming), tend to prefer CLI for server management, not to mention people who were in the industry back in the days of 8" floppy disks and accoustic couplers. That's not to say that there aren't industry professionals that don't prefer a GUI, and programmers who like managing their servers the old-school way, etc, but that's how it seems to skew.
The one exception being that there a few things you can't do in the GUI that you can only do in the CLI. Personally, I find that irritating. Also, unless your server is very badly in need of a refresh or underpowered for its job, the 'too much overhead on the GUI' excuse really doesn't hold much water.
Finally, I would like to say that I personally am for neither the CLI or the modern GUI; I want that waving around virtual reality stuff that Tom Cruise had in 'Minority Report'. Oh, and as an added caveat, apologies in advance if I duplicated the same response as someone else. I've been reading the comments while trying to troubleshoot an HP printer that suddenly decided to switch all the print menus to German, so I might have missed a comment or two.
I love the CLI for some things. But would anyone who actually read the quote argue with its point? I can't imagine. Isn't it -obvious- that nothing targeted at the consumer market should have functionality that can't be accessed through any other means than command-line, unless it's functionality that's only meant for debugging problems? I think so, and I love CLIs for the sort of things they're meant for. But I love programs that have GUI and CLI modes even more, especially when you can do everything in either mode, depending entirely on which is more convenient at the time.
CLIs are just better than GUIs as a matter of information throughput.
The information contained in a mouse click is a function of the number of options on screen. If there are 16 buttons and you click one, that convey 4 bits of information. 16 buttons is a fairly crowded screen, and 1 click per second seems pretty optimistic in such an environment. That's 4 bits of information per second.
Just using the characters on the home row, a typist can convey 3 bits of information with a keystroke. A minimally proficient typist can type 4 keystrokes in a second, which conveys 12 bits of information.
This is a minimum. A highly proficient typist can hit around 32 keys (5 bits) at will, and hit 10 keystrokes per second. That's 50 bits per second.
Almost all advantages of a CLI reduce to this huge advantage in capacity to convey information to the machine.
Not to mention that a CLI is much nicer-looking than a GUI which has to clutter the screen with all available options, rather than hide them behind a nice clean prompt.
Most users probably won't and shouldn't use the command line on a day-to-day basis. But, the real power of the CLI is scriptability - it's hard to script GUI apps.
This means that, if I need to, in a support/consulting role for a user, I can create a .bat or .sh file which I can send to the user, to do something really useful, just by recombining stuff that's already built-in to the operating system (so I don't have to write it). This means I can do something useful, but it only takes me 5 or 10 minutes to write and test the script, then send it to the user and tell them to put it somewhere, and double click the icon for the "program".
Myself, as a power-user, I like the ability to do pretty complex things with text files from the command line - piping stuff through grep, redirecting output, etc. For example, if I create a batch file to do some task for the user, as outlined above, I can redirect all the output to a log file, and have them send me the log if something goes wrong.
The CLI definitely has a useful role in computing. No, users shouldn't *have* to go to the command line to do anything common (and mostly they DON'T have to), but it's nice to have for those occasions when it is "the right tool for the job".
At work, I develop server-side applications in a Windows 7 environment and I'm still required to use the CL and batch file scripts occasionally. Why should it be any different for Linux, which has better, more flexible CLIs?
.."consumers" should never learn anything hard; they should use their precious time to sit in front of Fox News and get properly indoctrinated by Lockheed Martin, Exxon and General Atomics about the Next War. They should prepare their sons to die in a War For Weapons And Oil.
Any intellectual challeging activity could Create Social Unrest !!
People like Roberto, and Steve Jobs as well, assume there are no consumers doing software development, or any type of real work. They assume consumers are idiots, incapable of doing complex operations or needing real control.
So I had to do another car analogy. Most users of cars these days have little idea what exactly is under the hood of their engine. Sadly many don't even know how to check their oil anymore. These are GUI users. They get into their car, put the key in the ignition, start it up and then everything they want to do is controlled by a pedal, lever, wheel, button, or dial. If something is wrong a light on the dashboard tells them and they take the car into a mechanic or to a friend who knows how to fix it. Other users actually know how to change the fluids in the car, replace the battery, oil/air filter, break pads, tires, etc... And, mechanics learn to pretty much take the car apart and put it back together again. These are the CLI users. While many of us who know and appreciate the CLI wish that others did too it's just not reasonable to expect everyone to use the CLI. For most people the computer is simply a box that connects them to things. They want it simple, and they don't want to see things that confuse them. So these are the people who say the GUI rules all. Honestly there are times I appreciate the GUI to no end. It's often times easier to find a function I'm unfamiliar with through the GUI than through the CLI. But, once I know how to do something via the CLI it is far more efficient to use the CLI to do repetitive tasks. Now, unfortunately many of the developers that I have to work with who are fresh out of school have to clue how to make a CLI work. Which makes my life heck because they make the most convoluted choices sometimes... "Here's a PowerShell script that will check that for you." "A what?" "A PowerShell Script, just type ./dothis and it will get the data for you." "Type what? Where?"
A GUI is a metaphor. Metaphors are fine when you don't need to be specific, or need to perform physical input like gestures (i.e. pointing with a mouse.) However, when I want to give specific instructions to, and expect perfect execution by, an electronic idiot savant then I give instructions in chronological order using a limited vocabulary. In other words, I find it easer to use a CLI to instruct both stupid people and computers.
I use metaphors to convey complex ideas which are subject to interpretation, or to convey relative spacial coordinates. (e.g. data visualization, or pointing on a map)
I for one say "yes".
I'm not even going to dignify this story by posting in it.
..oops
Look back up at my post, now look back down, you're on the Internet. Now look back up. I'm a signature.
On a related subject, why do web programmers/designers believe it's better to select a state from a list of 50 in a drop-down menu than to type in the 2-letter abbreviation everybody knows?
To exclude, I usually use something like: `find . -name '.svn' -prune -o -name '*.c' -print` (searches for all .c files, ignoring the ones in the .svn directories)
I don't have much experience with Total Commander, so forgive my ignorance here. But from my experience, most GUI tools recognize a need but can only provide a partial solution for very specific cases ("Oh, you want to rename a lot of files? Well, here's a batch rename utility! Oh, you want to append the current time into the file name? Well, here's a variable that will expand to the date! Oh, you want the time to be in WHAT format? A different Timezone? Well, let me provide a special menu for that..."). Anticipating every need and providing a GUI interface for each is impossible.
The beauty of a command line with a modern shell is that it makes very odd, one-off situations possible. I have yet to see a GUI utility that can do that without providing a textual interface.
It seems to me there is an awful lot of presumption in that statement about the needs, wants, and capabilities of the "end user". In the end, the arguments over GUI versus CLI boil down to "what they *think* you want to do" versus "what you yourself wants to do." GUI interfaces restrict ultimately restrict the user to allow only those actions for which a button/box/slider/etc... has been created to manipulate. CLI with pipes and redirects and loops and a thousand small utilities (ps, sed, wc, et al) allow near infinite permutations of operations and power.
The reason that there is a choice is because *both* have their place and they need not be mutually exclusive. It is my personal conviction, moreso, that when computing devices lose the CLI they will cease to be computing devices in the utilitarian sense of the word and be little more than fancy appliances, like a toaster that can tell you the weather. CLI is control. Control is power. Power is utility.
an advanced integrated optical pointing keyboard solves the gui cli problem. with an optical pointing keyboard the user has total control of the computer screen. the users fingers are always on the home row and can point, click, type, and scroll all from the home row with the performance of an optical mouse. if you are using a stand alone keyboard and optical mouse you are using old technology. if you are using control key pairs/shortcuts you are using old technology. a user needs to use an integrated optical pointing keyboard to overcome gui cli problem. with an advanced integrated optical pointing keyboard the gui and cli are one. from the “father of the perfect keyboard”. inputexpert.
If you really insist..
Right-click on c:\windows\ and select delete
Idiots can screw up any system using a CLI or GUI.
I don't get what's so confusing. The author gets the consumer market, but he's clearly not a programmer. He's got consumer expectations. And that's fine as long as people pay for consumer expectations. By which I mean -- pay extra. Polishing things to shiny level costs more -- be it in CPU cycles to draw transparent overlays, or support costs -- a graphics artists time, a tech writer's time, an editor's time, a webmaster's time to write a forum, tech support... All of which very few sane and competent programmers want to do. I mean, /there exist/ programmers that will. But you're a lot more likely to find ones that will refuse or don't want to. Don't fault a pickup truck for being a poor sedan, even if they're both motor vehicles.
No consumer oriented application (unless your consumer is a programmer) should have the CLI as a primary interface.
Fine. For some definition of primary that means:
The CLI is the secondary programming interface.
The GUI is built over the CLI utilizing functionality available in the CLI as an API. This guarantees no function exists in the GUI that cannot be called via shell.
The CLI is not the first thing that comes up by default
The CLI may be launched easily.
Lastly, your CLI needs to work with expected platform standards. Output, return codes... signals...
There. You've got regular users, power users, scripters, and support all handled.
Here's the problem -- GUI programs are usually slow, you can't automate them without other tools, and those usually do a poor job.
They tend not to give useful output or error messaging. You can't process or batch them.
I can't separate "standard" and "error" output. Oh wait -- most native GUI programmers don't even understand that concept. Much less why they should return 0 other than "C requires it" if they know that much.
Now -- no consumer oriented program should use the CLI as the main interface. That's completely acceptable. But he needs to understand... yes, /programmers/ will write a GUI. Many programmers don't want to, and won't be bothered with it. And we don't care. In fact, if you don't or won't read the manual, unless we're a GUI author -- we don't want to hear about it.
Yes, this might mean that this new awesome streamripper or converter is obscure and impossible for you to teach your mother how to use. It might mean you can't use it. Then buy one yourself. Or write one. Or... better yet -- help the process work as intended. Go pay somebody ... to write and release a GUI for it. Or wait six months to a year and someone will do it. I'm not brushing you off -- if I give something away, it's a "just in case this helps someone else". Maybe it's benevolence. Most likely it's a bit of both. But I'm a person, not some canonical saint -- I don't want to help feed and clothe the lepers... I just don't want anyone to have to do my work twice.
I realize...your use case isn't my use case. You just want to do one thing. The person that wrote it probably already knew how and was doing it by hand and got tired of it. Or had to do a hundred. But you got the tool.
It's not that the command line is the main interface -- it's that it's the most powerful one with the existing toolchain. That's why I wrote it -- the most economical way to get something done. For me. And that's why you're going to keep getting CLI programs -- because power users write them for themself. The neat thing is a GUI can reuse all of that power and wrap it up with the best default options.
So... don't talk about a GUI as the primary interface. It's the simplified interface. Maybe the expected interface. But it's never the primary interface. It's at best a library calling a library with a couple of 'common cases' passed in as specially crafted defaults. If you develop the GUI first without a CLI, you're patching in a bunch of API calls an
A right-click&delete 1 pixel to high can delete your whole windows-installation so the problem is? Seen this a few times when users never really read when stuf pop's up on the screen.. "Just hit 'Ok' to get rid of the irritating warning"
Another fun thing... click a bit too fast and start dragging, like most touch-pads do from time to time, can move your whole windows folder into c:\temp or similar..
Idiots screw up systems every day...
And who knows what you get when your super awesome smart shell loop isn't escaped properly on a filename with a space, quotes or apostrophe in the name.
I usually check the output from the script before actually doing anything dangerous... With a GUI you cannot even do that..
Because putting the word "find" or "locate" in front of a few keywords just makes the whole transaction -impossilbe- for all us dummies... ?
Point of fact: offering -only- a CLI is dead and gone for most applications.
Point of fact: offering -no- CLI is dead and gone for those same applicaitons.
Pretending that CLI is an either-or transaction is just wee-tarded.
Innocent people shouldn't be forced to pay for inferior software development.
--"Code Complete" Microsoft Press
... or at least work would cease to be enjoyable.
Thankfully it is still there and, just as thankfully, most idiots don't know it exists otherwise more 'n half the Windows machines out there would stop working. Four things about me: I'm old (55) and was 'raised' on DOS, I'm lazy (hate reaching for the mouse and maneuvering it), I work 50/50 on Unix and Windows environment, I (mostly) know what I'm doing. All together this means that I usually work the command line to get things done including launching programmes ("start winword", "start notes", "start http://linux.slashdot.org") and, when I'm not using the command line, I'm using short-cut keys. So, I don't care if they obscure it to such an extent that you'd have to edit the registry in order to use it; for me, it has to be there.
...not Fox News tech briefs, or whatever crap they spew (I should say *additional* crap).
Or was this written by a Mac or M$ addict who fancies themselves a "power user"?
mark
There's nothing forcing you to use it but any OS without a CLI is an OS not worth owning. Nothing everything to cater only to the lowest common denominator.
Google search uses cli.
My favorite command line prompt was always 'Press any key to begin formatting C:> ....
The GUI is the equivalent of the automatic gear box for computers. Like the automatic gear box, it has been created to assist people that cannot do things correctly. the initial reason for developing automatic gear boxes was to help disabled people to drive. Something similar could be said about the GUI. The CLI is invaluable for anyone that whishes to use the real power of a computer, without it users lack power and control. It could be said that the GUI is a tool for "intellectually incompetent" people. There are a range of activities that I perform daily that would require much more time if i had to navigate through countless drop-menus and click on buttons. Scripting alone (Bash is such a wonderful thing) would be near impossible. By all means, keep your weak ineffective GUI for those less capable, but if you want power, well, you know what to do with this article.
Look, obviously a GUI cannot do everything as it will never be able to scale in such a way as to exactly match the functionality from a custom script or carefully parametrized command. But this is only the case for examples like you provide, where you're basically reaching for cases which are NOT COMMON for most people. Even in your case it might still be possible via a GUI (in Windows 7 you can sort in Explorer via images dimensions, though depending on what your requirements are I'm not sure what to rename them as).
Point is, go far enough and you'll come across a case where the CLI can do something the GUI cannot. But either it's because you aren't aware of a GUI which can do it (even though it might exist), or it's a case which is very left-field and unlikely to ever been required in the first place.
Most people on Slashdot are fucking idiots.
The CLI does not replace the GUI, and likewise the GUI does not replace the CLI.
For example, there are a lot of things that you can do in Linux, FreeBSD, even MacOS X that are a huge pain in the ass, because they have to be configured using CLI tools, sometimes with dozens of parameters. Take a look at C compiler output for an example of how out of hand this gets.
On the other side, you have MS Windows, where there are tools that have CLI equivalents, but the CLI is hidden under piles of MSDN documentation, where as the GUI is easy to find, but woefully inadequate.
http://en.wikipedia.org/wiki/Betteridge's_Law_of_Headlines
Even though the CLI is more difficult for new users, it is essential for doing most operating system administration, and I think that all users should be aware of how to run basic commands in it. I find it very useful for handling batch tasks for example, and prefer it. But, that's just me. Even Windoze uses CLI with powershell now. It's just part of using an operating system.
Burn the heretic! Burn! Death to the heathen infidels! Burn! *chews on desk, mouth frothing* ;)
(LINUX Example) What happens if you have problems that can't be solved in your Desktop? I have in years past back when I was using Mandrake had to switch to the first command terminal by pressing Ctrl Alt F1 and use the terminal to restart my Desktop. (This after using the Click To Kill app and accidentally clicked my Desktop Menu bar causing it to disappear.)
(Windows Example) Also a person called me some years ago about a text file he had downloaded in Windows. He was unable to access, rename, or even delete it. The Windows desktop did not recognize the file's existence even when he could see it in his file browser. I asked him if the file's name had a space within it and he replied yes. I then directed him in using his terminal to use the DOS command ren to rename it. I told him to type the file's name with a ? in place of the space (Wildcard for a single character) followed with a new name for the file. Then he was able to access the file. The file had a character within it's name that was showing up as a space (ASCII # 32) when it wasn't a space (probably was ASCII # 255) and Windows was choking on it. By using the command line he was able to easily fix a problem that was being difficult in the desktop.
Contrary to our willingness to follow trends real technological progress is much slower than the hype.
CLI is finally becoming a mature interface. Bash is pretty good. It's taken decades to get to this point.
We still don't really know how to make a good interface that uses a mouse and a touchscreen is 22nd century stuff. Sure, you can get stuff done with those tools but often it is only a specific thing and as software becomes newer the technology and usability of it decreases/changes. Good things that work get forgotten or overlooked. There are plenty of GUI advances in the 90s that we don't have anymore. Evolution takes millions of years. Human progress is faster but it is still generations.
For example:
Skype style video is at least as old as the 1960s. It's become usable now by a lot more people but it really took that long. But then the company Skype with their proprietary interface might not last forever. So it might have to be re-invented again.
Stupidity is its own reward.
Quite possibly the stupidest article ever on Slashdot.
In Reason We Trust
As a mathematician working in medical research I do not like GUI software for analytical purposes because everything I do needs to be replicatable. A script provides a permanent (in the second sense of the word) record of what I had to do to find out that, for example, smoking causes cancer. Indeed, "replicatable results" is the latest catch-phrase finding its way into the lexicon of medical research (as evidenced by events as UseR2012). Even commercial packages like Enterprise Miner (SAS) provide a way to get at the underlying scripts that the GUI produces precisely because of the need to be able to track where all that click-and-dragging got you. Of course, 95% of GUI-level users never peek under the hood to see what just happened, but that's another story (I am a statistician too, so I can make up my own statistics, do not try this at home).
"There is no god but allah" - well, they got it half right.
I make a good living being the command line guy in a world of gui-constrained idiots. I don't mind keeping it that way.
"No good deed goes unpunished"
Your article has outstayed its welcome.
The CLI is for power users and those who want to do some digging for themselves. The day they drop the CLI from an OS is the day all end-users will be treated as retards, if they haven't already. MicroCrap is slowly removing all useful functionality from the CLI whilst Canonical is making it harder to access the cli in Ubuntu to get useful work done. Both companies are hostile to users having control over their own desktop. Google is probably the worst offender with it's blatant privacy abuses and proprietary use of FOSS code but that's another issue alltogether.
People,
The whole *concept* of a computer is programmability, hence the command line. For those who just want to send email, or browse the web or take pictures, or videos, let them have their *appliances* and remove the CLI. For me, leave me the CLI because what I *want* (and need to do my job)
is
a
COMPUTER.
(I never thought I'd hear myself say this, as I DESPISE apple, but their iP* devices are what most people actually want; appliances)
anywho ....
I wouldn't want any unix/linux admins who don't know how to use a cli. I wouldn't expect end users to enjoy it though. That is why they are end users and not power users/admins.