3 ms·
> Nix is an absurdly complex piece of software I'd argue the opposite—it's beautiful in it's simplicity. It's a tool that lets you express how to create someth
by kimburgess 7y ago
> Nix is an absurdly complex piece of software
I'd argue the opposite—it's beautiful in it's simplicity. It's a tool that lets you express how to create something in a deterministic way.
A large part of what creates the learning curve that's best described as a wall is that this simplicity is due to building on a number of concepts that themselves are likely initially foreign: a pure functional language, content addressable storage etc. These are all good concepts to learn about in isolation, but as with any domain, learning a large number of new things at the same time (particularly those that may directly conflict with your current mental models) is hard.
What's truly nice about the nix approach is that it is not bound to any stack. You can use it for any language, for building any software (Nix - the package manager). You can also use it to define a entire machine config (NixOS), or even an entire collection of machines (NixOps). It is not something that you need to re-learn every few months, or learn then not use because some of your other tooling changed. Yes, the initial mental load is high, but the return on it is continuous and you'll likely learn about some other useful things along the way.
- porker 7y ago>> Nix is an absurdly complex piece of software >I'd argue the opposite—it's beautiful in it's simplicity. It's a tool that lets you express how to create something in a deterministic way. I'd take a different angle and argue that Nix is Version 1 of what to me looks like a very cool idea, and it's both beautiful and not straightforward to use. If that matters, wait for version 5. Look at the progression before Docker came on the market - it does what other tools could do, but packaged in a nice, developer-friendly toolkit. I expect the same for Nix in a few years time.
- stopmkinthngsup 7y agoSo now because one person used Nix building a container as an example in a blog post, and because one person made an inexplicable comment that Nix is complicated, people are just blatantly making up doomsday scenarios using out-dated Docker FUD? Just because she used Nix to build a container image does not at all make it even remotely appropriate to compare Nix and Docker in such a way. And if you think Nix has anything to do with "containers" other than being able to run commands in a way that make a special tarball, you've entirely missed the point. Nix is a language, not a container runtime, image builder, etc. And Nix is on version 2. Sorry, just frustrating to read threads on HN of "people actually using a technology to solve problems that are well-known and have supposedly been the reason for popularizing the 3 largest buzzwords of the last 5 years"... against people who've never used it insisting that it can't work, doesn't work, won't work, won't work in the future for <handwave> reasons. Meanwhile people keep shipping reproducible, reliable software and infra with Nix. It's much more interesting to hear from people with real life experience and criticisms of Nix.
- lidHanteyk 7y agoYou have the right idea, but you'll be waiting for a long time. Nix is transitional, and a version of Nix which appropriately enforces package-capability discipline likely will not give a traditional Linux/BSD userland. Instead, use Nix today, and shape its future; Nix is currently on version 2.