commit: 6f91103c707e3d7f105fe4c1a5d8c77fd68a087f
parent a8776c5a7d9157fe23e460c1056061b3c843ab5a
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun, 5 Dec 2021 13:24:44 +0100
Linux!
Diffstat:
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 — 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 — 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
+— but not all games — 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 — I am one such user myself — 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 — 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 — 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