LOL I stepped away from Mastodon for a couple hours and everybody is VERY MAD that I made jokes about CLIs. I use them every day, guys, it's gonna be okay. I promise I did not hurt Zork's feelings. It is, however, a factual statement that CLIs are not discoverable user interfaces and they are a poor choice for mainstream audiences; this debate was settled long ago.
@anildash for decades I've been using CLI tools which are highly discoverable, far more than typical GUI apps
@synlogic4242 @anildash If I put a regular person in front of a CLI for a system they have never used before, they will be utterly lost. I'm glad you can magically know about grep and all, but most people wouldn't know where to begin.
@reflex @anildash --help. easy to learn. unlocks a lot. or "man foo"

@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.

@reflex @synlogic4242 yeah, -- help after … what, exactly? A random group of characters?

@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.

@reflex @anildash I hear you!

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.

@reflex @anildash we agree there are dials to be turned which can make it easier or harder. for CLIs and GUIs. heck I'm a believer every GUI app should ship with its own integrated docs, search tutorials etc. Its fairly cheap on the margins to add it to the feature set. Just as I think every CLI should have something like --help and man pages. Heck a good pattern for a CLI is, in the absence of any args it should print at least a minimal --help. I'm building a new server in recent months and even as a network server -- super geeky -- I ensure its CLI makes an effort to help teach/remind users how to use it and get bootstrapped. I try to do right by "my future self" and assume I'll revisit it in 5 years say and forgotten how to use it. A time capsule message to myself. This in turn helps others (not me) get bootstrapped. The problem is this tactic can exist in GUIs too but... their users will still always be handicapped. Until and unless they make the jump to CLIs, APIs, REPLs or other TUIs.

@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 Nobody here is hating on CLI's, they are saying that graphical UI's should always be a first class option due to the lower barrier to entry, and that the CLI itself should be fully intuitive and accessible regardless of someone's background, primary language, or special need. The latter are solved problems in the GUI space but little effort has gone into solving them for the CLI.
@reflex @anildash I hear you. I concluded years ago that CLIs/APIs/REPLs/TUIs should be the 1st class tier options, and de facto were already. With GUIs at best built on top of them, with them, or to serve special cases or niches. Its a good synergy. But with a CLI users get a much higher ceiling and productivity. Like healthy food from grocery store rather than a marked-up candy bar from gas station. Latter might be helpful in niche cases but not wise in long run.

@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

@reflex @anildash Thai folks are free today to write their own software tools to copy files, and release it under a Thai-appropriate name. (Thai etc?) Go for it.
@synlogic4242 @anildash Why is that more reasonable than to just, you know, localize commands?
@anildash @reflex if someone can remember what a small arbitrary bitmap icon "means" but not say a 2-5 character word, I dont know what to say about their cognitive skills or ability to function in civ. language (English or Spanish or whatever) is a bedrock skill we all must have, else not sure how an adult can survive. kids & babies, sure

@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 a "floppy disk" icon means nothing unless user has prior knowledge of that as a real world item, and even that generation is dying out. kids wont know, inherently, on day one. just as they dont know what A is, or "apple" is. All of it is icons. Icons all the way down. On that we agree.
@synlogic4242 @anildash Sure, iconography has to be updated and in many cases *is* being updated (Apple has done a lot to make that happen), but it does not change the fact that it's still far more discoverable. Furthermore in Windows there is virtually always a pulldown menu, fully localized, that grants access to the functions by name.

@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...

@reflex @anildash English-centric... nothing is stopping folks who are French-native, Spanish-native, etc from making their own software, releasing to public, under whatever tool names they wish, including names in French, Spanish etc. Leverage Unicode. English-native folks happen to have played key roles in the majority of the world's software ecosystems. It is what it is.

@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.