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.'"
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.
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.
Thankfully, not many.
On the other hand, very thankfully many CAD applications and the like do have a 'command line'. Not a terminal one, but one built into the GUI.
The reason this is 'very thankfully' is because 1. some things really are just easier when typed in, and 2. it forces the developers to make everything that's doable through the UI, no matter how awkwardly, doable in the command line.
The latter is very important when you consider the potential for macros, batch operations, more full-fledged scripting, etc.
If anything, more applications should have command lines.
I realize the article is more about the main CLI, though - and the modifier "required".. in which case I agree, the CLI shouldn't really be required. It's just damn nice it's there when you want it.
I do not want a gui primary interface.
I want standard input and output on every program.
If it cant be part of a pipeline, it isnt worth much to me.
I do it all the time. But on the other hand, I install phone systems for a living :) So my answer on the first question is "last Friday", and for the second it was somewhen two weeks ago, when one of my children dropped the remote.
...when you pry it from my cold, dead fingers.
Dipshit...
When you use sed and awk you're beyond the reach of basic use of software and are really starting to head down the programming route. I guarantee there is no normal end user in the world, even linux users who even know what sed or awk is let alone can figure out the arcane (to the novice) syntax.
Guess what? Whenever you use formulas in Microsoft Excel, you're starting to head down the programming route. People do this all the time.
$x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
$x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
Excel is a case in point. Used by tens of millions of non-technical users, and at the heart of almost every business in the western world. And it's a graphically presented array of command lines.
Google searches aren't CLI any more than this comment text box is. A CLI google search would be more like typing out the URL "https://www.google.com/search?sugexp=chrome,mod=18&sourceid=chrome&ie=UTF-8&q=command+line+interface" by hand. And browsing through the results pages is very much unlike a CLI.
I think it's more accurate to say that we are getting a better understanding of CLI behaviors that work well, such as the app launch shortcuts and text expanders you mentioned, and incorporating those into everyday use. I certainly believe that the CLI retains its function, and it is without a doubt the best tool for certain jobs. It's not great for browsing, or any operation in which you aren't quite sure when you start out where something is or how it works, but if you know those things from the outset it is very easy to string a number of commands together to get the exact output you desire.
Your brain is not a computer.
Google searches aren't CLI any more than this comment text box is.
You're full of crap. Don't know know about "site:" etc? The difference between the Google search box and a bash command line is, one is interpreted as a search command, the other as a unix executable.
When all you have is a hammer, every problem starts to look like a thumb.
You didn't look at Gnome recently, did you?
Rethinking email
Come on, Gnome is written by a guy with a hard on for Bill Gates, what do you expect? Which part of Windows did they not try to implement? .Net, mono, .asp and other weirdass shit.
He did say he would love to work for Microsoft.
Since they wouldn't hire him, he is doing his best to turn Linux into Windows.
If anything, more applications should have command lines.
This. Fucking, THIS!
All our scientific equipment (that is controlled by a PC, which means 90% of them) has a GUI. And a host of bugs or user errors related to the GUI. And then, contacting the vendor and getting support is a nightmare, with a GUI. My dream is that all of these devices get a CLI so I can just issue unambiguous commands of the type
That would be also scriptable, flexible, powerful, and as I said, unambiguous and easy to debug.
"The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
I was quite tempted to mod you up, but I would say that even then, in your last example, there are other tools available for users and power users.
OS X has its Automator.app which lets you build up a workflow that can run as a separate program, or as a "folder action" (essentially a macro applied to files in a specific folder).
It gives you most of the power of the CLI, with more ease of use.
It really is quite nice to use.
I've tried using Powershell for its intended purposes. I still wound up having to write Win32 C code to set various settings. Fail would mean you tried. Powershell doesn't even hit that low bar.
The cesspool just got a check and balance.
Sorry to burst your bubble but Linux already dominates the desktop. The general public sits down to a computer and launches a browser (gui to a linux server).
They spend the better part of 90% of their time logged into some application powered by thousands of linux servers. Google, Gmail, Facebook, Pinterest, Twitter, ClickVille games etc etc all powered by a linux server.
The CLI is not there to assist the general public it is there to allow us professionals to manage things efficiently.
A desktop os is only a vehicle in which to launch a browser.
Got Code?
>Typing in a few keywords is not CLI. That's just data input in response to a prompt.
Have you used windows 7? the search bar searches programs and enter executes them, I'd say that 85% of my customers are typing excel instead of mousing through multiple menus.
It's no different than the typical CLI interactive session.
Few people string together complex commands and arguments interactively. Most think about it, then do a few tests interactively, then write a shell script, then make an alias for it.
At this point it you're just passing in an argument : mysearch "some keyword"
Very similar to Google's input.
A better example.
In OS X you type 'open mail.app' in a terminal and pop, mail opens. Many GUI users are amazed by the simplicity when you show them this and instantly want to try more. 'open Microsoft Word' - bam, Word opens. OMG. It's so much faster than pointing and clicking.
Then you show them 'open some file.docx' and when it opens in Word they fall on the floor.
Suddenly they want to know more about this Terminal.
A fool throws a stone into a well and a thousand sages can not remove it.
Now I want to uuencode them and post them to USENET. Does Irfanview do that? Or maybe transfer them via SCP to various webservers.
The point is that sure, you can automate certain repetitive tasks in a GUI, but it's rare that a GUI anticipates all the potential tasks that might need automation. CLI and scripting languages combined with small focused tools that can be strung together can automate many tasks that were never anticipated by the individual tools' authors.
So, in this case, Irfanview anticipated one action to automate. Does the automation extend beyond the app's borders, though?
Program Intellivision!
90% of car drivers can't tell you what a camshaft does either, but it doesn't change the nature of a camshaft.
Altavista had site: before google was born. Where did you think that command came from?
If you type commands into a line it's cli. That it takes free form english as well is a good thing, but we did start doing that in the 70s...
I'd love to get away from the command line. As soon as there's something that can do what it does maybe that'll happen.
But not in my lifetime and not in yours either.
Need Mercedes parts ?
I had a scientific instrument that cost $70K ship with an embedded CPU running stock consumer-grade Windows 2000 with a massive 100-pin plug that included wires for keyboard, vga, mouse, and ethernet and a 50' cable. For an underwater application that was supposed to be "automated". Yes, their idea of automation was to put their craptastically bad GUI app in the Startup folder and have someone use a full KVM to get shit started. Oh, and the ethernet plug had an issue such that only 3 of the 4 wires could connect.
All I wanted was: power up, collect sample, transfer data, power down. Instead, I had to write multiple programs in Win32 to simulate mouse and keypresses to get the program to "take sample", re-wire the ethernet to 3-wire RS232 and run Kermit as a daemon, and a 2000-line Perl monitor to check available battery power and issue the shutdown commands if things were getting tight, or just kill power anyway and hope to God that when it came back up it wouldn't be stuck in chkdsk expecting user input.
The crazy thing is that they are still in business all these years later.
I very rarely say anything good about Microsoft technology, but Powershell is actually really nice. It's consistent in a way that Unix shells aren't, and well documented. The commands are descriptive, unlike many Unix commands.
It's slow. Really, really slow. That one flaw aside, it's very well implemented and the competent Windows admins that I work with are very enthusiastic about it. I agree with them.
Yes, I'm suggesting that if you're a Windows admin and you don't know or like Powershell, you probably are less competent than those who do.
You didn't look at Gnome recently, did you?
I'd rather one good common way of doing the same thing rather then 4000 different ways of doing the same thing.
The Windows binary registry is actually kind of awesome if you debug and understand how it is used. Each configuration parameter can have permissions. Each read and write to the registry can be easily audited/logged. You can use group policy to enforce permissions on registry keys or set them to certain values. Almost every app uses it, allowing you to enforce policy/set configurations across all your devices centrally. To do the same in *nix, you need to know the configuration paths of all your apps, their compile options, and some method of deploying coniguration changes to them (easier to release your own custom packages for your entire environment)
Wouldn't a proc-fs interface to similar system be awesome?!
120 characters ought to be enough for anyone
Nah, the real problem with Linux is the same thing it's been for years - lack of critical applications. Sure, these days, any web-based applications will work like a charm... but it's things crucial to your business - in my case AutoCAD, MasterCAM and our Infor ERP system - that prevent Linux on anything but the most basic of machines.
Once those apps get ported to Linux, I think we'd be running it within a couple of years, simply due to the lack of cost and stability(and excellent support for out-of-date hardware).
Users, well, they'll learn whatever it takes to get the job done. CLI is great for some things, horrible for others. GUI is great for some, horrible for others. It shouldn't be one or the other - blend the two. Have a good gui with common options, and a CLI box that can be pulled up for access to the complex and arcane extra features(which perhaps only 100 people in the world use, but for them it's critical).
Ya know, when I hear Linux guys bitch about the reg i just have to LMAO, because frankly you have NOTHING that comes close to the ease of use of the reg. I have a customer with a problem? I can just email them a .reg file and tell them "clicky clicky and reboot" and voila! Problem solved. And I can do that with 1 machine or a thousand just as easily.
In the end all the bitching and whining about how much worse Windows is, yet your free OS couldn't even beat Vista, the most hated OS MSFT put out since WinME, what does that tell you? Hell more people pirate Windows than take your OS for free, doesn't that tell you that you are doing something wrong?
CLI is a server tech that deserves to stay in the server room and NOT on the desktop. the world has spoken, since Win 3.x CLI based OSes have gone exactly nowhere and after 20 years that is where Linux is, why? Because at the heart of the matter CLI has become a crutch, that's why. Have a problem? Bash. Can't make a GUI to save your life? Bash. Problem with sound, video, networking? Bash.
If you think your OS is so superior step right up and take the hairyfeet challenge. Simply remove CLI from your OS for 1 YEAR, that's all. Personally I doubt you'll even get it to boot, much less make even the 6 month mark, simply because CLI has become the all purpose crutch in Linux. Don't believe me, go ask for help with a common problem like say WiFi issues in ANY Linux forum and tell them you need a non CLI solution, I dare you. You'll will get cursed and insulted because in reality THEY CAN'T DO IT WITHOUT CLI.
So when you get to even 15% then you can jump on that high horse, but right now acting elitist about an OS that has barely beaten JavaME after being given away free for 20 years? that's just sad dude, and not something to be acting all elitist over.
ACs don't waste your time replying, your posts are never seen by me.
You're forgetting the days of the "Blue Screen of Death." That was pretty consistent.
Hey, you speak like that was in the past. This weekend I installed a (legal, purchased, licensed) copy of Windows 7 Home Premium onto my new machine so I could run games. I installed six games. None of them would run, and of those three failed with blue screens of death: Oblivion, Settlers IV, and Alpha Centauri. What makes that a particularly sour experience is that Oblivion, at least (haven't tried the other two), runs pretty well under WINE (some minor graphics problems, but it's playable).
Apart from that, Windows 7 cannot access the Internet, although Linux running on the same machine can, and although in Windows it can access the rest of my local network and the rest of my local network can access it. Because it can't access the Internet, my newer games won't run. Microsoft's support pages say the most likely reason is that my router is too old to support the modern wizz-bang networking of Windows 7, and they provide an online tool to test your router... but guess what, it only works with Internet Explorer, so if you need it you definitely can't use it, and if you can use it you definitely don't need it.
That's the level of thoughtfulness and quality I've come to expect from Microsoft.
I'm old enough to remember when discussions on Slashdot were well informed.
A command line is something that runs through a rudimentary lexical analysis, has a defined syntax, and parses according to rules.
That is a simple GUI with a text input control doing some quite nifty Natural Language Processing (NLP).