A (larger) bit of history
Since I was first introduced to Linux at age 12, back in 1999 (with kind mentoring and two Red Hat Linux 5.0 CDs from my godfather), I went through a whole range of experiences, much like every other human being on the planet. In time, this operating system got under my skin. Luckily, my work revolves quite a lot around it and I pulled any reachable lever in order to steer my carrer towards Linux-centered work.
As years passed by, I toyed with distros like Slackware, Mandrake, SuSE, Debian, Ubuntu and Puppy Linux. Eventually, I sticked to Debian and, more recently, Ubuntu. Before you say anything, let me point out that I have been exclussively using Linux on my home desktop & laptop for the last two years and a half, while I previously used Linux on & off in dual-boot configurations for more than 12 years. Given that I occasionaly do some video editing and photo processing on the desktop, the official drivers are desirable. And Ubuntu offers quite decent hardware support in that respect.
With minimalist principles in mind, I became a big fan of tiling window managers and ended up building myself an Ubuntu-based system stripped of all that which I consider bloatware (things like Gnome Control Center, KDE, snapd, etc.). One day, I read more about the so-called “suckless tools”. By the time I read through their philosophy, I was hooked. Nothing got in the way of me trying out their tools and the dwm window manager. The Suckless Ubuntu project (a big word..) was born. Having a system that takes up less than 140 MB of RAM in GUI mode (with some background services and a running terminal) in 2019 feels pretty miraculous. My laptop is an older Acer Aspire ES1-512, which I upgraded with a 240 GB SSD. Previously, it was my wife’s work laptop that got to sit on a shelf for about one year and a half before I thought of putting it to use. Therefore, let it be known that I do not consider technology as being outdated if it’s older than 12 months and lacks the latest gimmick satisfying a non-existing need.
Despite all these facts, there were still things I did not manage to get along with through the years. Of course, at work I only use Linux in console mode, on remote servers & machines destined only to compile code and run custom test automation tools, or as ways of interacting with various embedded devices. At home, however, I felt I had to struggle at times in order to get some things working. This is not to say I do not love a challenge, because I really do and choosing the more difficult and uncomfortable path is something I frequently tend to pursue.
Some sort of an epiphany moment
After spending a couple of months tinkering on how to make a very minimal/spartan distro actually useful in day-to-day life, I realised I was behaving pretty much like the types I wrote about in the past: focusing & obsessing about the tool and ditching actual productive work.
Although I initially began tinkering just to get a faster OS for my old laptop that would allow me to work on a fairly complicated project I’ve been postponing for a whole year, I found myself waking up and thinking about the tool instead of using my attention and thought processes for working & extending my abilities.
When I finally gave in and installed a “big” Linux distribution, I again noticed some things about the Linux world that I find appauling from a desktop user’s perspective. Add these to some of the other reasons that made me struggle with creating my own Linux spin-off and voila: I’m thinking about Windows again.
I was aware of WSL (Windows Subsystem for Linux) and other good developments in Windows 10, so I eventually gave it a try one evening. Two hours and a working WSL Debian instance later and I didn’t look back.
It might sound very weird coming from me, but a lot of things just work in Windows (well, now they do, after Microsoft found it ethical enough to fire a whole QA division and use the actual clients as beta testers for more than two years…). And when it comes to daily desktop/laptop usage (including home time), that becomes a big plus.
- Hardware drivers: Well, nothing new here. Hardware vendors are quite reluctant and a lot of them do not provide accurate drivers for platforms like Linux & BSD. Some distros include them, others don’t, depending on which of the principles of “commercial freedom” are applied. My old wireless adapter (a pretty bland and common Broadcom chip) did not work at all under OpenSUSE. While FreeBSD worked like a charm in UEFI mode, non of the Linux distros I tried could be installed in UEFI on my Acer Aspire ES1-512. And the list goes on.
- Package managers: Various distributions have their own package management system. apt for Debian-based ones, yum for Red Hat/Fedora & the like, xbps on VoidLinux (this one is really neat!), pkg in Slackware and so on. Add flatpak (a somewhat desperate effort to inefficiently bring “famous” apps to Linux) to the mix and maybe Snap if you’re the trendy-type and pray to God your app will work on at least one.
- Dependency hell: Windows is blamed (with good reasons) for the intricate library & registry system it fosters, but Linux is not doing well at all in this department. You’d think Linux can be quite small in size and yet still run top-notch software, but even if you don’t use anything related to GNOME and Gnome Tools, installing simple command line utilities on Debian/Ubuntu will fetch quite a lot of GNOME components and libraries. And mind the versions, even though this is handled quite well in recent years. Again, something the user must take care of, repeatedly. Not to mention systemd, which indeed is the new disease spreading like crazy.
- Apps & Services: Microsoft does have a lot to be held accountable for, but one cannot ignore the fact that a great deal of applications (or programs, how we used to name them back in my day) and services are – more or less – Windows-exclussive. Even though I am using OpenShot as a video editor (which is open source and Linux-centered, sort of speak), I just find it comfortable to know that I can easily install programs, edit corporate documents (yes, MS Office is still ahead of LibreOffice) and review the photos I take with my DSLR camera (believe me, I’ve been using Darktable for one year and a half and, even though it is a respectable RAW image editor, it does not rise to Adobe Lightroom’s level).
- WSL FTW: As I said, I knew about Microsoft’s recent involvement in the Linux realm. Heck, they even own GitHub right now, which is home to most open source innovations. I gave it a try and I must admit it does the job. I somehow love the fact that I can be on Windows and just fire up a terminal and run inside a native Debian subsystem. Yes, Linux software runs well, and the whole toolchain is present. It’s cool to be able to compile C & C++ UNIX-like software on a Windows machine. And it works hand in hand with Visual Studio Code, which is an editor I have been admiring and using for years whenever I had the chance.
Therefore, I enjoy the fact that I can use the features I need from Linux (mainly programming and remote server administration) on a Windows workstation. It’s nice to not bother for hours on end about how to make a simple desktop feature work properly, or figure out a way to adapt a program packaged for a different distribution, with different library dependencies. This way, I can enjoy the good & useful parts I love about Linux by completely missing loads of hours devoted to frustration.
I never believed I’d reach this point, but I did. And that got me thinking about a lot of things. More on those, shortly.