Is a command line interface better than a GUI?

#EvanPoll #poll

Yes
Yes, but...
No, but...
No
Poll ends at .
@evan "no, but" it's easier to build a secondary gui on top of a cli than to add a secondary cli on top of a gui <3

@evan Yes if you're familiar with it, as faster and more composable. But likely less discoverable (though it has gotten better with good help and complex completion).

A search by menu name is a must-have for me in GUIs nowadays.

@Evan Prodromou Invalid question 😁

In some cases one is better, in other cases the other. Personal taste is a factor, learning curve is another...

So many factors to consider, there is no simple yes-or-no.
Poll FAQ

I do a lot of polls on my account at Mastodon. I get the same questions or requests multiple times, so I made this FAQ to make it easier to reply. Q: Why do you do so many polls? A: I like to think…

Evan Prodromou's Blog
@evan hard to say... depends on the person and task. IMO a CLI is far more versatile and powerful than a GUI for someone who knows the tool(s) being used, but a GUI can make its use possible in the first place by a non-techie. Also, a GUI can offer all kinds of visual data like charts, etc. I use both at different times. I said "yes, but...".
@evan
Most of the time, no. But when you need it, the CLI is essential.
@evan not inherently, no. But there are situations where it's the better tool for the job.
@evan The more interesting question: is there a lossless conversion back and forth between a grammar and a GUI toolkit?
@kzurell hard disagree, my question is more interesting

@evan Each is better suited to some tasks than the other. You can do CAD with a command line but anything that visual is usually easier with a good GUI.

Likewise, tasks that are suitable for scripting are usually better done with a command line.

The best systems mix them, using each where it is more suitable and have done for more than 50 years.

@evan Depends on the task, as others have said. But as a general matter, the CLI is more powerful. Yes, but.

(I run Emacs both in GUI and terminal mode.)

@evan It depends on the task. I.e. no, it isn't better. Cold hard logic. Bam. Boom. Kablooie.

@evan As an IT administrator, I've found that the best-designed software has a language with objects and verbs. The language may be surfaced in a CLI and/or and API. I'm sure the code underneath follows this design.

The GUIs for these apps are layered on top of this and provide easy access to more complex actions with lots of options, the one case where a GUI is superior to a CLI.

@evan "There is yet insufficient data for a meaningful answer."
@evan No, neither is generally better than the other. They are both suited to different applications.
@earth_walker boooooooooooooooo
@evan ok, more detail: I like CLI for system administration tasks, other than that I generally prefer GUI. But if the app is very simple then CLI is fine. For example, a file converter. I struggle to remember all the flags for CLI apps and looking them up can be annoying. Also, people who brag about using CLI apps in an elitist way annoy the shit out of me. I often prefer to use tools that are more accessible to nontechnical people so I can empathize with them more as a UX designer, tech support person and web developer.

@earth_walker you're a good sport, to respond so well to my lazy teasing.

Thanks for the detailed answer.

@evan I kinda know what you're after with these polls, but the wording of the question combined with the results triggered a knee-jerk response from me lol
@evan Is an apple better than an orange? Well, do you want to make an apple pie or orange juice?
@machinaecrire also apples are better than oranges
@evan Ha ha. I should have added ;-) at the end of my reply. Didn't want to sound arrogant.
@machinaecrire lol, ofc, thanks for replying
@evan @heliomass Yes, but less convenient
@EdwinG @heliomass @evan Depends on your definition of convenient. With a GUI, I actually have to go over to my computer rather than SSHing in from whatever device I happen to have on hand.
@evan No, not in general. But it highly depends on what the application does.

is a keyboard and mouse better than a touchscreen?
for a text editor, yeah! but for a drawing application, I'd rather take the touch screen (or a pen).
for like, a wifi menu? it shouldn't really matter. both work just as well and it's mostly a personal preference.
for a first person shooter? you could argue either way, but don't forget that lots of folks love joypads/controllers.

for a text editor, i'd much rather have a GUI than a CLI (like
ed). but a lot of people prefer a TUI (like nano).
for file management, it doesn't really matter. most people know how to use a GUI, lots of them even have a lot of shortcuts and tricks. but nothing beats the inline scripting of a CLI for flexibility (and again, some people swear by a TUI, like
ranger).
for a patchbay graph (like
crosspipe), I feel like a GUI is infinitely better than a CLI. you could implement the same operations in CLI, but it would not be the same category of application.
for something like ffmpeg? it has a bazillion switches that would be incredibly overwhelming to present in a WYSIWYG-GUI style. it's difficult to make it anything
but a CLI. arguably, the CLI sucks too, but at least you can copy paste magic incantations instead of needing to follow a tutorial with twelve screenshots on exactly where to click.
@evan If you need to build up a complex structure or even some sort of selective batch operation (eg, ripping a DVD you own), it's a lot easier to do these things interactively via a GUI than on a command line.
@muddle @evan TUI can often be a happy mediun.

@me @evan Hmm. This i my first time hearing of such a thing, or such a term, anyway:

https://en.wikipedia.org/wiki/Text-based_user_interface

Obviously, I've used such things many times.

Text-based user interface - Wikipedia

@evan almost but not always
@evan I miss a "it depends" option, so didn't vote. I think it's faster and more convenient in some cases, but too tedious in others, so wouldn't dare to say it's better or not in general. Both can coexist pretty well, actually.
Poll FAQ

I do a lot of polls on my account at Mastodon. I get the same questions or requests multiple times, so I made this FAQ to make it easier to reply. Q: Why do you do so many polls? A: I like to think…

Evan Prodromou's Blog

@evan

For decades I have said a single-letter command-line option is all any user needs. Or deserves.

@evan No, but

- CLI tools are scriptable by design, and sometimes you need that. So that counts as “better” sometimes.
- Most CLI tools could have a GUI built around the core library (you DID build a library at the core, right? Text is not an API contract…)
- CLIs are the wrong tool for many things. Like most git operations on non trivial repos, where a GUI dramatically reduces the incidence of all sorts of errors.

@evan I'm no developer, but I do write programs, lots of them, mostly for work. All of these have a CLI, none has a GUI. Hence CLIs are better.

@evan I liken command line interface to speaking and GUI to showing. CLI is more powerful, but whenever GUI is applicable, it is also more convenient.

Voting "yes, but" with the logic that if I had to choose to live in a world where only one is available, I would choose CLI -- even though I probably use GUI more right now.