@stevenaleach @anildash I was there and I disagree. Otherwise, why did the acronym RTFM need to exist?
(Then again, today I am writing a CLI/possibly eventually TUI tool. Yes, in 2025.)
@kboyd @anildash Ah, but these days there usually is no FM to read. And if there is no FM, then you need to fall back on being intuitive, obvious,, and "discoverable".
But of course folks used to CLI will read --help and pick up on how to use a tool quickly. But someone has to actually *be* a CLI user first and their computer didn't ship with a manual explaining how to use the CLI. It just shipped with a desktop they can click around on and figure out how to use.
@reflex @stevenaleach @anildash We still have documentation and it is A Pain In The Arse.
CLIs have their place. However I am currently fiddling around with sorting a Unix PPP dialin for 'fun'.
On Windows this is a solved problem, you click a few boxes and it works. On Unix the documentation is in four different man pages, and requires tangential knowledge from at least another two.
Some modern cli and text file oriented software such as Kea and nsd/unbound are reasonably straightforward though, and largely don't make you lose the will to live.
@stevenaleach @anildash
I use CLIs every day and have been for 40+ years. I also teach how to use the CLI and I support beginners and advanced users alike.
And while it is powerful - and, arguably, necessary in my field - the CLI also sucks.
There's no discoverability. Users live in constant fear they will break something and never even notice.
The CLI is fine *as a complement* to a GUI. Lean into its strengths. But it was never a viable interface for computing in general.
@synlogic4242 @anildash Um, so that helps me find the damn command how exactly?
A system that requires people to memorize large numbers of commands and consult often out of date or untranslated help files (which themselves tend to be written assuming the user is experienced) are the opposite of discoverable.
@anildash @synlogic4242 The fact that grep is a thing after all this time, and the fact that I still struggle with practically using it despite using Linux off and on since Slackware in 1995 really says it all. Like congrats to those who have pulled it all off but nobody should have to do this just to use their damn computer effectively.
I think many in the space view the mastering of such unnecessary complexity as a badge of honor and a way to keep others out of their clubhouse.
but I find CLI tools the ideal way to work fast, efficiently, productively, with high composeability and reuse. massive bang for the buck. whereas with a GUI its like starting with training wheels attached, and lead ballast weights, then... *never* being allowed to remove them or grow out of them. I can (and have) written entire books in vi/vim. the number of times I see youngsters reinventing the wheel with yet another GUI or web/cloud/mobile thing is breathtaking when not sad and hilarious. "Guys, I just made a way to write code in a browser, OMG guys, and its super discoverable and AI-infused guys!"
*meh* ;-)
@synlogic4242 @anildash That's very cool for you. I also enjoy the cli for a lot of things.But it does not change the fact that the way it's designed at all levels it's inaccessible to the vast majority. That could change if those in this space chose to change it. VMS showed intuitive clis were possible. But there is no will to do so.
It is true that the CLI is very powerful and useful, it's too bad that the community does not wish to make it accessible to all.
@synlogic4242 @anildash IMO a CLI should have discoverable and obvious commands to do all significant functions that one would need a CLI for. Help should be standardized and multilingual in the top 100 or so languages, and the commands themselves should be multilingual, copy in english makes no sense to someone who speaks Thai as their primary language, the commands should be localized as well as the help files.
All should be built to work with accessibility tools as well, as should output.
@synlogic4242 @anildash The barrier to entry is very high, and higher still if you are not native english speaking. Tech as it stands is a form of colonialism, forcing non-natives into both terms and structure that are even less intuitive to them than they are to native english speakers.
Again, treat everyone as a first class user, build accessibility in as a primary component and you will have a strong case. Right now it inhibits most.
@reflex hey I like fact you are passionate about this topic. I am too. Sounds like we agree on some but not all. :-)
btw I have a longer form piece I've been writing, over years, a WIP, titled "GUI Anti-Patterns / GUIs Are Anti-Patterns", maybe I could CC you on it when I have full draft for folks to read? I like steelmanning my points/reasoning
@synlogic4242 @anildash Wow, because a file icon, a save icon, an open icon, etc are totally as incomprehensible as CLI commands.
Insulting the users says more about you than it does about them. Iconography is inherently discoverable, random commands with crazy ass names are not. Iconography literally goes back to the beginnings of human communication.
@reflex @anildash let us assume one is a child. how does one learn the English word for <apple>?
Someone tells you. They show you. Now you know its apple.
Now that you know apple, does that empower you to learn the English word for <saxophone>? For free? Automatically? No, it does not. Instead you have to climb the same hill: someone must tell you, or show you, until it sticks and you memorize it. Neither apple or saxophone were discoverable in an ether, in an absence of all other context or humans trying to teach you.
Same "flaw" exists with ls, ps, grep, git, etc. Except that when we teach folks about their existence and use we take advantage of fact the student already know hundreds/thousands of other, foundational words. That empowers them to self-learn by reading books, docs, cheatsheets, screenshots & videos. The same as with GUI apps. You must understand some foundational human lang (English, eg.) or iconography (a stoplight, a floppy disk, a "back arrow" etc) in order for the GUIs use to be "discoverable" by you. And you have to be willing and able to experiment hands-on, trial and error, to polish your grasp. Same with CLIs and GUIs.
@synlogic4242 @anildash You know what's really awesome? User interfaces that do not require you to be handheld to learn them! In fact we've been using such interfaces since the late 80's successfully and now they are the dominant method because, well, they work and are far less time and effort intensive.
Elitists of course whine about it because they want a high barrier to entry to protect their sense of being special.
Plus, of course, the english-centric nature of the CLI...
@synlogic4242 @anildash Or, and hear me out here, app developers should actually write their apps in ways that make them multi-lingual by default rather than just being techno-colonial bros who expect others to learn their language.
Again, this is gatekeeping. It's not realistic to expect every group to write their own operating systems from scratch, and it wouldn't build a world you envision since basically you'd have hundreds of competing standards.
@reflex (dropping Anil so not spamming him)
we might disagree on one point. I dont think everyone is entitled to get the fruits of everyone else's labors. And I think we all are empowered to spend time as we wish. I am not entitled to be able to buy and stream view a film about two nerds playing Pac-Man -- someone out there would have to make it, as they wish, and decide whether and how to share it. Including in what lang translations etc. Up to them not me. As with our relationship to software, both GUIs and CLIs.
@synlogic4242 Nobody is telling you how to spend your time. But complaining that people are dissing on the CLI without being willing to help make it accessible to everyone is a contradiction.
The solution to making the CLI a powerful tool for everyone is to make it accessible to everyone. Until then it will always be a lesser interface for the vast majority.
@anildash You are standing in an open field west of a white house, with a boarded front door.
There is a small mailbox here.
> Open mailbox
Opening the mailbox reveals: A leaflet.
> Take leaflet
WELCOME TO MASTODN!
MASTODON is a social network of nerds, furries, and very old nerds. In it you will explore some of the dumbest replies ever seen by mortals. No computer should be without one!
@anildash This may get me in trouble with the Linux nerds, but Powershell is a fucking fantastic CLI in terms of readability and discoverability. Every command is in Verb-Noun format so even if you don't know the name of the command you're looking for it's pretty easy to narrow down just by looking. The help/manual system is incredibly useful as well, if your search terms don't come up with a specific command name the system will search for that term in the very detailed descriptions every installed command, so again, you're pretty likely to find the function you're looking for. Also, in that documentation most commands come with detailed examples showing you exactly how its syntax works in most situations.
Point taken, it is not the kind of UI I would expect general users to be adopting. But it's one that was intentionally designed with its specific audience in mind. That is to say, system admins, who usually have little time to spare between putting out active fires and need to be able to find solutions quickly without pouring over esoteric command names and cryptic manual pages.
I think that GUI, TUI or otherwise CLI ... Whatever tool fits best for your stile, skill and goal - go for it.
If you feel to - you can drive a nail into the wall with pliers ... Unless you are Chuck Norris avoid bare hand π
@anildash the CLI is good for people who actually know what a computer is, can read manpages, and write scripts to automate tasks.
Not everyone is willing to learn computer science and the Unix operating environment just to edit their documents and look at cat pictures. This is ok, just as long as everyone is given the autonomy needed to manage their own machine how they want to, and learn how to do things more deeply if their life permits.
"In 2022 Dash and McCoy won the Webby lifetime achievement award for the development of NFTs"
Anil Dash is a troll farm in an allegedly human body.
Also, the replies he's getting to this "LOL NERDS" post are really horrible.
Horrible in that there are so many supportive comments about how the command line needs to be discoverable or something.
Like they're confusing "user friendly" (which command lines can be) with "learner friendly" (which command lines rarely are)
The whole reason Win11 sucks so much is that they want learner friendly and not user friendly.
@anildash
"Abandoned the command line 40 years ago"
Maybe you hallucinated that?
@anildash that is *not* a fact, btw. CLIs are no less discoverable than GUIs. both CLIs and GUIs can be designed with newb-friendly and newb-unfriendly features. I've personally designed, built, shipped many of both kinds for 40 years.
I'll shutup on this point, now. but I saw "someone wrong on the Internet" and had to chime in, per XKCD. :-)