5 ms·
The biggest issue I’ve see , particularly regarding your first point, is simple discoverability of capabilities. It is very difficult, at least initially, to e
by nkrisc 3y ago
The biggest issue I’ve see , particularly regarding your first point, is simple discoverability of capabilities.
It is very difficult, at least initially, to even begin to discover what’s possible in a terminal environment.
There are so many important things that a new user simply needs to be taught, or they will likely never discover basic functionality - such as how to even open, read, and navigate the manual.
The UX barrier to entry is very high without hand-holding or extensive online searching and a strong willingness to persevere in the face of adversity.
GUI applications (generally) solve the initial discoverability barrier by simply showing you what’s possible.
I remember being a kid looking at DOS and wondering “what do I even do?” It was essentially a blank screen with very little indication of how to proceed. My dad had sticky notes on the monitor with the commands to enter to run games.
I never really looked at a command line again after I started using the Windows desktop until I started really learning programming after college, and it was just as daunting at first.
- 082349872349872 3y ago> important things a new user simply needs to be taught, or they will likely never discover basic functionality In the ancient times, we'd say "RTFM" to people who attempted to "discover" functionality instead of Ring the Fing M.
- dullcrisp 3y agoWell maybe that was the problem.
- 082349872349872 3y agoImagine if people had to discover algebra instead of learning it. We'd probably still be subject to the whims of kings and priests. (to what extent have we made progress in software by standing on each others' shoulders instead of each others' toes, and to what extent have we been fortunate that the EEs have been standing on each others' shoulders this short century?) Note that I'm not anti-discoverability in general — it's just the ticket for GUIs. I just happen to believe that attempting to make CLIs discoverable would nerf their greatest power: that single-character changes can have drastic effects on behaviour. We have high display bandwidths, even in our pockets, so why not have GUIs for infrequently used software and CLIs for power used software?
- palata 3y agoWhile I understand (and agree) with your point about a GUI "showing you what's possible", I would like to add some nuance: 1. People have to learn the basics of the GUI. Take someone who lived 50 years without seeing a computer and show them Windows. They will have to learn that they can move the mouse, left/right click, and even move while clicking. They will have to learn that some parts of the UI are interactive (e.g. buttons) and others aren't. It is not as intuitive as people tend to imply. My father still double-clicks on elements that - to me - obviously don't require a double click (like a hyperlink). And many people are completely lost if you move them from their Windows to macOS or some Linux UI. Or even between two flavours of Android. 2. Once you know the basic of GUI ("there is a start menu", "I can click on buttons", ...), the UI does not show you that there exists apps like Photoshop to edit pictures, or like Slack to talk to people. You have to somehow learn about the app from somewhere, install it, and only then you get their UI that "shows you what's possible". I would argue that the CLI is actually quite similar. Once you have learned the basics ("I can change directory", "I can `man cmd`"), then you have to discover apps somehow (e.g. a friend saying "install git with `apt install git`"), and then you can just open the manual with `man git`, and it will most definitely show you what's possible. The difference, I think, is that people generally don't really want to learn the CLI (it "looks old", I guess?), and many apps don't provide proper manpages (pretty sure most developers don't know how to even create manpages, or package their app for their distro).
- mjdiloreto 3y agoYou missed the big difference between the GUI and CLI. Even if the GUI is completely unfamiliar, and you have to learn it, you can still see the different buttons, menus etc. They often have icons or text that hint at what they do, even if you don't know exactly what they mean. With a CLI you have absolutely nothing. There is nothing to see at all, nothing to even begin to interact with to discover the capabilities.
- palata 3y ago> With a CLI you have absolutely nothing. I kindly disagree :-): I would say that with the CLI you have the exact equivalent: man pages. Just like for a GUI you have to know that by hovering the cursor about an icon you will get some text description, with a CLI you have to know that there are man pages. And just like a bad GUI may have cryptic icons without any description text, a bad CLI will have no manpage. But we should compare a good GUI to a good CLI, to be fair.
- Exoristos 3y ago> I remember being a kid looking at DOS and wondering “what do I even do?” The DOS we had came with a few-hundred page manual. The same for any major programs that ran on it. These must have been exhaustive, as I don't remember being stuck at any point, honestly.
- atoav 3y agoJup. But where in the terminal does it tell you that (A) there are man pages and (B) how to look at them? The answer is: It doesn't tell you anything. So either you grew up in a time where computers with terminals were new and interesting enough for you to try, or you were a teenager that was bored enough to try, or you had somebody show/tell you. But what it does not do is explain itself.
- deleted 3y ago[deleted]
- SoftTalker 3y agoI disagree that GUIs show what is possible. I am often baffled by my iPhone as to how to get it to do something. Even Apple's own apps are wildly inconsistent. Once you learn "man" and "man -k" the cli environment is emminently explorable, and it's not just "try poking at it and see what it does" it's all laid out in written documents that you can read in advance.
- lelanthran 3y ago> The UX barrier to entry is very high without hand-holding or extensive online searching and a strong willingness to persevere in the face of adversity. I dunno if it is all as high as it appears. I learned to navigate and use Unix type systems in the mid 90s, with only terminal access. Internet was practically non existent and gopher was still (barely) in active use. So, yeah, for a start, I don't know if extensive online resources are necessary. For example, I learned most of bash from the bash manages.