3 ms·
> It's never been clear to me why anyone would want to use a completely opaque and undiscoverable interface such as a commandline over a nice GUI for anything.
by Panino 10y ago
> It's never been clear to me why anyone would want to use a completely opaque and undiscoverable interface such as a commandline over a nice GUI for anything.
The command line gives you both a larger learning curve (base) and greater capabilities (peak). It's not possible to put all the options from the command line into a GUI, because piping allows you to stitch unrelated commands together to form, on the fly, entirely new "programs."
for f in *.gz; do gunzip < "${f}" | tr '(' '\n' | awk -F "'" '{print $2}' | grep -v -e '\.foo$' -e '\.bar$' > "out_${f}.txt"; echo "${f}"; done
The above command is pretty simple (and could possibly be improved, as many awk+grep combos can be), but I can't picture it in a GUI. Additionally, the above command will still work 10 years from now, whereas the GUI will have changed. So from that perspective, a CLI user who has already reached "base camp" will have a lower learning curve than a GUI user, who will continually have to re-learn new interfaces.
- zo1 10y agoThat sounds like a really complicated command, requiring countless amounts of keystrokes and indepth knowledge of the CLI (piping, etc) and the commands (tr, awk) involved. Something that could easily be solved with a bit of copy-paste and regex usage in the right text IDE. I'd argue that you're comparing a seasoned professional at the CLI with an inexperienced IDE-user. It's always assumed that IDE and non-CLI users are basic and not at all adept at performing their tasks in efficient ways.
- randallsquared 10y agoIf you had to program by point-and-click, I think you'd find it very slow and cumbersome (in spite of valiant efforts to make this kind of thing work, like lighttable). Your immediate reaction in the face of a task to do something conceptually simple, but with an annoying number of little steps, is to reach for a programming language and build it in your IDE. It would be more convenient, really, if you had an IDE that was specifically designed to work with all the other applications on your system, rather than just with whatever language you're using and its libraries. And there is such a thing: the shell! With things like tab-completion, history, aliases, and man pages, the unix command line interface basically already is an IDE. While I don't yet have enough experience with it to say for sure, it seems like PowerShell is intended to be similar, even going so far as to have a literal IDE (PowerShell ISE). There's a reason why IDEs always seem to have a built-in terminal, and why those which didn't at first seem to grow terminal-like capabilities, like VS Code's command palette.
- rat87 10y agoThis would be more convincing with something like powershell the syntax and command line flags are so random/hard to figure out.