It’s not about the destination, it’s about the journey.
nix being 20 years old and still lacking decent documentation on the language it’s what hurts me the most, because the people who do know it works so some amazing things with it
Imagine if NixOS had as good a wiki as Arch. Personally, I wouldn’t bother with another distribution again.
Nixos has made me a better software engineer, I hope it takes off
How?
Software engineering is usually distinct from programming in that it isn’t about the logic behind programming, but about the project management that all software projects typically have in common.
Besides agile methodology, a lot of software engineering involves creating reproducible environments. While NixOS doesn’t provide anything that much different from tools like Ansible,
NixOS follows a functional/declarative design paradigm, functional/declarative design paradigms communicate similar logic for solving the same problem. It’s a restrictive paradigm. Consider how javascript is not restrictive, as in, you can code with any design paradigm in javascript, and how it’s ugly for that.
I also think functional paradigms mirror the natural language closer than imperative paradigms. That’s subjective, but I would still argue Math is a logical language that is a subset of the natural language, and since functions in programming represent a process of doing something, functions make for natural verbs. Meaning, understanding the naming convention for the functions, is a natural naming convention for when I communicate with other software engineers, even when I’m not asking about making configurable/reproducible systems in NixOS
Or when I look at how to config things like firewall, ssh, vpn servers, user group permissions… it’s a minimalist description that I could communicate to other people configuring even on a debian server
So, it’s hard because it’s restrictive, but if you’re willing to put up with a learning curve, you get a language agnostic framework for describing computing environments, more or less. Then there’s more advanced stuff with nix flakes, which still doesn’t make sense to me functionally/linguistically, but I’m starting to see the value in parallel package management and the precision in reproducibility they provide by requiring sha256 git commits
nix is 20 years old?!? I thought it was relatively new like maybe 10 years old
the package manager was first released in 2003, so nearly 21!
Get that code a bottle of vodka!
The problem is that it’s all spread out, they do actually have really good documentation for the language, it’s just not easy to find. AND SPREAD OUT!
Or, they could learn Ansible and get 80% of the way, and be able to reproduce the result on more than one OS. 🥹
Nix is not something exclusive to NixOS, and people are already using it to make reproducible configs that work on more than one OS.
I’m even using Ansible in what I’m currently building with Nix, because it does one thing well that I need to do: distribute files and run commands on a lot of hosts at once.
Getting only 80% of the way there is why it never worked before for the whole system
Where’s Ansible OS?
I might just be basic but the only annoying part of reinstalling for me is setting up my browser again.
Meanwhile me using Fedora with pretty much everything setup the way I want it out of the box:
Blasphemy! How dare you not tweak your install!
I use Mint, BTW.
Basically why I switched from Arch to Endeavour
Wow, you have sold me on installing Nix next. I’m a programmer and this sounds dreamy!
I am a Gentoo user and most of that is already a reality on Gentoo systems. Get the stage3 tarball set up, slap your
/etc/portage/make.conf
and/var/lib/portage/world
files in there and build.Obviously, depending on whether it should be a blank system with the same apps installed or a clone of a previous system, configuration in
/etc
and one’s home directory may need to be copied, too.If you have time for that, you aren’t making the most of yourself. Goes for any hobby
No, I enjoyed more when my Ubuntu didn’t update in place and I wiped the drive because nothing worked
Depends, you can use Linux in a professional environment. I know people who do.
Edit: also arch installs are able to be semi-automated too. They don’t take that long to do manually either. The image is over exaggerating.
Full time Linux engineer here!
hi