Site Navigation

Bunbun's Blog

Yes, Do As I Say: The Command Line, Linux and Beginner Friendliness

Posted on: 2022/01/17 | Author: Lian

In the GNU/Linux world, there is a lot of controversy. Always. About virtually anything.

One of the controversies that actually ended up somewhat impacting the GNU world in recent times was and is the debate around beginner friendliness, accessibility and the dichotomy user freedom versus user experience.

Arguably the event that reignited this debate was a video by the technology focused YouTube star Linus Tech Tips, who in a series about using a "Linux" system as a daily driver, accidentally ended up uninstalling his entire desktop environment. This has sparked a hot debate around whether a GNU/Linux machine should enable the user by default to wreck their system like this.

In the video, Linus Tech Tips attempts to install the Steam gaming store using the command line, following a tutorial online; when a corrupted package caused apt to attempt and uninstall the entire dektop environment, including the xorg server. Of course, apt threw a tantrum with about a dozen lines clearly labelled "WARNING" and only permitted the operation if Linus typed in the entire sentence "Yes, Do As I Say". Unwilling to read console output, Linus only read the last instruction, ending up forcing the install and subsequent removal of his desktop environment.

This video, which concluded with the opinion that Linux is only for nerds and technically inclined people, blew shock waves through the GNU/Linux community. Many measures have since been taken: the package manager tool apt for example implemented a new "force" flag upon installing a package that, only when it's present, allows a user to uninstall core packages, and otherwise throws an error. KDE implemented a failsafe that throws an error and aborts the operation if someone using their GUI based store prompts an operation that would end up hurting the Plasma desktop environment.

The Debate

Regarding this debate, only two major camps appear to have formed: those who applaud the measures taken and hold the opinion that GNU/Linux systems are inaccessible, clunky and intransparent, and need severe changes to appeal to the general population, and those commonly branded elitists who hold the opinion that GNU/Linux should allow the user total freedom to destroy their system, as GNU is for techies only, and safety nets were handholding and practically no better than something like Microsoft or Apple operating systems.

I posit a third position: the debate should not be between "destructive user freedom for nerds who like to use the console" and "locked down idiot proof systems with a fancy GUI". Instead, I proclaim that GNU/Linux workflows are already easier and more beginner friendly than those of other operating systems, and the only reason people proclaim the command line is bad UX and "only for nerds" is because these supposed "beginners" have already been tainted and conditioned by the obstrusive Windows-like way of doing things.

One of the most common arguments by proponents of the "make Linux easier" camp is that you should never rely on the command line at all, and instead use graphical user interfaces for everything as everyone knows how to use them already and they present information in an easily digestible way.

But why? A command line gives you information, in plain natural language, asking you in clear and easy and even non-technical terms what you would like to do. Those people use the term "white noise" to call terminal text output; as if it was in binary code or written in a programming language!

The only reason why the command line is considered daunting or user unfriendly by most people is that most people were already preconditioned from a young age to be familiar with Windows or MacOS systems; not because a command line was particularly complicated, unfriendly or difficult.

They are taught to ignore what their computer tells them and just click confirm or exit the window. Why? Certainly not because the systems they are used to present information in an easily digestible way; otherwise, why would they be inclined to skip reading anything and instead just exit the prompt as fast as possible? Because the systems they are used to, like Windows, bombard them with useless and obtuse information they cannot comprehend.

If you put someone in front of a terminal who had never used a Windows system, they would actually read what the computer tells them, as it is the natural thing to do if text appears on your screen. And what would they have read in the case of Linus Tech Tips' debacle? "Warning!", and "This will harm your computer!". And "Type this sentence in full if you are completely sure you want to potentially wreck your computer!

Only people who are already preconditioned to not read text in an operating system would ignore this warning.

Scary, Scary Command Lines

Consider the process to install a program on, say, Windows: you have to open a third party application, a browser, use a search engine (that you have to know how to use) to find the website of the program you want (no telling whether the website you are visiting is actually safe, official or secure), then download a random executable from said website you found, and THEN get moved through an installer that you have to click through in order to even install the program. To launch it, you have to find the executable the installer created; or find it in the start menu or the Desktop in case it did put a shortcut there. Every vendor and developer can have their own installation methods, which means you never know just exactly how to install a program before trying it and spending time in a search engine.

Compare that to a package manager like apt: you put in "apt install program-name". Done. It is installed. To launch it, enter the program name. How is this in any way more complicated, daunting or technical than the Windows method?

It's more secure, as the repositories are maintained by technically inclined communities and not the random website owner of the site you found, it is easier as you don't have to search the web using third party search engines and browsers to find a program, and it's a better practice, as it does not teach beginners to execute random executables they downloaded off the web.

The command line way is objectively easier to use than the Windows method of navigating several third party tools to find a random binary file. The only reason why it is generally viewed as more complicated or daunting is because people have been conditioned to navigate Windows systems.

Put a total computing beginner in front of a command line and they will find it easier than a GUI. Even understanding concepts such as moving windows around, clicking buttons, using the double click, entering and exiting text fields, understanding the little title bar symbols; those are all things the average total computer beginner does not know anything about.

But anyone, even the most sheltered 150 years old great-grandmother, understands the concept of "talking to the computer", typing in commands, and pressing enter to "speak" to the machine. And it talks back.

This entire debate is dominated by people who pretend that the only way to idiot-proof a system was to introduce more barriers to stop new users from wrecking their systems. But those barriers already exist (and if they don't, as in the case of the KDE GUI based store, it's great that they are introduced)! Users just refuse to read what their computer tells them, not because it's difficult to read, but because they are prejudiced, they have been taught to consider plain simple natural English text to be irrelevant if it's in a monospace font.

The problem is not that GNU/Linux systems were complicated or have shitty UX, the problem is that people are mistaught how to interact with computers. The GNU way of doing things is much, much easier and more straightforward for any beginner to use than the Windows way; the problem is that we are not talking about actual beginners when we say "beginners", but people who have already been navigating the horrible UX of Windows who then expect their new Linux based system to work equally as difficult as their Windows system.

In making GNU/Linux more "Windows-like", GUI based and text-averse, you are actually making GNU/Linux harder to use for beginners. Ironically, it's the MacOS users in my life who, in my experience, are more familiar with GNU/Linux systems than the Windows users: they already know repositories and stores from the App Store, for example.

Ideally, the GNU/Linux world should continue creating optional failsafes and safety nets in their core utilities. I do not mind the new flags in apt or the new security nets in the KDE store; but I do mind that this debate is presented as a dichotomy between the command line and the GUI. The command line is the easier way to operate a computer for beginners, and it is bugging me that people pretend that it was a relic of the "nerds only" era of GNU/Linux systems.

And if you doubt me, sit the "has never had a computer" person from your extended family in front of an Arch Linux command line, and then in front of a Windows machine, and ask them whether it was easier spending an hour learning how they can talk to the computer and install software, or several hours getting them to be able to use a mouse to drag windows and get the timing for a double click right, then learn them to use some browser, navigate the entire internet, filter out trustworthy from suspicious websites, find a download button, find their download folder, run an executable, ... ... ... ...