💾 Archived View for breadpunk.club › ~strifwafel › no-more-nixos.gmi captured on 2023-04-26 at 13:31:50. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-11-30)
-=-=-=-=-=-=-
NixOS is a linux distribution that uses a special package manager
which does something called "declarative package management."
Basically, you define packages in a declarative programming language,
and the package manager (called nix) is able to do some unusual things
with packages, like defining environments and rolling back your operating
system's configuration. That's a pretty bad overview, admittedly.
I'd been using NixOS for a little over two years, and after getting
frustrated with it, decided to switch to another operating system.
I've been distro-hopping for a while now, but plan to go back to Debian
(the first linux distro I used, and the one I was using before NixOS,
starting maybe four or five years ago).
If you're interested, here's why I stopped using NixOS:
Originally I installed nixos for two main reasons. For one, I'm into
functional programming, and nixos draws inspiration from fp ideas like
immutability, so it seemed like a cool operating system to try. Second,
I had broken debian by installing the wrong version of python or something,
and I wanted to switch to a system where package versions wouldn't be such
an issue.
I think nixos definitely solved package versioning problems for me, and
it was certainly an interesting concept for a functional programming
enthusiast. There were other problems, though. It's difficult to install
packages on nixos if they aren't in the main repository, because you have
to write the package definitions yourself (obviously) and that can be a
big pain. Sure, smaller programs were pretty easy to package, but what
if I wanted to package a web browser, a programming language, or a
multimedia framework? I tried to package all of those things, with varying
success, and it was pretty arduous.
Another issue I discovered was that a great deal of program configuration
must be done in nix's special language. This process was kind of half-baked
(sometimes configurations just wouldn't work) and often there was no documentation
for it (for example, I had no clue how to create themes for cmus). Sure, I
could "rtfm", but at that point I was already growing weary of nixos and
didn't feel invested enough in it to spend time reading even more documentation.
Ultimately, I think that I didn't really need nixos. It was too complex, too niche,
for my use case.
This is a pretty strange gripe, but I also dislike nixos's branding.
It has that sort of smarmy vibe reminiscent of something made by a startup
company. As of when this post was written, the homepage (https://nixos.org)
looks like an advertisement rather than an informational page for a real
operating system (e.g. https://debian.org). Something I really like about
free software is that it's usually not overly concerned about its appearance,
which sets it apart from the nauseating world of corporate tech. Hence,
nixos's embrace of the corporate aesthetic is rather disappointing.
Another nasty aspect of the nixos homepage is that it has that generic
javascript-framework-cum-material-design look to it. So many corporate
websites (slack, google, discord, &c.) look like that. I guess you could
call it a "design meme" or something.
In conclusion, I've stopped using nixos for certain reasons. And--surprise!
I wrote this blog post without planning it beforehand, so I'm sure you
thought it was rambling and shallow, and maybe you even regret reading it
altogether. See you next time!