Is a command line interface better than a GUI?

#EvanPoll #poll

Yes
22.5%
Yes, but...
36.2%
No, but...
30.1%
No
11.2%
Poll ended 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.

@evan i guess "it depends" would be a "no", given the affirmative, but i still voted "yes, but…" because it often is, if not always.

(another justification for "no" would be that unless you use a braille interface, a command line is still a graphical user interface)

@evan They oftentimes does not serve the same purpose. I would hate to use blender or GIMP exklusively through a CLI for obvious reasons, but using imagemagick in the command line and being able to chain it with other commands is very powerful and a nice experience
@evan Out of the social media I've used, you would only get these numbers (thus far) on Fedi.
@evan Computer toucher assed website.

@evan
Yes, but... from my perspective. I do understand, however, that many other user groups need a graphical user interface because they can't manage without it.

So another user would answer “No,” and I would understand that.

@evan I answered "No, but..." and I understand why people like them and I'm sure people answering yes have different goals from me. I'm a sophisticated end user not a coder. When I hit a wall with the Wordpress GUI, the support team often tries to get me to use the CLI to resolve it, but they also want me to sort of *learn the CLI* first. I want to solve my Wordpress problem so I can do my task, not learn a new thing in an environment that I am almost never in unless it's the only option.
@evan Emphatic no. Assuming an equivalent degree of UX design to both sets of interfaces, GUIs will always be more intuitive for more people. Even more so if the GUI is accessible.
@evan No, but it's often faster and much easier to automate.

@evan No, but there are definitely advantages to not having a GUI in some places

I don't really see a place where NOT having a CLI is actually an advantage and not just...not having a CLI

@evan Like I've seen servers run 6x more memory usage with GNOME running than if they were just CLI only

A desktop environment is important for an end user, but not so much for a sysadmin who needs every ounce of storage for *actually serving the content* instead of making it a little easier to navigate sometimes

@evan

Why didn't this survey show up in my CLI where I could have completed it way faster?

@evan Depends on the kind of tool. For git, a CLI or a TUI is much better. For other stuff, not really.

@evan When done properly, CLI is more efficient, and a GUI is more intuitive. So, it depends on how much time you're willing to invest in learning.

For my part, I write markdown in vim, and have for years. Would I recommend it to others? Probably not.

@evan almost always yes for me, but for media consumption and inherently pointy clicky tasks a GUI can be superior

@evan “No, but…” a command-line interface has more potential to be expressive and composable than a GUI.

But “expressive” and “composable” do not mean “better”, w/r/t UIs, which should be evaulated based on user experience. That includes learning curve, discoverability, and fit for purpose. GUIs are usually better from that UX perspective.

@evan There are apps with GUI fit well
and there are apps with CLI fit well. GUI & CLI have pros and cons:
you do not want to preview an SVG in CLI and
you surely want to change password in CLI
and there are common use cases came up: file managers, browsers, etc.
@evan where do I click to get blinking cursor?