Great perspective! Linux desktop has come a long way, and for many users in 2026 it's a genuinely capable daily driver
Confessions of a Distro-Hopper: Why "Linux Can't Do Desktop" Is a 2026 Myth
8 Comments
Did a switch few months ago, due to Win 10 end-of-support approaching. First tried Zorin, then switched to Linux Mint, because Gnome is far too visually inconsistent, which triggered me (while Linux Mint, with Cinnamenu and correct themes can genuinely look like Windows 8 that I loved).
Do note that I did it on a Microsoft Surface Pro 7 tablet and it is amazing there people writing kernel patches for Surface family of devices.
The experience has been mostly okay, with two noteable caveats. Default swap configuration on both Zorin and Mint is bad and leads to computer crashes when Firefox, VS Code and C++ compiler are going at the same time.
Second caveat is "suspend on closed lid" behavior. User services often don't survive suspend, meaning that my desktop wallpaper disappears and OneDrive mountpoint (through onedriver) disappears. The only fix is reboot. Just manually restarting services is not enough for reasons I don't even care about. Those interested can find a whole article about my experience on my profile here, I am not going to link it explicitly for cheap clicks.
Hidden third caveat is for C++ developers like myself - the legacy approach of using system package managers for C++ dependency management is true hell and should just die. Second, for whatever reason, linux builds of C++ compilers have inverted defaults to their Windows counterparts, causing some hairpulling when you try to use newer features of the language and don't know you must use extra feature flags to activate them.
Anyways, thanks for the article, it was a nice read.
@[Jakub Neruda] Hey, thanks a bunch for reading my ridiculously long article – really glad you took the time to drop some feedback. It’s always awesome to hear other people’s stories. Quick question though – isn’t the Surface rocking ARM64? From what I’ve heard, Linux on that architecture is still a major headache..
As for C++, maybe I’m just too set in my ways – I mostly write plain C, and honestly, I find working on Linux way more comfortable. On Windows, the WinAPI is just an absolute nightmare.. I mean, we could go back and forth on this all day, but I genuinely think Linux is the go‑to environment for systems developers.
@[alexvoste] No, my Surface Pro 7 is a good ol' intel 86x64 architecture. So the major challenge is to get the stylus, camera, and touch screen working (Windows environment work better for that touch screen but that is to be expected when we are talking a Microsoft-native device).
Now with regards to C++ - I am not talking about the standard library, nor the platform dependent API. I am sure we could find thinks that are better in WinAPI and stuff that is better in Linux. Atop of my head, reading your current system DPI is much nicer in Windows, mainly because on Linux you have to know what rendering stack you are using and even then, it is a pain. On the other hand, Linux' "everything is a file" is probably a saner way to do IO.
But I was talking about dependency management. C++ has about 3-4 dependency managers that are multiplatform, allow prebuilding, and allow sandboxing of dependencies for each project. So using apt for package management is a downgrade since even if you manage to install two different versions of the same library (because you have two distinct projects that demand it), you might risk those libraries being poorly instrumented, messing up your symlinks, etc. Not to mention you are forced to use the versions that are available in repos. And unfortunately, many libraries still depend on this system.
My favourite library - SFML - when used through CMake, can bring in all its dependencies while you are on Windows. On Linux, you can specify via a feature flag that it should do it as well, but still there will be some libraries that it gets through apt and you need to painstakingly install them manually. It is the kind of overhead that you can put up with when you are an experienced dev, but is needlessly complex for newbies.
Like on Windows, all you need for C++ development is to install MSVC and everything just works. On Linux, you need to know how to set up the IDE, the build system, the compiler, etc.
Luckily, this should change soon (TM), since Ubuntu is working on their snap bundles for various development setups and languages.
@[Jakub Neruda] Ah, my bad! For some reason, I thought the Pro 7 had already made the transition to ARM. But yeah, getting the stylus, camera, and multi-touch to play nice on a Microsoft-native device under Linux is a boss battle in itself. Props to the guys writing those custom Surface kernels, they are doing god's work.
As for C++ and dependencies — okay, I totally see your point now, and I actually agree. Installing dev-libs globally via system package managers like apt is indeed a recipe for dependency hell, especially when you need different versions for different projects.
My perspective is probably a bit skewed because I main Arch Linux (and Arch-based distros like EndeavourOS). With Pacman and the AUR, you basically have access to every library in existence without painful manual compiling. But yeah, for professional C++ project sandboxing, modern tooling like CMake with proper package managers is objectively the saner way to go, and Linux still makes beginners jump through too many hoops here compared to "just install MSVC".
I actually had a brief "reunion" with Windows recently when I got a new laptop. I tried to set up a WSL2 workflow because I absolutely needed a Linux environment, but the file system overhead, memory hogging, and overall clunkiness just made me lose my mind. I ended up wiping the drive and going full native Linux within a week. Best decision ever.
Please log in to add a comment.
Please log in to comment on this post.
More Posts
- © 2026 Coder Legion
- Feedback / Bug
- Privacy
- About Us
- Contacts
- Premium Subscription
- Terms of Service
- Early Builders
Performance overhead is my personal ene... Show moreWriting ForgeZero: Fixing the mess of modern build systems.
Performance overhead is my personal enemy.
C | Go | x86_64 Asm (3 dialects)
https://github.com/forgezero-cli/forgezero Show less
More From alexvoste
Related Jobs
- Social Worker School 2026 -2027 SYEpic Special Education Staffing · Full time · Saint Anne, IL
- Software Engineer, Test & Infrastructure II (Bilingual Spanish)Vail Systems · Full time · Springfield, IL
- Software Engineering Intern - AI Enablement, Summer 2026Jack Henry & Associates · Full time · Springfield, MO
Commenters (This Week)
Contribute meaningful comments to climb the leaderboard and earn badges!