logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git
commit: 6f91103c707e3d7f105fe4c1a5d8c77fd68a087f
parent a8776c5a7d9157fe23e460c1056061b3c843ab5a
Author: Drew DeVault <sir@cmpwn.com>
Date:   Sun,  5 Dec 2021 13:24:44 +0100

Linux!

Diffstat:

Acontent/blog/How-new-Linux-users-succeed.md145+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acontent/blog/What-desktop-Linux-needs.md147+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 292 insertions(+), 0 deletions(-)

diff --git a/content/blog/How-new-Linux-users-succeed.md b/content/blog/How-new-Linux-users-succeed.md @@ -0,0 +1,145 @@ +--- +title: How new Linux users can increase their odds of success +date: 2021-12-05 +--- + +The [Linus Tech Tips] YouTube channel has been putting out a series of videos +called the [Switching to Linux Challenge] that has been causing a bit of a stir +in the Linux community. I've been keeping an eye on these developments, and +thought it was a good time to weigh in with my thoughts. This article focuses on +how new Linux users can increase their odds for success &mdash; I have also +written a companion article, "[What desktop Linux needs to succeed in the +mainstream][0]", which looks at the other side of the problem. + +[Linus Tech Tips]: https://yewtu.be/channel/UCXuqSBlHAE6Xw-yeJA0Tunw +[Switching to Linux Challenge]: https://yewtu.be/playlist?list=PL8mG-RkN2uTyhe6fxWpnsHv53Y1I-K3yu +[0]: /2021/12/05/What-desktop-Linux-needs.html + +Linux is, strictly speaking, an operating system *kernel*, which is a small +component of a larger system. However, in the common usage, Linux refers to a +family of operating systems which are based on this kernel, such as Ubuntu, +Fedora, Arch Linux, Alpine Linux, and so on, which are referred to as +*distributions*. Linux is used in other contexts, such as Android, but the +common usage is generally limited to this family of Linux "distros". Several of +these distros have positioned themselves for various types of users, such as +office workers or gamers. However, the most common Linux user is much different. +What do they look like? + +The key distinction which sets Linux apart from more common operating systems +like Windows and macOS is that Linux is *open source*. This means that the +general public has access to the *source code* which makes it tick, and that +anyone can modify it or improve it to suit their needs. However, to make +meaningful modifications to Linux requires programming skills, so, +consequentially, the needs which Linux best suits are the needs of programmers. +Linux is the preeminent operating system for programmers and other highly +technical computer users, for whom it can be suitably molded to purpose in a +manner which is not possible using other operating systems. As such, it has +been a resounding success on programmer's workstations, on servers in the cloud, +for data analysis and science, in embedded workloads like internet-of-things, +and other highly technical domains where engineering talent is available and a +profound level of customization is required. + +The Linux community has also developed Linux as a solution for desktop users, +such as the mainstream audience of Windows and macOS. However, this work is +mostly done by enthusiasts, rather than commercial entities, so it can vary in +quality and generally any support which is available is offered on a +community-run, best-effort basis. Even so, there have always been a lot of +volunteers interested in this work &mdash; programmers want a working desktop, +too. Programmers also want to play games, so there has been interest in getting +a good gaming setup working on Linux. In the past several years, there has +also been a commercial interest with the budget to move things forward: Valve +Software. Valve has been instrumental in developing more sophisticated gaming +support on Linux, and uses Linux as the basis of a commercial product, the Steam +Deck.[^1] + +[^1]: Full disclosure: I represent a company which has a financial relationship with Valve and is involved in the development of software used by the Steam Deck. + +Even so, I must emphasize the following point: + +**The best operating system for gaming is Windows.** + +Trying to make Linux do all of the things you're used to from Windows or macOS +is not going to be a successful approach. It is *possible* to run games on +Linux, and it is *possible* to run some Windows software on Linux, but it is not +*designed* to do these things, and you will likely encounter some papercuts on +the way. Many advanced Linux users with a deep understanding of the platform and +years of experience under their belt can struggle for days to get a specific +game running. However, thanks to Valve, and the community at large, many games +&mdash; but not all games &mdash; run out-of-the-box with much less effort than +was once required of Linux gamers. + +Linux users are excited about improved gaming support because it brings gaming +to a platform that they already want to use *for other reasons*. Linux is not +Windows, and offers an inferior gaming experience to Windows, but it *does* +offer a superior experience in many other regards! If you are trying out Linux, +you should approach it with an open mind, prepared to learn about what makes +Linux special and *different* from Windows. You'll learn about new software, new +usability paradigms, and new ways of using your computer. If you just want to do +all of the same things on Linux that you're already doing on Windows, why switch +in the first place? The value of Linux comes from what it can do differently. +Given time, you will find that there are many things that Linux can do that +Windows cannot. Leave your preconceptions at the door and seek to learn what +makes Linux special. + +I think that so-called "power users" are especially vulnerable to this trap, and +I've seen it happen many times. A power user is someone who deeply understands +the system that they're using, knows about every little feature, knows all of +the keyboard shortcuts, and integrates all of these details into their daily +workflow. Naturally, it will take you some time to get used to a new system. You +can be a power user on Linux &mdash; I am one such user myself &mdash; but +you're essentially starting from zero, and you will learn about different +features, different nuances, and different shortcuts, all of which ultimately +sums to an entirely *different* power user. + +The latest LTT video in the Linux series shows the team going through a set of +common computer tasks on Linux. However, these tasks do little to nothing to +show off what makes Linux special. Watching a 4K video is nice, sure, and you +can do it on Linux, but how does that teach you anything interesting about +Linux? + +Let me offer a different list of challenges for a new Linux user to attempt, +hand-picked to show off the things which set Linux *apart* in my opinion. + +1. **Learn how to use the shell.** A lot of new Linux users are intimidated by + the terminal, and a lot of old Linux users are understandably frustrated + about this. The terminal is one of the *best* things about Linux! We praise + it for a reason, intimidating as it may be. [Here's a nice tutorial to start + with][ubuntu shell tutorial]. +1. **Find and install packages from the command line.** On Linux, you install + software by using a "package manager", a repository of software controlled by + the Linux distribution. Think of it kind of like an app store, but + non-commercial and without malware, adware, or spyware. If you are + downloading Linux software from a random website, it's probably the wrong + thing to do. See if you can figure out the package manager instead! +1. **Try out a tiling window manager,** especially if you consider yourself a + power user. I would recommend [sway], though I'm biased because I started + this project. Tiling window managers change the desktop usability paradigm by + organizing windows *for you* and letting you navigate and manipulate them + using keyboard shortcuts alone. These are big productivity boosters. +1. **Compile a program from source.** This generally is not how you will usually + find and use software, but it is an interesting experience that you cannot do + on Windows or Mac. Pick something out and figure out where the source code is + and how to compile it yourself. Maybe you can make a little change to it, + too! +1. **Help someone else out online.** Linux is a community of volunteers + supporting each other. Take what you've learned to [/r/linuxquestions] or + your distro's chat rooms, forums, wikis, or mailing lists, and make them a + better place for everyone else. The real magic of Linux comes from the + collaborative, grassroots nature of the project, which is something you + really cannot get from Windows or Mac. + +Bonus challenge: complete all of the challenges from the LTT video, but only +using the command line. + +All of these tasks might take a lot longer than 15 minutes to do, but remember: +embrace the unfamiliar. You don't learn anything by doing the things you already +know how to do. If you want to know why Linux is special, you'll have to step +outside of your comfort zone. Linux is free, so there's no risk in trying 🙂 +Good luck, and do not be afraid to ask for help if you get stuck! + +[ubuntu shell tutorial]: https://ubuntu.com/tutorials/command-line-for-beginners#1-overview +[sway]: https://swaywm.org +[git]: https://git-scm.com/ +[manage]: https://drewdevault.com/2019/12/30/dotfiles.html +[dotfiles]: https://git.sr.ht/~sircmpwn/dotfiles/ +[/r/linuxquestions]: https://reddit.com/r/linuxquestions diff --git a/content/blog/What-desktop-Linux-needs.md b/content/blog/What-desktop-Linux-needs.md @@ -0,0 +1,147 @@ +--- +title: What desktop Linux needs to succeed in the mainstream +date: 2021-12-05 +--- + +The [Linus Tech Tips] YouTube channel has been putting out a series of videos +called the [Switching to Linux Challenge] that has been causing a bit of a stir +in the Linux community. I've been keeping an eye on these developments, and +thought it was a good time to weigh in with my thoughts. This article focuses on +what Linux needs to do better &mdash; I have also written a companion article, +"[How new Linux users can increase their odds of success][0]", which looks at the +other side of the problem. + +[Linus Tech Tips]: https://yewtu.be/channel/UCXuqSBlHAE6Xw-yeJA0Tunw +[Switching to Linux Challenge]: https://yewtu.be/playlist?list=PL8mG-RkN2uTyhe6fxWpnsHv53Y1I-K3yu +[0]: /2021/12/05/How-new-Linux-users-succeed.html + +Linux is *not* accessible to the average user today, and I didn't need to watch +these videos to understand that. I do not think that it is reasonable today to +expect a non-expert user to successfully install and use Linux for their daily +needs without a "Linux friend" holding their hand every step of the way. + +This is not a problem unless we want it to be. It is entirely valid to build +software which is accommodating of experts only, and in fact this the kind of +software I focus on in my own work. I occasionally use the racecar analogy: you +would not expect the average driver to be able to drive a Formula 1 racecar. +It is silly to suggest that Formula 1 vehicle designs ought to accommodate +non-expert drivers, or that professional racecar drivers should be driving +mini-vans on the circuit. However, it is equally silly to design a professional +racing vehicle and market it to soccer moms. + +I am one of the original developers of the [Sway] desktop environment for +Linux. I am very proud of Sway, and I believe that it represents one of the +best desktop experiences on Linux. It is a rock-solid, high-performance, +extremely stable desktop which is polished on a level that is competitive with +commercial products. However, it is designed for *me*: a professional, +expert-level Linux user. I am under no illusions that it is suitable for my +grandmother.[^1] + +[sway]: https://swaywm.org + +[^1]: However, I suspect that the LTT folks and other "gaming power-user" types would find Sway very interesting, if they approached it with a sufficiently open-minded attitude. For details, see the companion article. + +This scenario is what the incentives of the Linux ecosystem favors most. Linux +is one of *the best* operating systems for professional programmers and +sysadmins, to such an extraordinary degree that most programmers I know treat +Windows programmers and sysadmins as the object of well-deserved ridicule. Using +Windows for programming or production servers is essentially as if the race car +driver from my earlier metaphor *did* bring a mini-van to the race track. Linux +is the operating system developed by programmers, for programmers, to suit *our* +needs, and we have succeeded tremendously in this respect. + +However, we have failed to build an operating system for people who are *not* +like us. + +If this is not our goal, then that's fine. But, we can build things for +non-experts if we choose to. If we set "accessible to the average user" as a +goal, then we must take certain steps to achieve it. We need to make major +improvements in the following areas: robustness, intuitiveness, and community. + +The most frustrating moments for a user is when the software they're using does +something inexplicable, and it's these moments that they will remember the most +vividly as part of their experience. Many Linux desktop and distribution +projects are spending their time on shiny new features, re-skins, and expanding +their scope further and further. This is a fool's errand when the project is not +reliable at its current scope. A small, intuitive, reliable program is better +than a large, unintuitive, unreliable program. Put down the paint brush and pick +up the polishing stone. I'm looking at you, KDE.[^2] + +[^2]: There is at least one person at KDE working along these lines: [Nate Graham](https://pointieststick.com). Keep it up! + +A user-friendly Linux desktop system should not crash. It should not be possible +to install a package which yeets gnome-desktop and dumps them into a getty. The +smallest of interactions must be intuitive and reliable, so that when Linus +drags files from the decompression utility into a directory in Dolphin, it does +the right thing. This will require a greater degree of cooperation and unity +between desktop projects. Unrelated projects with common goals need to be +reaching out to one another and developing robust standards for achieving those +goals. I'm looking at you, Gnome. + +Linux is a box of loosely-related tools held together with staples and glue. +This is fine when the user understands the tools and is holding the glue bottle, +but we need to make a more cohesive, robust, and reliable system out of this +before it can accommodate average end-users. + +We also have a lot of work to do in the Linux community. The discussion on the +LTT video series has been exceptionally toxic and downright embarrassing. There +is a major problem of elitism within the Linux community. Given a hundred ways +of doing things on Linux (✓), there will be 99 assholes ready to tell you that +your way sucks (✓). Every Linux user is responsible for doing better in this +regard, especially the moderators of Linux-adjacent online spaces. Wouldn't it +be better if we took pride in being a friendly, accessible community? Don't +flame the noobs. + +Don't flame the experts, either. When Pop!\_OS removed gnome-desktop upon +installing Steam, the Linux community rightly criticised them for it. This was a +major failure mode of the system in one of its flagship features, and should +have never shipped. It illuminates systemic failures in the areas I have drawn +our attention to in this article such as robustness and intuitiveness, and +Pop!\_OS is responsible for addressing the problem. None of that excuses the +toxic garbage which was shoveled into the inboxes of Pop!\_OS developers and +users. Be better people. + +Beyond the toxicity, there are further issues with the Linux community. There +are heaps and heaps of blogs shoveling out crappy non-solutions to problems +noobs might be Googling, most of which will fuck up their Linux system in some +way or another. It's very easy to find bad advice for Linux, and very hard to +find good advice for Linux. The blog spammers need to cut it out, and we need to +provide better, more accessible resources for users to figure out their issues. +End-user-focused Linux distributions need to take responsibility for making +certain that their users understand the best ways to get help for any issues +they run into, so they don't go running off to the Arch Linux forums blindly +running terminal commands which will break their Ubuntu installation. + +End-user software also needs to improve in this respect. In the latest LTT +video, Luke wanted to install OBS, and the right thing to do was install it from +their package manager. However, [the OBS website][1] walks them through +installing a PPA instead, and has a big blue button for building it from source, +which is definitely not what an average end-user should be doing. + +→ Related: [Developers: Let distros do their job](/2021/09/27/Let-distros-do-their-job.html) + +[1]: https://obsproject.com/download + +One thing that we do not need to do is "be more like Windows", or any other OS. +I think that this is a common fallacy found in end-user Linux software. We +should develop a system which is intuitive in its own right without having to +crimp off of Windows. Let's focus on what makes Linux interesting and useful, +and try to build a robust, reliable system which makes those interesting and +useful traits accessible to users. Chasing after whatever Windows does is not +the right thing to do. Let's be prepared to ask users to learn things like new +usability paradigms if it illuminates a better way of doing things. + +So, these are the goals. How do we achieve them? + +I reckon that we could use a commercial, general-purpose end-user Linux distro. +As I mentioned earlier, the model of developers hacking in their spare time to +make systems for themselves does not create incentives which favor the average +end-user. You can sell free software &mdash; someone ought to do so! Build a +commercial Linux distro, charge $20 to download it or mail an install CD to the +user, and invest that money in developing a better system and offer dedicated +support resources. Sure, it's *nice* that Linux is free-as-in-beer, but there's +no reason it has to be. I've got [my own business][sourcehut] to run, so I'll +leave that as [an exercise for the reader][stripe]. Good luck! + +[sourcehut]: https://sourcehut.org +[stripe]: https://stripe.com/atlas