5 ms·
A debate that never grows old? Against better judgment, I will bite. The author makes a valid point. Consider command line history, and command line editing
by feelin_googley 9y ago
A debate that never grows old?
Against better judgment, I will bite.
The author makes a valid point. Consider command line history, and command line editing via vi or emacs bindings. I use sh like a REPL all day, every day. I make constant use of searching prior tasks with Ctrl-[ + / or fc -l. I also have hundreds of short, saved scripts.
I do not use a mouse or X11, no vim. I do not use a "clipboard", other than tmux buffers. Everything happens through editors/pagers like sed, vi and less. There is constant iteration. What is the GUI equivalent? Keyboard macros?
The ultimate aim is to make tasks non-interactive. To script away the interactive work. Automation. This is in direct opposition to the philosophy of the GUI: that work must be interactive, and to make interaction more pleasant.
But there are so many differences and similarities between CLI and GUI. What really separates them and makes me choose one over the other? If I can pick just one point of differentiation: Most times, CLI is more reliable. What does reliable mean here? It means robust. Less likely to fail.
Assume that for comparison we can have both GUI and CLI versions of the same applications. And that the GUI is more than just a "skin" over the CLI.
Show me a GUI application that is more reliable than the CLI version. I will take notice.
But to get me to switch away from CLI usage, one must show me many GUI applications, all more reliable than their CLI versions.
An entire system of fast, robust GUI applications, all more reliable than CLI alternatives.
This might be possible. But it is not available as of today AFAIK. And I have to go with what works. Today.
FWIW, I am an end user not a developer.
- dualogy 9y ago> FWIW, I am an end user not a developer Well now I'm really curious about your actual software use-cases here. Because regardless of whatever "end user not dev" use-case I can think of, out of the many multiple dozens that instantly spring to mind, I cannot name a single one that has not had for 1-2 decades multiple well-known, widely-used-daily, best-in-class apps or suites on the market that are fully GUI-no-CLI and are at the very least evidently "reliable enough". Whatever GUI app I have used in the past 10 years, we can talk GIMP/Paint/VS/Sublime/VLC/Photoshop/Lighttable/LuminanceHDR/Blender/Unity/Unreal/VScode/Thunderbird/Firefox/Chromium/archival-tools/file-explorers/countless-others --- not only have they been utterly reliable and predictably delivered as was demandedd, their CLI alternatives hovered between non-existent and underfeatured. So "end user not a dev" to me sounds like you must be a sys-admin or maybe, "author of man pages" ;)
- GuiA 9y ago??? All of the software you mention has had, over the versions, introductions of major bugs, regressions, UI elements changing for the sake of it, features available in a previous version being removed in a subsequent version (sometimes to be reintroduced later)... Is that your definition of utterly reliable and predictable?
- pharrington 9y agoBeyond not addressing the comment you're replying to, are you saying your reply doesn't also apply to CLI software?
- earenndil 9y agoAbout half of those guy apps you're presenting are irreplaceable. The other half are not. GIMP, Paint, Photoshop, Lighttable, VLC, LuminanceHDR, Blender, firefox, chromium (image/video viewers/editors, web browsers) are all about looking at, creating, and modifying things that are graphical in nature. Thunderbird, a mail reader, is about looking at things that are textual in nature. Same with file explorers, archival tools, and text editors. These things work fine with a cli interface. Unreal/unity are a bit of a special case -- there's nothing that does exactly what they do from cli, because that's impossible, but it's more than possible to create large playable graphical video games directly with a text editor and a cli -- even if it's not possible to play them that way.
- mbrock 9y agoI don't have a lot of experience, but I suspect that many visual applications could be greatly improved by a well defined command language. The various dialog boxes and widgets in apps like Gimp and Inkscape always seem fussy and annoying to me, especially when I know exactly what I want. If I could talk to the app, I would say "put margins 2cm from the page edge" or "position object X halfway between objects Y and Z", etc. Blender has a Python console, and it's even somewhat discoverable because you can find out how to script an action you do in the UI, but the Python API is too verbose and ugly to be an actual daily mode of operation, I think.
- jancsika 9y ago> But to get me to switch away from CLI usage, one must show me many GUI applications, all more reliable than their CLI versions. There is an enormous number of GUIs whose purpose is to make things quick and discoverable for transient use cases. In those cases the user may only need the application to perform their task one time ever. In those cases the learning curve for a more expressive system is too high a price to pay.