Live data from Hacker News

Nix: Taming Unix with Functional Programming

tweag.io

81–90 of 205 posts

Re: Nix: Taming Unix with Functional Programming

#81
post #56

Man, 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.

Nix attracts whiners - 90% people happy with it are happy using it and not bothering to waste energy arguing with bad attitudes online.

Re: Nix: Taming Unix with Functional Programming

#82
post #68

Earlier quoted context omitted.

Oh, this is great info. Thank you. I use optimus-manager and it's 100% not, so I thought I was just SoL.

It'll probably still be a bit of a pain to work out. I hate getting NVIDIA Optimus stuff working on a laptop for the first time, lol You might want to consult the unofficial wiki: https://nixos.wiki/wiki/Nvidia (You probably want PRIME in offload mode rather than Bumblebee, which wasn't available when I set up my old NVIDIA system.)

PRIME offload + the nvidia-offload script works great for me.

sync mode actually stopped working for me, but that's not a big deal since the offloading works so well. I always use my GPU when I need it.

Re: Nix: Taming Unix with Functional Programming

#83
post #72

Earlier quoted context omitted.

> This affects Nix disproportionately because Nix actually integrates all package updates into one channel which nobody else anywhere does Does Arch not do that?

Maybe it would be more correct to say that "Nix integrates all package updates into one channel which is unique to system integrators (like Nix and Arch) but an uncommon workflow for regular application developers".

Yep, I think that revision is perfect.

Re: Nix: Taming Unix with Functional Programming

#84
post #15

Nix 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…

I have tried Guix (as a package manager), and it seems much better documented. I also really like the fact that Guix uses a well-established, minimalistic, well-implemented, functional-preferred configuration language, which is Guile, the GNU implementation of Scheme, which is very much tailored to be extended with and embedded in other software, for example written in C. In part, my love comes from having had to use…

I'm still running Nix and only ever mess around with Guix, but I agree: the Guix CLI is beautiful and the documentation for it is quite good.

Re: Nix: Taming Unix with Functional Programming

#85
post #59
post #56

Man, 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.

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

Re: Nix: Taming Unix with Functional Programming

#86

Earlier quoted context omitted.

There are many things like it. For example, managed operating environments where the user doesn't need to do anything (and actually can't do anything). Or disposable environments like VMs and containers. Sure, it's not the same as massaging a special pet operating system over and over, but most people that need to produce software hopped off of that bandwagon years ago. I get that companies that do functional program…

Nix is not an operating system. It can be used to build operating systems easily, though. Also, there isn't anything "functional" about Nix. It's a nice sales pitch, but underneath it's just a thin layer over bash scripts and environment variables.

Nix is a metaprogramming language for bash.

The metalanguage is indeed purely functional. The object language (bash) isn't.

Re: Nix: Taming Unix with Functional Programming

#88
post #52
post #48

Earlier quoted context omitted.

So… over-engineered and expensive to maintain?

Overengineered? Maybe, depending on your use case. NixOS is pretty popular as a desktop OS within the community, for example, and I could see a case that its guarantees and strictures are overkill there. But maintenance is really easy. You're basically never forced to rewrite or throw away tons of config. Doing literally years worth of updates at once is typically pretty painless. (Adding new packages to Nixpkgs or n…

I tried using NixOS a few years ago. Everything went fine, except Python packages. There has been quite a lot of incompatibilities, sadly.

Re: Nix: Taming Unix with Functional Programming

#89
post #56

Man, 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?

Re: Nix: Taming Unix with Functional Programming

#90
post #54

Earlier quoted context omitted.

I'd describe many of the benefits for developers as like "docker, without containers". e.g. if you want to try out helix, you could run `nix run nixpkgs#helix`, and it would download + run helix without installing it. (Or you could run `nix shell nixpkgs#helix` to add helix to the PATH in the current shell, without installing helix, etc.). One use case I'm excited about for developers is the ability to declare the de…

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).

Post reply on HN