I used to love Linux. I am starting to hate it

It really pains me to write this post, but I am tearing my goddamn hair out in frustration, so I needed to vent somewhere.

I have been a Linux user for 25-30 years now, and while not every step along the way has been all laughs, in general I have loved the experience.

I loved the simplicity.

I loved that configurations were easy in standard human readable text files in /etc so I didn’t have to go blindly clicking through some difficult to use GUI config screen with multiple tabs of settings none of which where searchable.

I loved that it was lean and efficient. When a fresh Windows install was taking multiple gigabytes on my drive before I even started installing my programs, a base linux install with all the software I used could fit in under a gigabyte, and RAM use was under a gig.

I loved the security. That every package was reviewed by my distribution, patched, and pushed out through a single central package manager. Updates to new CVE’s were often pushed out within hours.

Life was beautiful. The system was beautiful. One dependency tree, everything managed by one package manager in one place. The beauty in its simplicity almost brought tears to my eyes.

Things have started to change for the worse though, and I am starting to hate the experience.

SystemD was the first problem. It took something simple and elegant and corrupted it with windows-like complexity.

Then gradually all of my nice and simple text config files in /etc started being replaced stupid XML, yaml or .json nonsense that is difficult to parse for human eyes and designed to be used by some bloated GUI configuration tool.

Software started getting more and more bloated as more and more software/projects started statically linking/statically compiling libraries and other dependencies, ballooning the size of a package by orders of magnitude

ifup/down was nice and simple and designed for human eyes. Now netplan and its ip command requires special “human readable” command line options in order to be better aligned and easier to read. Not to mention its god awful yaml-based config file.

And then the final horrible nail in the coffin. The slow gradual death of the “one package manager” philosophy.

Some packages are only available as Snaps, others only as AppImages, yet others only as FlatPaks. And that’s if they aren’t only distributed as Docker images or entire collaborating systems of Docker Compose setups.

Worse yet is shit like pip for python or npm for NodeJS adding yet another set of package managers on my system that already has a package manager in additionto several packages installed via stupid all in one package images like Snaps/Flatpak/AppImage.

It’s enough to make me want to scream and start stabbing people.

So much focus has been placed on making developers lives easier that we have lost track of what really matters.

I am completely and totally fed up with the “move fast and break things” mentality. As a human being who lives in society I have a vested interest in things NOT BEING BROKEN.

It feels like with all the whiners who didn’t like to develop software to system dependencies crying that they needed a simpler to work with system they have absolutely ruined the modern Linux experience.

They have taken the beautiful unified system and turned it into a bloated fragmented and difficult to manage mess…

…just like Windows.

And they might say, well, if you don’t like the alternative distribution systems (like Snaps/FlatPak/AppImage/Docker/Pip/Npm) and whatever other random junk they make up next, then don’t use it.

But that is no longer an option. Proper software that resides as a proper package in the unified package manager and is not statically compiled/linked with libraries/dependencies is a rare unicorn today.

Lots of absolutely necessary software simply isn’t available in a traditional package anymore.

It fills me with a blind rage.

Maybe software should be more difficult and time consuming to develop. Maybe it would be better if more labor intensive software development practices resulted in less software being developed, and only the important stuff was focused on instead of there being 17 different phone flashlight apps and different varieties of calculators.

The more I think about it the more I am convinced we need to go back to ~2005-2007 some time and start over, be cause this…

…this isn’t working.

Fuck SystemD
Fuck snapd.
Fuck Flatpak
Fuck Appimage
Fuck Docker
Fuck Node.js.
Fuck FastAPI
Fuck pip and venv
Fuck npm

I have just completely had enough. I have been a tech enthusiast my entire life to the point where I pretty much have no other interests, but the state of things today makes me want to just burn it all down.

I hope they all die in a fire. (and they can take “the cloud”, “mobile”, “IoT” and “big data collection/monetization” with them.)

I don’t give a rats ass about “developer agility”. When you decided to be a software developer for a living, proper software lifecycle management, packaging and documentation are all part of what you signed up for, and if you don’t like it, maybe go do something else. Maybe it is for the best that “AI takes your job” so the rest of us don’t have to suffer through your bullshit.

We need a pendulum swing to where the Developer Experience is no longer a consideration, and i6t is replaced with system stability, efficiency and security as the primary concerns.

25 Likes

Plenty of distros without SystemD ae available

Use an old distro and old software from back then. I’m sure some internet archive (or your own) still has the files. Some people still run Windows XP because they feel like you about modern W11.

There never was one package manager. there always has been DNF, apt…

Feel free to become a developer and do it the old/hard way. You can even create your own distro.

MLGA - Make Linux Great Again!

Just don’t use those device then?

Who would be the authority to decide which project is worthwhile? What camps should the developers be imprisoned in if they develop an app that is deemed unnecessary?

It sounds a lot like you would be interested in Lunduke’s channel and distro.

There are 500 or so distros ranging from pure CLI to more chromebook functionality, dozens of DE….. If none of them comes close to what you need or want, then Linux isn’t for you, or you should create your own distro that overcomes all the issues you seem to see. The distro developers put a lot of (unpaid) effort in their distro. You can’t fault them for making it in a way they want, and not the way you want.

12 Likes

There was ONE package manager that managed the entire system.

Debian (and everything based on it) used apt, Gentoo had portage, the RedHat ecosystem used rpm (which granted was terrible before yum and other frontends)

Who gives a rats ass what is on another system? The approach needs to be system centric. let there be as many systems as people want, but have one central package manager for that system.

Brilliant idea. Use unpatched software with serious security vulnerabilities. In the “always connected” era using software that is not actively maintained (no matter how good it might be) is utterly idiotic.

Same old tired argument by those who ruined everything.

Mobile devices are just like the packages that are no longer available now. In many places you can’t live a normal life without them.

Can’t park in a parking garage without an app to pay with, cant charge a car at a charging station without an app to pay with. Want movie tickets? You need their app. etc. etc. etc.

When the alternatives are taken away from us “just don’t use it” is no longer an option.

…and thatch the way they want it. Because they want their sleazy data mining everywhere so they can spy on us, attempt to control us with customized content, and monetize every single aspect of our lives. If we opt out, they earn less money, and they can’t have that…

Someone seriously needs to burn down all of Silicon Valley. It has become corrupted beyond any possible salvage.

Market forces would do it.

If developer time is expensive, because it takes man hours to do it right, then only the software that really matters gets developed. Simple supply and demand. Those working on important enough projects that are worthy of proper investment are willing to pay the elevated costs of the limited resource (developer time). Those who are just making garbage aren’t.

I’m in the medical device industry. I develop medical products that can save or improve peoples lives for a living.

Should I tell those who think a device that is causing them pain, disability or maybe even death “well, if you don’t like it, develop your own damn hip implant?” I don’t think so.

No, we painstakingly develop requirements and input from the surgeons and patients. They are our users, and thus they should get as close to possible to “exactly what they want”.

“If you don’t like it make your own” is not how things work.

We don’t tell people who don’t like that they got sick from eating produce that “if they don’t like it, maybe they should grow their own food”.

We get to have opinions about things we have not created ourselves and about industries we think are going (or have gone) to shit, especially when they fundamentally impact our lives, like tech does in every way imaginable today.

We need the focus to return to being on the end user and giving them as close to what they want as humanly possible, and make that the sole objective.

That’s how free markets are supposed to work.

15 Likes

Sorry did read all of that, but you can go have most of that back by:

a) using OpenBSD and yes that runs on Desktop / Notebooks
b) Use linux from scratch or gentoo

I get xml, i might understand json “for human eyes” but yaml? Difficult to parse? There are yaml and json parser for any language I’ve heard of. I trade yq / jq for grep/sed/awk/etc. at any time.

7 Likes
  • Systemd introduced Windows-like complexity, destroying the elegant simplicity of the OS.

I honestly have not used Linux without system D, but that’s more because of my age but I have been told from professors and people I’ve worked with that. It is very bloated but there are distro without system D but that’s not a solution in reality still bloated system is something at least in the administrative side of it. An enterprise is fairly useful even though gives a shit load of a attack surface for adverse to exploit because Sys admin don’t harden system D cause it gets confusing.

  • Traditional, human-readable /etc text configuration files have been replaced by difficult-to-parse XML, YAML, and JSON designed for GUI tools.
    This I agree with you it’s fucking annoying as shit. I go from learning. Oh it’s all readable text to a bunch to now decides yeah it’s Yaml and then this next distro decides something else. It’s fucking annoying. This is some bullshit. But unfortunately a lot of these sisters are done by volunteers or are forks of major ones so we either deal with it or we pick from the hundreds of distro there are that don’t have the annoying shit.

  • Software bloat has skyrocketed due to statically linked libraries and dependencies, ruining the lean efficiency of early Linux.

This has just become standard at this point everyone’s doing it. I don’t know who started this stupid ass trend installing a bunch of apps with by default like honestly just give us the browser a text editor and whatever else is essential for the operating system to get started and the rest let us pick don’t give us openoffice and then some photo editor and some other bullshit. I’ve just started making deep bloat scripts so that when I do make a fresh install, it gets rid of it all. Sadly, it’s always been like this at least for as long as I’ve used windows and linux

  • Simple networking tools like ifup/down were replaced by netplan with its frustrating YAML configs and the overly complex ip command.

Fucking canonical and their bullshit. I know have to have reference sheets for all the different distro and how they decide to do networking it went from. Oh everyone uses the exact same one too he uses something different. They use something else they made their own.

  • The unified “one package manager” philosophy is dead.

  • Package management is heavily fragmented by Snaps, AppImages, Flatpaks, and Docker, making traditional packages nearly impossible to find for necessary software. The amount of them have gotten excessive and it is annoying to figure out which app needs which one and it makes system maintenance a pain in the ass

  • Language-specific package managers (pip, npm) add redundant, messy layers on top of existing system package managers. I’m not a developer so I can’t comment on this cause I’m assuming these are very useful so I’m not gonna complain about something that isn’t meant for me, but I am gonna say Pip is annoying to fucking use from like at least the stuff I’ve done with my internships and jobs that software required me to use Pip. It’s fucking annoying.

  • The “move fast and break things” developer mentality prioritizes developer agility over system stability and unbroken experiences for end users. Yeah I don’t know what happened in that sense of the case the company that was known of not releasing a feature until it was completely done. Apple has become subject to this because iOS and all of their operating systems at the moment suck ass after what they did with iOS 26 and even android from what I’ve been told I haven’t had an android phone in a while, but I’ve been told they’re in the same shitty habits or as one of my boss used to calls it the Microsoft habit

All in all it is annoying, but it hasn’t reached the point at least for me to piss me off as much as it did I’m assuming since you have an extensive amount of experience with Lennox and I’ve been using it for a long time this is just stuff that’s filled up that changed it from the way it used to be way too much to the point of Got annoying , which is fair kind of but shit changes and there are multiple distro you could just make a lightweight on yourself. Just take a arch or Fedora server and do your own thing .

1 Like

This

only works if everything is open source or there is only one linux distro - Windows style - and

This only works if all the software on your system is non free shareware controlled by a software corporation - Windows Style.

As non paid free time open source developer I focus on what ever I want to focus on. I don’t care if no one uses my stuff or even likes it. I use it - I like it.

5 Likes

I kind of agree on the general sentiment of “the sky is falling”, but I disagree on some points.

What brought tears to my eyes was the fact that a good 90% of what I needed for a non-server system was not available in the “one package manager” system so I had to compile shit from source, install from a PPA/AUR/Third Party/Community Repos or use a Windows VM.

Also a good chunk of server-grade applications with big licensing costs were just installed with scripts that unceremoniously dumped stuff into /opt and bypassed the “one package manager” anyway. That’s why they only supported “certified” distros btw, because they could only be arsed to compile their stuff for RHEL and maybe SUSE, and also maybe Debian/buntu, that’s it.

Still had to maintain plenty of similar bs applications on servers btw when I was still working in IT. The fun we had when the security team asked us to upgrade servers for security reasons and the upgrades would immediately set the whole dev/test environment on fire. Good times.

Netplan is from the *Buntu afaik, it’s really an accomplishment to make something that is less easy to use than NetworkManager.
systemd-networkd is what I’ve been using because it’s the closest thing to text-based config files and is easy enough to understand.

I’m personally a fan of this. So many times I had to troubleshoot this or that or the other application that broke because some random dependency lib was updated by the distro. We are not in the 80s anymore, I’ll gladly sacrifice a few hundred megabytes of storage per application tops to avoid stupid bs with library version mismatches.

Strange, I wonder why nobody wants to deal with the bs of shared libraries that can be all sorts of versions across different distros now that we aren’t limited by the hardware.
Note how the job of integrating packages into a distro falls squarely onto the distro maintainers, they are the ones supposed to take the source, make sure it compiles and works in whatever distro environment they crafted, and then ship the distro-specific package.
This simply does not scale, distro maintainers are already overworked as-is. Imho this is the real crux of the issue, we have reached the bottleneck for what distro maintainers can do.

Was it ever? I’m not noticing existing packages disappearing, it’s a lot of new stuff that is just not added as a package, often because it cannot be (proprietary or whatnot), or more often because nobody can be arsed to become its package maintainer in the distro. See above. When your “perfect” system relies on volunteer work from random people, you are going to hit a wall sooner rather than later.

I agree with these ones

4 Likes

mike

15 Likes

Back in the days of everything was controlled by the OS package manager, we always didn’t get the latest versions of packages. I remember needed a feature that was only in v2.1 of the package, but the OS only supplied v2.0. So I had to compile my own, or find another RPM or DEB file and jam it in and hopped it worked.

Or the application creator would create their own YUM/APT repo and handle making the RPM/DEB packages for every supported distro. Aka, what Docker does.

The Flatpack, snaps and other packages we have now remove the burden of the distro manager maintaining al the apps and put it on the app makers to provide the package.

None of this is a great solution and everyone is fighting to see what comes out on top. Like everything OSS, there is a battle and then something will become the standard, even if a few things become the standard.

Docker is for servers and frankly, the best thing for servers since sliced bread.

Pip and venv sort of works like docker. I can setup a script under it’s own venv and have high confidence things won’t break when the OS upgrades. That was an issue back in the Perl days when all the modules would come of the OS packages, unless you did a cpan install.

Many of the other points made by OP are vary valid. Things tend to “just work” in windows, and be a struggle in Linux. I have to reset my monitor positions in Linux all the time because it forgets it.

Configuring network interfaces in Linux has been a major pain in Linux since they went to away from the standard text file. Every OS does it different. I hate it.

3 Likes

I assume the patient (or their insurance) pay for the product you develop. So they have a say in what specifications it has to meet. Most distros are free of charge.

The distros that cost money (or the support cost money, like RHEL) will tailor to their client’s needs. Not to the needs of a single small client, but to the needs of a large number of (paying) clients.

By default, flathub or snap are not enabled in Debian. If you want developers package their software in the format YOU want, pay them to do that.

As long as the software works, why would a user care about package formats? And if you want to force everyone to use a single format, I bet it will be YOUR favorite format, not mine or someone else’s.

In the old days, people weren’t always connected. Clarify if you want the modern conveniences, or not. In 2005 (the time you like so much), there were no smartphones, and mobile internet was rare and expensive.

What you describe is based on market forces that you claim you want to use. Mobile payment is convenient and inexpensive to many users, and the businesses. You did say you wanted more free market, didn’t you?

Talk to your local entities that use apps. I live in the US and parking ramps, and movies still take credit card and cash. I suspect reserving movie tickets in advance may be an issue (not sure, email may work), but in the old days that you want so bad, you had to show up to buy the ticket.

What makes you think the current development isn’t based on market forces? (paying) users want convenience, which is what the new technology provides.

Regardless of if what you want is desirable or not. But to accomplish your goal, it would require non-market forces and a quasi-dictatorship and central control to implement. This may work in North Korea, and doesn’t sound desirable or Linux-like at all. You partially complain about Linux being Linux.

There is an OS that meets all your requirements. It is free of SystemD, has a standard package manager, hasn’t changed substantially over the last decades, is centrally controlled, and gets updates. W11 will make you happy.

This sounds like all anti-SystemD arguments I ever heard. No one who is against SystemD ever explains why a user should care. Does SystemD make my PC slower, insecure and crash? If not, no user cares.

Have the systems you used (which all seem to have used SystemD) been bad due to SystemD? If so, why did you use them? And if not, why do you parrot what someone else “told” you?

Honest question. Since most distros use SystemD, I have a really hard time believing that all those distro maintainers are just stupid and brainwashed. And only a few smart people like Lunduke see the reality. Like Wayland… All distros i ever liked use Wayland and SystemD. But the “ Internet” tells me both technologies are bad. But the arguments usually are based on 10 year old information, or just ideology.

2 Likes

i dont have a problem with system D at all , i actually quite like it cause it’s help me in troubleshooting issues and makes stuff easy but i am just saying that he isn’t the only person I have heard complain about it , i am not agreeing with him or them just point out similarity’s in opinions cause they same amount of years of experience with linux .

sorry if that wasn’t clear , didnt know that was a pain point

but definitely going look up why it’s hated now

1 Like

If you feel Linux is too progressive, then switch to FreeBSD.

There is a minor learning curve for Linux users, but the two systems are not that different.

4 Likes

I agree with quite a bit, though not all.


ifup and ifdown were horrible hacks that truly needed to go. ip is just a better tool in every respect - but I agree, the information could be presented better. This is why I have added these lines in my bashrc:

alias ipr='ip -br'
ifup() { ip link set "$1" up }
ifdown() { ip link set "$1" down }

What does this do?

Much better. :slight_smile: And your ifups are back in all(?) their glory.


systemd… Is not that bad once you understand it. It is both more and less simple than the old system. More simple, because now you can simply adhere to services and everything follow the systemd logic™ - and that logic is pretty simple. cron, especially, is old, archaic, and not very granular compared to systemd which allows you to schedule things at millisecond accuracy. It is more verbose, however - which is good when you read it and wonder what drunk you did last sunday morning at 2 am, but less good when you type it.

On the flip side… A lot of legacy logic is now just left there to rot. And logs are binary WTF. And PID0 is no longer just a 10 line program that is impossible to crash and run once during boot. So yeah, while I think systemd is progress in general… It sure left a lot of corpses in it’s wake.


node.js, npm, pip, venv, snapd, flatpaks and appimages all need to be fixed, like you say. If we must have a way to package third party non-distro apps, then flatpak is the best format for that. Every other format can be thrown on a fire. pip, npm et all are mostly there because of Windows requiring a package manager - these days, msys could take over a ton of that responsibility. Or even WSL.

Also, if you thought .deb packages had dependency hell… Wait until you have a 6 month old pip installation :joy: :sob:

And node.js is simply an experiment that turned out to be a poor one, especially as browsers finally caught up and started providing options. Next person that tells me about react being the greatest framework ever will get a real dirty look… JS in general is so bad it’s appaling (from a system developer perspective).


Docker… Honestly, qemu VMs are starting to become the obvious replacement now that we are starting to see specialized Linux guests with only a few MB of overhead. There are very few reasons left to run Docker.

So I hear your frustrations, and quite a few are valid ones. And no, just rolling your own distro with Yocto or NIX OS is not really an option either for most people.

4 Likes

Please report back if you find a technical reason that is relevant to users in 2026 :slight_smile:

I’ve started Linux a year ago with Debian, Mint, Fedora, Suse… to Aurora. I came across the SystemD (and Wayland, and btrfs, and ZRAm, flatpak…) topics a lot. And the best I could find out why people didn’t like all the new technologies, were a combination of:

  • Change = bad
  • It works on my 15 year old laptop with single 720p monitor and HDD, why would anyone else need newer stuff?
  • I set this up for my 88 year old mom, and she is fine with it. Why would a user have different needs?
  • Years ago the technology was less mature and had issues (ignoring the fact, today is today and not 10 years ago)
  • Company X used them, so it must be bad
  • Less modern LTS distros often use older technologies

From a user point, the Linux issues are hardware/periphery compatibility, lack of certain software, and sometimes lack of GUI. None of that seems to be related to the new Linux technology. Quite the opposite. Wayland allows fantastic monitor setups, btrfs allows snapshots etc. Among other things, systemD should boot faster. I read that matters to servers?

I don’t know all the details, but I trust the distro maintainers of the fantastic distros to make the right choice. If I knew better, I would be a distro maintainer. I bet most SystemD haters never created and maintained a distro.

5 Likes

That, and some people are just too lazy to RTFM and have a hard time accepting the skills they learned 20 years ago are not that relevant today.

Some people adapt to change, others complain about things not being as they used to be.

3 Likes

OK, I looked it up and I could only find one semi decent argument and that’s the attack surface argument . Because systemd runs as PID 1 and handles deep system inputs (device mounting, dynamic network changes, string and file parsing), any critical vulnerability or memory corruption bug inside its sprawling codebase risks a total kernel panic and complete system outage. but even I know the regular user is not gonna be thinking of this at all so I’ve come to the conclusion. This is all opinion based some people just not liking change. I also looked up if it’s so hated, why did big distribution switched to it because it solves a bunch of issues to manage Linux systems at scale and general standardization.

I’m kind of sad that I didn’t find anything cause I’ve seen the argument so many times but now I know it’s just a bunch of BS

2 Likes

Back in 2015 I used to joke that systemd is not an init system, it is a GNU replacement :grin:

Given that the only things left of GNU as it was in the mid 90s is at this point essentially bash and coreutils… I guess I wasn’t that far off. But that is a discussion for another day.

Most of the systemd hate these days is indeed “change sucks”. Well, yes. But at the same time systemd service units are awesome. So…

5 Likes

boot times in a server aren’t usually that big of a deal. The server itself will need minute(s) to bring up the hardware and train the memory before even thinking about starting the OS. The OS taking 10 seconds more or less isn’t breaking the bank.

sYsTeMd’s usefullness on a server is mostly down to vastly superior process tracking/auto restart/sandboxing/resource limiting/whatever features that would require hundreds of lines of customized shell script otherwise. The more advanced competing init systems like OpenRC are trying to close the gap, but sYsTeMd is still in the lead by a wide margin.

It’s worth noting that most people crying about sYsTeMd never needed any of these features and are content with “the old way”, which is still kind of ok for a simpler system or even a desktop in most cases

isn’t the network handled by systemd-networkd (which is another daemon that isn’t run as PID1 but just a service)? Or any other network manager tool.

1 Like

But it seems like you are describing the logical conclusion of an open source ecosystem. It should produce something like a free market: more than just the msft aapl binary. So you have competing standards.

And as open source software universe around linux has become more complex and mature, so too have the config files, service managers and overall architecture.

However its interesting to note many of those things you mentioned have active developer userbases on the windows (and probably macos) side. So maybe yoh are just sick of open source? Which is understandable.

I checked out of everything when the master-slave paradigm became problematic :laughing:

2 Likes

Time to switch to BeOS Haiku https://www.haiku-os.org/

1 Like