Linux Without Fanboyism: An Honest Developer’s Perspective
Source: Dev.to
Introduction
As a software engineer, I try not to get too attached to a single operating system. Computers are just tools we use to get the job done, and unless your work depends on platform‑specific software, most modern operating systems will serve you well.
Whenever possible, I like to use more than one operating system to avoid being biased by personal preferences. In this article I share my personal experience using Linux as a daily desktop operating system, highlighting both the good and the bad.
Everything here reflects my own opinions and experiences, so keep in mind that they may be subjective. This article is aimed at developers and technical users who are curious about Linux as a desktop OS, especially those coming from Windows or macOS. If you’re looking for an honest, experience‑based perspective rather than a sales pitch, this is for you.
My Linux Journey
If you expected a manifesto about how Linux is the best and everything else is garbage, you’re in the wrong place. I’ve used Windows, Linux, and macOS, and I like them all—each shines in different situations.
I’m not the person who will tell you that Windows is evil or that you’re a superior human being for compiling the Linux kernel yourself. Windows is great, and if you don’t have a good reason to try Linux, that’s totally fine.
That said, I do have a nostalgic relationship with Linux.
When I started college I couldn’t afford a new computer. I was using an old laptop that struggled with basic tasks like web browsing, office work, and coding. I needed a way to make it usable without going into debt. While researching ways to reduce resource usage, I discovered Linux. Stories about giving old computers a second life caught my attention.
As a beginner I ran into many problems installing and configuring it, mostly because I wasn’t familiar with the terminal. After a few days of trial and error I managed to install everything I needed for college, and the machine became usable again—at least long enough to save up for a new one.
I broke my system a few times along the way and dealt with the usual beginner issues: Wi‑Fi problems, hardware compatibility quirks, laggy video playback, and poor battery life. I eventually fixed most of them, except for battery life, which remains a common challenge on some laptops today.
Despite the frustration, that period taught me a lot about how computers and operating systems actually work. I spent hours reading documentation and forum posts to solve these problems.
Today I use a MacBook Air for portability, but I also have a desktop PC that I built specifically to run Linux. I don’t have enough time to experiment with new distributions as much as I used to, but I still enjoy using Linux regularly and staying connected to the ecosystem.
The good parts
The appeal of Linux
Once you’re comfortable with Linux, you start missing some features when using other operating systems. Personally, I love how easy it is to install and uninstall software using a package manager like apt or dnf. Windows has Chocolatey and macOS has Homebrew, but Linux package managers generally feel more integrated and robust.
Highly customizable
Linux gives you a high level of control over your computer. You can customize the operating system to fit your needs. This varies depending on the distribution and the desktop environment, but most distros offer extensive customization options.
You can install several desktop environments at once—GNOME, KDE, XFCE, i3, dwm, etc. Linux’s modular nature makes it easy for them to coexist.
Familiar if you use Linux at work
If you already use Linux at work—connecting to remote machines, managing a VPS on a cloud provider—using Linux on your personal machine feels natural. It’s also a great way to practice and improve your skills. The knowledge you gain often becomes useful later when dealing with servers, Docker containers, or production environments.
Docker containers run natively on Linux
Containers are a lightweight form of operating‑system‑level virtualization. They package applications and all their dependencies into an isolated, portable, and consistent environment.
This technology is fundamentally a Linux feature. Docker is mostly an orchestrator and convenience layer; the actual containerization is handled by the Linux kernel itself. In short, containers are regular Linux processes that run directly on the host kernel, but inside restricted environments created using namespaces (to isolate filesystems, networking, PIDs, etc.) and cgroups (to limit CPU, memory, and other resources).
Because this relies on Linux kernel features, Docker Desktop on Windows and macOS uses an additional virtualization layer to provide a Linux environment.
Scripting and automation
Linux is also great for writing scripts or automating repetitive tasks. You can write Bash, Python, or Go scripts and run them as systemd services, or add them to your PATH so they behave like regular commands.
Most of this is possible on other operating systems, but many developers find it easier and more natural on Linux.
The trade‑offs
Things can break
If you’re new and don’t fully know what you’re doing, things are more likely to break or not work as expected. On Windows, things usually “just work”—you plug something in and it magically works. On Linux, be prepared to spend time reading documentation and troubleshooting issues.
Sometimes it’s not even your fault. Even though Linux itself is generally rock‑solid, not all software running on Linux is bug‑free. In many cases companies don’t invest much effort into fixing Linux‑specific issues because their main target audience uses Windows or macOS. You learn to deal with it and move on.
Learning curve
Linux can be intimidating at first. You need to learn new ways of doing things that you were already comfortable with on Windows or macOS. New users also have to decide which Linux distribution to install, and the differences between them are not always clear. On top of that, you must choose a desktop environment from several options, which can be confusing at the beginning.
You’ll also find yourself using the terminal more often. On Linux, typing a command sometimes feels faster and easier than clicking through a graphical interface. It may sound contradictory, but many Linux users agree that typing commands can be more efficient.
Hardware support
This is a point in favor of Windows. On Linux, some hardware may need extra configuration or may not work perfectly. I’ve experienced issues with multi‑monitor setups, headphones, and HDMI connections—not necessarily due to faulty hardware, but because of drivers, firmware, or display‑server quirks. Multi‑monitor setups often depend on graphics drivers and desktop‑environment settings, while headphones and HDMI sometimes require minor tweaks. Tasks like these can occasionally be tricky, though support has improved significantly in recent years.
If you’re building a new PC specifically to run Linux, verify that your hardware is well supported. Some components can still be problematic depending on the setup; for example, NVIDIA GPUs may require extra configuration.