Counterpoint: why should the standard for “just works” mean no CLI? What if distro maintainers decide that their user’s experience is improved by relegating some tasks to the shell?
Because knowing terminal commands is neither accessible nor feasible for the average computer user. It might be more efficient, if you take the time to learn it but the average computer user doesn’t want to spend that extra time. They want everything to be accessible and to be easy.
Linux should always have the choice to use the terminal. But if you want the day of the Linux desktop to actually arrive some day, you need at least a couple of distros that don’t require you to know what a package manager is.
They want everything to be accessible and to be easy.
CLI is both accessible and easy, intuitive even. The only problem is that it requires a fundamental knowledge basis, and some syntactic context. But that’s all pretty minimal.
I would argue a GUI is more confusing if it has any nested elements in it (like photoshop for example)
Agreed. But some people who never ever touched a terminal are scared by them and think they should not have to ever touch it. They can’t fathom that it’s actually less complicated to use for some tasks. And so this topic comes up every few days and nothing ever changes. Round and round it goes, like clockwork.
neither accessible nor feasible for the average computer user.
Absolute hogwash. Learning like five short words is absolutely not unfeasible for any literate person, if a user can’t do that, you can be sure they aren’t actually an average user, they can’t do anything with gui either. And probably need help tying their shoes.
A two years old child can learn 5 short words. A grown up can write them on a sticky note and plop them on a screen.
A good modern gui also presents itself in front of you. It directs your attention to important buttons/options. You don’t need any prior knowledge to know that a cog shaped button labeled settings will take you to settings. Good UIs are self explanatory. CLI are not.
To be able to use the terminal, you either need another person to tell you the necessary commands or search for a tutorial yourself, either online or somewhere else.
That’s not intuitive. It’s not too hard to learn, but you need to actively pursue learning how to do it. An average person doesn’t want to do that. An average person doesn’t even want to memorize more than one password. They should. But they won’t. Thus, password managers were created. And non technical minded people still don’t even use those.
You got to look at it from the point of view of someone who has no interest in knowing any more about their computer than how to turn it on, where to put their photos and how to open their browser and maybe an office suite. The kind of people that wouldn’t even update the system, if there wasn’t a notification asking for it. They’re not stupid. They just don’t care about computers and don’t want to spend any more mental power on them than necessary, the same way you wouldn’t want to think about manually keeping the timing of your car’s engine on point for the current conditions. You just want it to get you safely from A to B. Or maybe you do, but I assure you, most people wouldn’t.
A good modern gui also presents itself in front of you. It directs your attention to important buttons/options. You don’t need any prior knowledge to know that a cog shaped button labeled settings will take you to settings. Good UIs are self explanatory. CLI are not.
it also suffers from exponential growth complexity. CLI only has linear growth complexity. Every button and element you add to a gui makes refactoring the entire GUI layout exponentially harder.
If you ever had to teach anyone anything, properly teach, you would know it’s a myth. It’s self-explanatory to you because you’re already familiar with the logic, language, conventions. I’m guessing, you grew up with all that from childhood, and you just forgot how you had to learn all that, and now you assume this knowledge didn’t need to be taught. You think cog is a universally understood language for settings because you always had it in front of you. Just like a lot of people think/thought that 3.5 floppy is a universally understood icon for “save”, and people who grow up now have no idea what I am talking about.
And then you assume that you are the average person, and start measuring everyone by this mark.
But if several years of teaching people of different skills, motivations, and ages, how to work with computers taught me anything, it’s that there is no universal language, there is no, and cannot be anything self-explanatory, and intuitive interface is a myth perpetuated by people who newer used anything other that one OS they grew up with. There is no amount of skeuomorphism you can employ that doesn’t require at least some amount of learning.
And when it comes to learning, let me tell you, there is nothing more straightforward to teach than “you type words and then read what the computer typed you back.”
And if several years of tech support taught me anything, it’s that if a regular person who doesn’t care about a computer encounters a problem, they don’t have inherently better time fixing it with GUI, never, not at all, not in a million years. I however always have way better time helping them, if it’s Linux and I can tell them what to type and they can read me the response. This actually true even if people are good with computers and know their OS.
It’s self-explanatory to you because you’re already familiar with the logic, language, conventions. I’m guessing, you grew up with all that from childhood…
This argument can be used as a reason to implement GUIs.
If we wish to market to an audience that has had some basic experience with using Windows and Mac, we can skip some of the reteaching by implementing familiar GUIs
Most people do know how to use a computer though. Windows and macOS have been around for a very long time by now, and both have not required you to use the CLI for anything but very extreme cases in more than 25 years. You’re not starting with a blank slate. They know how a GUI is supposed to work. It is self explanatory to them. Shoving them towards a CLI is making them relearn stuff they already knew how to do. There’s a reason a lot of Windows migrants end up with KDE or Cinnamon. It’s familiar, it’s easy. Most people do in fact associate a cog with settings. CLI aren’t familiar to most people and thus a much larger hurdle.
Also, I’m not talking about fixing problems. The CLI is a perfectly valid tool to fix problems. Not everything has to be graphical. Just enough that you don’t need it unless something breaks.
knowing terminal commands is neither accessible nor feasible for the average computer user
I don’t think that’s true. It’s literally just asking your computer what to do, much easier to remember than memorizing which subpage of the control panel opens the right wizard to get what you want.
But people don’t memorize which subpage of the control panel leads to what they need. They go after content clues. You need to change your ip adress? Well it’s probably somewhere in the settings under the category network.
But cli you have to memorize. It doesn’t give you any context clues
It literally keeps a history of everything you’ve typed in, that you can search with context clues or just look through chronologically and get the exact command you needed from last time. Seems like you’re just making excuses. Needing to look in a dozen different pages isn’t any easier than looking to see what program you need to use.
What if we took the most used commands and instead of having to arrow-up through them, we just laid them out in a list or a grid, so you could click on them? And then we give them a little icon each that makes it a little prettier, more quickly recognizable and easier to click on. And because there are a lot of commands, maybe sort them by category. But who’d ever want that?
Also, I don’t know, when you last used a settings app or something similar but once you‘re more than two sub pages in, you’re usually in the realm of stuff even people who use a cli a lot would have to look up the commands. Because a good UI Design makes stuff you need regularly easy accessible.
You mean something like this? They exist, they’ve been around, for awhile actually.
The problem with them is that it is simply not easier. If you know what you want to do, it is faster to press two keys and start searching history, or just start typing and use autocomplete, than it is to move your mouse to click a square. And if you don’t know what you’re doing, you’ll have to do research regardless, and maybe I’m biased but I still think it is easier to copy and paste a command than it is to read the directions to get to the submenu I want, and then replicate each step in my own GUI.
Also, I don’t know, when you last used a settings app or something similar but once you‘re more than two sub pages in, you’re usually in the realm of stuff even people who use a CLI a lot would have to look up the commands
That’s just not true, at least for Windows. Many common things are hidden in window menus that can only be accessed from specific pages from the control panel, because MS never really committed to the whole Metro thing so you gotta dig around for the real stuff that hasn’t been added to the regular control panel.
Because a good UI Design makes stuff you need regularly easy accessible.
Right, but how often are UIs designed goodly? GUIs are nice, don’t get me wrong, but the simplicity of a CLI is wrongly maligned because people think it’s scary, and are in fact very easy to use if you spend the minimum necessary effort to know what you’re doing. Literally just tell the computer what you want to do
Different is not hard. Popular Linux distros have been streamlined to the point of not needing a CLI for casual use for 10+ years now anyway.
I’m aware stuff like that exists. I was being sarcastic. Just wanted to highlight, that searching through recent commands would be much easier in a GUI as well. Should’ve used a “/s”, my bad.
Also, I too wouldn’t highlight Windows as a staple of good UI design. Their jumble of 4 different design languages nested into each other in the most unintuitive ways with some actions having multiple possible ways and some having been hidden away deeply is not how I’d want a GUI to be. It’s also not user friendly and very much one reason I’ve banished windows from my household.
But, people are used to it. At least enough to find basic settings. And I think that’s the best argument against pushing the terminal. People are familiar with graphical interfaces. They understand commonly used symbols (like cog = settings and similar stuff) because all mainstream operating systems (be it desktop or mobile) have used something similar for close to 3 decades. They are familiar with menus and submenus. They don’t know where everything is, when they use an unfamiliar program/OS, of course but they are familiar with the concepts. They are not with CLIs. You are, because you have been using them for a while. So am I and so are quite a few other people who regularly use it. The average Joe computer user doesn’t.
Even stuff like tab to autocomplete and arrow-up for history are foreign concepts for someone who has never used a terminal before. Sure, it’s not hard to learn but they’d need to learn it. Not to mention, that a lot of commands are abstract enough that they are hard to memorise and thus to understand. It’s like a language you do have to learn. Not a difficult language if you don’t need to do complicated things but it’s a hurdle nonetheless.
Which is also why don’t like the “literally just telling the computer what to do” argument, I’ve heard a few times now. I mean, it’s not entirely wrong but it’s telling the computer what to do in its language, not in yours. You don’t type “Hello computer please update my system and programs” or even just “update”, you type “sudo pacman -Syu”. Any non-tech person will be utterly confused at what even a “sudo” is or what pacman has to do with Linux. And yes, pacman is an especially obtrusive example and Arch definitely not the distro for newbies, regardless of their stance on terminals but my point still stands, even with apt, dnf and co. To tell a computer what to do via CLI, you’ll either have to either learn its language or copy it from someone who does.
A GUI however tries to translate that language for you already and give you context clues based on common culture (floppy = save, cog = settings, folder = directories, etc.). It’s a language even small children and illiterate people and can understand, to some extent at least.
But yes, I do agree, the most popular distros are fairly streamlined and mostly useable without CLI. And that’s good. Makes it possible for Linux to slowly gain market share even among non technical people and I can, in good faith, recommend/install it for friends and family, knowing they’ll manage unless there’s a problem. And I do think, Linux is getting better in this regard every day, and while not on par yet with the current mainstream OSes in terms of ease of use, it’s not far behind anymore. But it is still behind.
I’m just tired of the elitist-enthusiast who doesn’t want linux to become easier to use for the everyman because it’d be less special. That attitude does not further FOSS and does not help anyone. Because that’s not how you reduce Microsoft’s, Google’s or Apple’s influence on the tech scene.
Counterpoint: why should the standard for “just works” mean no CLI? What if distro maintainers decide that their user’s experience is improved by relegating some tasks to the shell?
because taking away user choice and accessibility is never a good idea
Because knowing terminal commands is neither accessible nor feasible for the average computer user. It might be more efficient, if you take the time to learn it but the average computer user doesn’t want to spend that extra time. They want everything to be accessible and to be easy.
Linux should always have the choice to use the terminal. But if you want the day of the Linux desktop to actually arrive some day, you need at least a couple of distros that don’t require you to know what a package manager is.
CLI is both accessible and easy, intuitive even. The only problem is that it requires a fundamental knowledge basis, and some syntactic context. But that’s all pretty minimal.
I would argue a GUI is more confusing if it has any nested elements in it (like photoshop for example)
Agreed. But some people who never ever touched a terminal are scared by them and think they should not have to ever touch it. They can’t fathom that it’s actually less complicated to use for some tasks. And so this topic comes up every few days and nothing ever changes. Round and round it goes, like clockwork.
Absolute hogwash. Learning like five short words is absolutely not unfeasible for any literate person, if a user can’t do that, you can be sure they aren’t actually an average user, they can’t do anything with gui either. And probably need help tying their shoes.
A two years old child can learn 5 short words. A grown up can write them on a sticky note and plop them on a screen.
A good modern gui also presents itself in front of you. It directs your attention to important buttons/options. You don’t need any prior knowledge to know that a cog shaped button labeled settings will take you to settings. Good UIs are self explanatory. CLI are not.
To be able to use the terminal, you either need another person to tell you the necessary commands or search for a tutorial yourself, either online or somewhere else.
That’s not intuitive. It’s not too hard to learn, but you need to actively pursue learning how to do it. An average person doesn’t want to do that. An average person doesn’t even want to memorize more than one password. They should. But they won’t. Thus, password managers were created. And non technical minded people still don’t even use those.
You got to look at it from the point of view of someone who has no interest in knowing any more about their computer than how to turn it on, where to put their photos and how to open their browser and maybe an office suite. The kind of people that wouldn’t even update the system, if there wasn’t a notification asking for it. They’re not stupid. They just don’t care about computers and don’t want to spend any more mental power on them than necessary, the same way you wouldn’t want to think about manually keeping the timing of your car’s engine on point for the current conditions. You just want it to get you safely from A to B. Or maybe you do, but I assure you, most people wouldn’t.
it also suffers from exponential growth complexity. CLI only has linear growth complexity. Every button and element you add to a gui makes refactoring the entire GUI layout exponentially harder.
If you ever had to teach anyone anything, properly teach, you would know it’s a myth. It’s self-explanatory to you because you’re already familiar with the logic, language, conventions. I’m guessing, you grew up with all that from childhood, and you just forgot how you had to learn all that, and now you assume this knowledge didn’t need to be taught. You think cog is a universally understood language for settings because you always had it in front of you. Just like a lot of people think/thought that 3.5 floppy is a universally understood icon for “save”, and people who grow up now have no idea what I am talking about.
And then you assume that you are the average person, and start measuring everyone by this mark.
But if several years of teaching people of different skills, motivations, and ages, how to work with computers taught me anything, it’s that there is no universal language, there is no, and cannot be anything self-explanatory, and intuitive interface is a myth perpetuated by people who newer used anything other that one OS they grew up with. There is no amount of skeuomorphism you can employ that doesn’t require at least some amount of learning.
And when it comes to learning, let me tell you, there is nothing more straightforward to teach than “you type words and then read what the computer typed you back.”
And if several years of tech support taught me anything, it’s that if a regular person who doesn’t care about a computer encounters a problem, they don’t have inherently better time fixing it with GUI, never, not at all, not in a million years. I however always have way better time helping them, if it’s Linux and I can tell them what to type and they can read me the response. This actually true even if people are good with computers and know their OS.
This argument can be used as a reason to implement GUIs.
If we wish to market to an audience that has had some basic experience with using Windows and Mac, we can skip some of the reteaching by implementing familiar GUIs
Most people do know how to use a computer though. Windows and macOS have been around for a very long time by now, and both have not required you to use the CLI for anything but very extreme cases in more than 25 years. You’re not starting with a blank slate. They know how a GUI is supposed to work. It is self explanatory to them. Shoving them towards a CLI is making them relearn stuff they already knew how to do. There’s a reason a lot of Windows migrants end up with KDE or Cinnamon. It’s familiar, it’s easy. Most people do in fact associate a cog with settings. CLI aren’t familiar to most people and thus a much larger hurdle.
Also, I’m not talking about fixing problems. The CLI is a perfectly valid tool to fix problems. Not everything has to be graphical. Just enough that you don’t need it unless something breaks.
I don’t think that’s true. It’s literally just asking your computer what to do, much easier to remember than memorizing which subpage of the control panel opens the right wizard to get what you want.
But people don’t memorize which subpage of the control panel leads to what they need. They go after content clues. You need to change your ip adress? Well it’s probably somewhere in the settings under the category network.
But cli you have to memorize. It doesn’t give you any context clues
It literally keeps a history of everything you’ve typed in, that you can search with context clues or just look through chronologically and get the exact command you needed from last time. Seems like you’re just making excuses. Needing to look in a dozen different pages isn’t any easier than looking to see what program you need to use.
What if we took the most used commands and instead of having to arrow-up through them, we just laid them out in a list or a grid, so you could click on them? And then we give them a little icon each that makes it a little prettier, more quickly recognizable and easier to click on. And because there are a lot of commands, maybe sort them by category. But who’d ever want that?
Also, I don’t know, when you last used a settings app or something similar but once you‘re more than two sub pages in, you’re usually in the realm of stuff even people who use a cli a lot would have to look up the commands. Because a good UI Design makes stuff you need regularly easy accessible.
You mean something like this? They exist, they’ve been around, for awhile actually.
The problem with them is that it is simply not easier. If you know what you want to do, it is faster to press two keys and start searching history, or just start typing and use autocomplete, than it is to move your mouse to click a square. And if you don’t know what you’re doing, you’ll have to do research regardless, and maybe I’m biased but I still think it is easier to copy and paste a command than it is to read the directions to get to the submenu I want, and then replicate each step in my own GUI.
That’s just not true, at least for Windows. Many common things are hidden in window menus that can only be accessed from specific pages from the control panel, because MS never really committed to the whole Metro thing so you gotta dig around for the real stuff that hasn’t been added to the regular control panel.
Right, but how often are UIs designed goodly? GUIs are nice, don’t get me wrong, but the simplicity of a CLI is wrongly maligned because people think it’s scary, and are in fact very easy to use if you spend the minimum necessary effort to know what you’re doing. Literally just tell the computer what you want to do
Different is not hard. Popular Linux distros have been streamlined to the point of not needing a CLI for casual use for 10+ years now anyway.
I’m aware stuff like that exists. I was being sarcastic. Just wanted to highlight, that searching through recent commands would be much easier in a GUI as well. Should’ve used a “/s”, my bad.
Also, I too wouldn’t highlight Windows as a staple of good UI design. Their jumble of 4 different design languages nested into each other in the most unintuitive ways with some actions having multiple possible ways and some having been hidden away deeply is not how I’d want a GUI to be. It’s also not user friendly and very much one reason I’ve banished windows from my household.
But, people are used to it. At least enough to find basic settings. And I think that’s the best argument against pushing the terminal. People are familiar with graphical interfaces. They understand commonly used symbols (like cog = settings and similar stuff) because all mainstream operating systems (be it desktop or mobile) have used something similar for close to 3 decades. They are familiar with menus and submenus. They don’t know where everything is, when they use an unfamiliar program/OS, of course but they are familiar with the concepts. They are not with CLIs. You are, because you have been using them for a while. So am I and so are quite a few other people who regularly use it. The average Joe computer user doesn’t.
Even stuff like tab to autocomplete and arrow-up for history are foreign concepts for someone who has never used a terminal before. Sure, it’s not hard to learn but they’d need to learn it. Not to mention, that a lot of commands are abstract enough that they are hard to memorise and thus to understand. It’s like a language you do have to learn. Not a difficult language if you don’t need to do complicated things but it’s a hurdle nonetheless.
Which is also why don’t like the “literally just telling the computer what to do” argument, I’ve heard a few times now. I mean, it’s not entirely wrong but it’s telling the computer what to do in its language, not in yours. You don’t type “Hello computer please update my system and programs” or even just “update”, you type “sudo pacman -Syu”. Any non-tech person will be utterly confused at what even a “sudo” is or what pacman has to do with Linux. And yes, pacman is an especially obtrusive example and Arch definitely not the distro for newbies, regardless of their stance on terminals but my point still stands, even with apt, dnf and co. To tell a computer what to do via CLI, you’ll either have to either learn its language or copy it from someone who does.
A GUI however tries to translate that language for you already and give you context clues based on common culture (floppy = save, cog = settings, folder = directories, etc.). It’s a language even small children and illiterate people and can understand, to some extent at least.
But yes, I do agree, the most popular distros are fairly streamlined and mostly useable without CLI. And that’s good. Makes it possible for Linux to slowly gain market share even among non technical people and I can, in good faith, recommend/install it for friends and family, knowing they’ll manage unless there’s a problem. And I do think, Linux is getting better in this regard every day, and while not on par yet with the current mainstream OSes in terms of ease of use, it’s not far behind anymore. But it is still behind.
I’m just tired of the elitist-enthusiast who doesn’t want linux to become easier to use for the everyman because it’d be less special. That attitude does not further FOSS and does not help anyone. Because that’s not how you reduce Microsoft’s, Google’s or Apple’s influence on the tech scene.