Earlier quoted context omitted.
I dont think anyone is being negative at least not the top level comments i read. I like nix but i gave it a test run at my company and no one could figure out how to make any change that wasn’t a copy and paste of what i had done. The docs don’t help much unless you really go diving into them and most people who just want the software to run don’t want to spend the time learning it. I don’t blame them. This is a ver…
> most people who just want the software to run don’t want to spend the time learning it these people are not nix's target audience
Nix: Taming Unix with Functional Programming
111–120 of 205 posts
Re: Nix: Taming Unix with Functional Programming
#112Back in college, the engineering school had a farm of Linux servers from which you could access all your documents, as well as log in to your account from any number of computer labs around campus. Back when I was first learning Linux (not that long ago, 2008), I fell in love with how many things you could customize, and really create your own experience. When I got to college, I wanted to replicate this ability (ins…
Re: Nix: Taming Unix with Functional Programming
#113Nix is running face-first into complexities of build and package managers. As an observer it looks like Python's package ecosystem in particular is a giant mess . This affects Nix disproportionately because Nix actually integrates all package updates into one channel which nobody else anywhere does (and I guess package authors often don't care to fix), and it's even worse because a lot of projects use python as a bui…
The python ecosystem is not a giant mess, its just dependency hell. You need to work with what you get from upstream. > Nix actually integrates all package updates into one channel which nobody else anywhere does If you are using the python system packages then Arch, Debian and probably more are doing the same. > it's even worse because a lot of projects use python as a build dependency (?!) which then cascades these…
What do you think about the linked thread?
> The python ecosystem is not a giant mess, its just dependency hell.
There are dozens (?) of actively used package and environment management systems, with no consistency and no lockfiles, many packages ignore semver, and having multiple versions of a package installed causes weird issues. I'm not sure why "a giant mess" is an invalid descriptor, I guess it's just arguing semantics.
Re: Nix: Taming Unix with Functional Programming
#114Earlier quoted context omitted.
> My take is that maintaining backward compatibility is a core principle which needs to be strictly observed to solve that problem. Given that software developers never guess the correct design up front this means that you always have architecturally buggy software, and a bunch of complaining about why buggy-looking edge conditions are never fixed. There has to be some kind of release valve for software to evolve and…
Yes they've invented that: It's called bumping the major version.
Re: Nix: Taming Unix with Functional Programming
#115Earlier quoted context omitted.
Yes they've invented that: It's called bumping the major version.
The parent comment is complaining about Python 2/3 breakage which was a major version.
Re: Nix: Taming Unix with Functional Programming
#116Man, there’s a lot of negative comments here. Just to add a different experience: my company loves Nix, it makes it really easy to integrate new tools into the dev/build environment without needing to document which packages, configuration, … a developer needs to apply to their machine manually. There’s nothing like it, really.
Are you hiring?
[0] https://www.channable.com/tech/nix-is-the-ultimate-devops-to...
Re: Nix: Taming Unix with Functional Programming
#117Nix needs a new porcelain interface for it's CLIs. Moreover, this post sums up one of my biggest issues stopping me from trying Nix for real again: https://ianthehenry.com/posts/how-to-learn-nix/ambiguous-pac... Finally, needing to rewrite everything in Nix is nice for poorly written configurations or undocumented packages in general, but seems redundant for well maintained software. Has anyone else come up with a sa…
> Nix needs a new porcelain interface for it's CLIs. The analogy I'd use is that Nix needs what "Github did for Git". Meaning, git is actually unnecessarily complex. But Github made git easy and accessible.
Still, I think Nix could make a better interface for us power users.
Re: Nix: Taming Unix with Functional Programming
#118Earlier quoted context omitted.
The parent comment is complaining about Python 2/3 breakage which was a major version.
Not exactly, they're saying that the Python 2/3 breakage debacle became a model for how packages are maintained in general.
It also certainly wasn't what I was responding to, and responding with "hurr durr major versions" like I've never heard of them before is just mildly insulting (and kind of insulting to the parent comment by proxy)
Re: Nix: Taming Unix with Functional Programming
#119Earlier quoted context omitted.
> As an observer it looks like Python's package ecosystem in particular is a giant mess. Most people would say it is. The better question is how to avoid such a mess. My take is that maintaining backward compatibility is a core principle which needs to be strictly observed to solve that problem. And yeah, that has also become a cultural issue with Python, as the Python2/3 breakage shows. So, could one sum it up in th…
> My take is that maintaining backward compatibility is a core principle which needs to be strictly observed to solve that problem. Given that software developers never guess the correct design up front this means that you always have architecturally buggy software, and a bunch of complaining about why buggy-looking edge conditions are never fixed. There has to be some kind of release valve for software to evolve and…
Of course, they also make very impressive backwards compatibility guarantees for stable stuff (cf. Rust's "editions").
Re: Nix: Taming Unix with Functional Programming
#120Earlier quoted context omitted.
We use Brewfiles to install binary dependencies needed by various projects. This is only for developer’s machines, but it’s lightweight and fast: `brew bundle` and you’re done.
What happens when you have two projects that use two different versions of the same dependency? With Nix, you can "install" many different versions of the same program side by side in the store, and then "activate" the one you need at runtime (or with direnv).
If parallel installations like you describe is a requirement — and I’m sure that it is — then Nix looks like it could help. That’s just not something I have ever found myself needing.