And that's just those who can speak English. If someone doesn't, it's just nonsense for them.
> One has to be trained to right-click.
One has to be trained to understand which commands exist and what do they do. I can't imagine someone without any training typing `grep -nRIiw`. Sure, you can look it up in the manual, but that's the thing - you shouldn't. You should consult the manual when you're using something for the first time or something isn't working. I can pick up any vacuum cleaner or get in a rental car and start operating them right away. I have to look up how flag works with different CLI apps. I shouldn't have to. Good design should be obvious.
That's why we're not typing `systemctl poweroff --force` to turn off a TV, we just press a button on a remote. And I can pick up remotes from other TV sets and turn them off without looking up their manuals.
> nothing is ever consistent even on the "same" operating system.
Funny you mention that. I tried some of your commands. Turns out, I don't have systemctl or pdfgrep installed. So much for consistency.
Don't get me wrong, I also hate touch interfaces, for all the reasons you mentioned. But saying they're "bad design" is not a solution – it's a starting point at best.
What alternative are you suggesting for smartphone-sized devices? Mobile phones did have physical buttons, but once touchscreen-only devices came out, customers voted with their money. So much so, in fact, that smartphones with a physical keyboard are a tiny niche today. That's because keyboards just don't work well with small devices. Using a CLI with a smartphone keyboard would be an awful experience.
My solution is that touch interfaces are a bad design in the first place. They're significantly less accessible to people with disabilities. They present a lot more problems with feedback about which buttons you're _about_ to press. And they're ficking obnoxious because everyone and their marketing team wants a completely different interface so nothing is ever consistent even on the "same" operating system.
> For example?
Example 1: download one file from a url mentioned somewhere
Example 2: download a bunch of PDF files Example 2: move all PDFs that I just downloaded: Example 3: find what text file(s) have some text Example 4: find what pdf file(s) have some text Example 5: compare filenames in the two sets: And now, I have accepted a file from a team member which describes URLs to PDF reports with magic. I have generated a one-off report describing which files have magic content that needs to be reviewed because it contains magic that's described in in a local database.How about generating a git-diff, encrypting it, and emailing it?
... Okay so those one-off things are complex things. How about simple things?Example 6: move a file.
Example 7: open a file Example 8: delete a file Example 9: mount a thumb drive Example 10: unmount a thumb drive Example 11: shutdown, and don't let any bad app stop the shutdown All of these are IMO easier than in a GUI