I want to clarify right away that this article will focus exclusively on the desktop use of Linux, i.e., on home PCs/laptops and workstations. Everything outlined below does not concern Linux on servers, embedded systems, and other similar devices, as what I am about to unleash a ton of venom on might actually benefit those areas of application.
It was 2020, and Linux on the desktop still had its same 2%, just like 20 years ago. Linux enthusiasts continued to flood forums with discussions on 'how to beat Microsoft and conquer the world' and searching for answers to the question of why 'these stupid hamsters' don't want to embrace the penguin. Although the answer to this question has long been clear — because Linux is not a system, but a jumble of disparate hacks held together with duct tape.
Why do people sit down at a computer? Many might think the answer is: to use various useful applications. But that’s the wrong answer. People generally don't care about the applications. They are trying to achieve their goals:
- to chat with friends, boosting their mood and social value
- to earn money by finding demand for their skills and talents
- to learn something, catch up on news about their city, country, or the planet
And so on. It is precisely such goals that UI/UX design of applications aims for. Taking an initial point A of a pile of hardware aka a desktop or laptop, we take the end goal In — 'to chat with friends' — and build a smooth trajectory from A to In with a minimum of intermediate points. Moreover, these points should be cohesive entities, single actions, rather than a complex of some actions. This is the embodiment of good design.
And what about Linux?
In Linux, the ceiling of design is not goal achievement, but solving problems. Instead of a goal In developers attempt to embody a pseudo-goal b. Instead of thinking about how users will chat with friends, Linux developers create yet another messenger, cramming in features from the list of 'just like everyone else.' Do you sense the difference?
A healthy designer thinks: people, when meeting and communicating, often share selfies, so let’s attach a button to 'send a selfie' here, in a prominent place, so it’s handy and takes a photo of the user with the webcam, allowing them to center the photo right away and apply filters to it.
A manual-smoking designer thinks: We will implement file forwarding support; it's universal and will satisfy everyone. To send a selfie, however, a person has to find software to capture from the webcam, then retouch the photo in some graphic editor, and finally send it using the seventeenth option in the 'Tools' menu. BUT WE HAVE UNIXWAY!
The saddest part is that the same approach is even used at the operating system level — that is, at the level of overhead operations, which is just nonsense. They managed to spoil even the wonderful idea of package managers, which in theory would allow managing all software with mouse clicks. But no, now we have 4 types of software sources: official repositories, snap, flatpak, and unofficial repositories that still need to be searched for and added to the package manager settings. Half of the functions are only available from the terminal. Instead of being a helpful assistant, the package manager has turned into a personal dictator, who erupts in lengthy furious tirades at any step to the left or right, saying that the user is foolish and doing everything wrong.
— Why can't I install the latest $PROGRAM_NAME on my system??
— Because screw you, that's why. It's not about the user and their needs; it's about a BEAUTIFUL CONCEPT!
Instead of the shortest smooth trajectories from A to In with intermediate unified actions, we have winding sequences of points, each representing not just a single simple action, but a whole set of actions, often involving the terminal. Moreover, these sequences differ from Linux to Linux, from environment to environment, making it so long and tedious to help newcomers with their problems, and it's utterly pointless to write general instructions.
If much of the flirting in the emo circles consisted of unobtrusive attempts to determine the partner's gender, then much of the help in the Linux community consists of tedious attempts to find out the exact configuration of the hardware and software of the suffering user.
The funniest thing is that the holy spirit of the unfinished uniksveya has long been consuming the ecosystem from within, including its vast human and machine resources. The Linux community is genuinely bogged down in Sisyphean attempts to gather, test, and configure three hundred trillion billion different combinations of small building blocks, from which dozens of popular Linux distributions are made, developing independently of each other and common sense. While in a unified, cohesive system we have a limited set of trajectories along which events can unfold during computer operation, in the case of Linux, the system may respond to the same actions today with one result, and tomorrow, after an update, provide a completely different one. Or it might display nothing at all — just a black screen instead of a login.
But really, why bother with some boring goals of a sociopath? It's better to play with this exciting constructor!
How to fix it
First of all, we need to rid ourselves of the illusion that the problem can be solved by creating yet another non-boring Ubuntu clone with cool icons and pre-installed Wine. This issue cannot be resolved by introducing yet another pretty concept like 'let's move the configs under git management, that will be awesome!'.
Linux needs to be humanized. Identify the set of goals that people aim to achieve. And build concise, simple, and obvious pathways to them, starting from the moment a person presses the Power button on the system unit.
This means — to reinvent everything, starting from the bootloader.
And while we see yet another birth of yet another distribution with rearranged furniture and re-pasted wallpaper, we can be sure that Linux will remain a pastime for people who didn't get enough playtime with building blocks as children.
Source: habr.com
