← Back to context

Comment by pixelmonkey

2 years ago

I'm one of those long-time programmers who has run Linux on the desktop for decades, and I also use Android out of a sense of obligation for running comprehensible, auditable, open source software in as many places as practical. Also, IMO, there is something important about using the "non-dominant" platform as a techie. I might need to start using Firefox (rather than Chrome/Chromium) for the same reason.

I have no regrets about Linux on the desktop over decades. Using my Linux desktop is a joy, and I always viewed Linux system administration as a worthwhile skill which I have cross-applied professionally in the realm of cloud servers and DevOps.

In the period where Windows had dominant market share, I relegated Windows usage to a VM for a handful of software packages (e.g. Quickbooks), running on my Linux host.

Sometime around 2018, I realized I hadn't booted a VMWare VM in a few years, so I could just delete that VM guest, and the host software, too.

Nowadays, I basically ignore the entire Windows desktop space in my everyday computing. I keep an eye on Windows 11 via a Media PC I use for streaming edge cases to my TV, like old Blu-ray or DVD rips. I use a proprietary desktop via a Mac Mini, which is my dedicated "Zoom call box", but also where a handful of proprietary apps live. I don't need desktop Quickbooks anymore, so instead this is my way of accessing things like MSWord, MSExcel, Acrobat, and ScanSnap software. Basically, those rare situations where web software alternatives won't work.

Here's an interesting question I've been thinking about: in 2023, why are so many developers encountering Linux in their day-to-day lives even if they aren’t running Linux as their main workstation OS?

For Windows developers, it’s the rise of WSL. Windows was always missing a great UNIX shell and now WSL provides it in spades.

For macOS developers, it’s native support for Linux VMs & containers as well as the rise of Apple Silicon & ARM. These two trends make it so that macOS’s BSD heritage and local terminal is a less comparatively useful proxy for local development (vs just running a local VM or container running Linux, which is now easy enough, and fast), whereas perhaps in past years the BSD heritage was good enough to e.g. run Python, Ruby, or Node.

For all developers, Linux is the standard deployment environment in the cloud, whether you are using Amazon EC2 or Google GCE or something else like DigitalOcean. Even developers running Linux workstations find a need to virtualize and containerize Linux environments, but this can now be done in a lightweight way with F/OSS options.

For all developers, IDEs have gotten better at working with remote Linux machines, or local containers. See VSCode “Remote” extension, and private networking tools like Wireguard, Tailscale, ZeroTier.

Finally, Linux has showed up in a lot of “long tail” hardware use cases, such as Raspberry Pi, Android, NAS devices, Steam Deck, etc.

So I wouldn’t really call 2023 (or 2024) the year of the Linux “desktop”, but I wouldn’t be surprised if Linux is the “#1 #2 operating system”.

That is, it’s not the OS everyone runs on their workstation, but it is the OS everyone runs in their workstation, from their workstation, or around their workstation. It’s the closest thing developers have to a “standard development & deployment OS” even while their workstations and desktop environments fracture on Windows/Mac/LinuxDistro lines.

And if a developer has a homelab server or a favorite remote development VM, it is almost certainly running Linux and accessed via ssh.

> For macOS developers, it’s native support for Linux VMs & containers as well as the rise of Apple Silicon & ARM.

macOS still doesn’t have official support for containers. There is https://macoscontainers.org/ but you have to disable SIP, which is a no go for most professional/work machines.

  • Yes, you are technically correct on containers. However, macOS does have native support for Linux VMs (via the Hypervisor / VM frameworks) and then that Linux VM guest has native support for containers. So essentially macOS still provides a gateway to something akin to WSL on Windows, and that’s how tools like podman and docker work, via a Linux VM. (I am over-simplifying, of course.)

> For Windows developers, it’s the rise of WSL. Windows was always missing a great UNIX shell and now WSL provides it in spades.

Before WSL, Virtual Box and VMWare Workstation, and SUA to a lesser extent, were already making it.

WSL makes it one less thing to install and configure.

  • I think a big difference is the way the shell works. That, on Windows today, you can just open up a terminal in your Linux environment (bash/zsh/etc) without thinking about the VM. This becomes a much simpler path than, say, Cygwin, or a hand-managed VMWare guest. And likewise that tools for things like container management can make some reasonable assumptions about the host OS and its Linux capabilities.

    • You can do similar configuration with VMWare Workstation and SUA (Windows POSIX subsystem).

      Windows also has native containers.

      They decided to expose them via docker APIs to take advantage of the ecosystem tooling, and nowadays other ones like containerd and runc are also available.