from Hacker News

NixCon Live

by FRidh on 10/16/20, 11:23 AM with 48 comments

  • by nikivi on 10/16/20, 12:37 PM

    I hope Nix takes off for one reason. I don't want people to do same builds again and again especially for Rust it's painful.

    I want to install binaries with cargo instead of doing the same build again and again. Similar to https://cachix.org

    I don't honestly know why that isn't the case yet, perhaps storing binaries takes too much storage that Mozilla doesn't have money for. Or perhaps it can't do guarantees like the ones Nix gives to allow binaries being shared of builds.

    This is the main reason that makes interfacing with Rust as a plain user a pain.

  • by aszen on 10/16/20, 6:26 PM

    Been using nix package manager on Ubuntu, so far the experience has been mixed, while the package management and nixpkgs is great but the tooling and documentation around the nix language are lacking.

    It's one of those tools that are technically miles ahead of their competitors but struggle to gain traction because of beginners facing little cuts and bruises in using them.

    That's why I'm interested in the Nix Modules proposal to be presented in the conference that aims to bring better usability to the language with types and docs.

    Also the updated website is a lot easier to navigate now and explains the use cases of nix quite well

  • by JamesSwift on 10/16/20, 5:14 PM

    Nix (specifically nix package manager on MacOS) sits in a weird spot where it is absolutely indispensable for me personally but I am absolutely hesitant to recommend it to others without extreme caveats. I really wish the UX of it were much better, which ideally then would lead to higher adoption and less frequent 'osx-isms'.
  • by X6S1x6Okd1st on 10/16/20, 4:12 PM

    I've been using it on my main computer for about 6 months now.

    It's been the steepest learning curve, but yeilded the biggest dividends so far.

    The other day I needed to install some software from a specific 3 year old branch. Copying the default.nix for the up to date version and changing a few of the options got it up and running with minimal fuss.

    There are certainly some rough edges around usability, but the fundamental value prop is immense.

    Also just using nix as a secondary package manager on mac or some other Linux distro is great, I'd expect shell.nix to start showing up in an increasing amount of OSS projects. It showed up in hashicorp's latest project

  • by est31 on 10/16/20, 2:19 PM

    I've been using Nix OS since this year and am mostly happy with it, but if I had to name my largest issue with it then it's that updates are so traffic intensive. Basically, glibc is linked dynamically on most distros, including Nix OS. But if there is a glibc update that only changes the .so file, it still updates all packages depending on glibc.

    A more expansive list of my issues with nix (with some curse words :p): https://gist.github.com/est31/005f17628d55fda27b401d3c994233...

  • by domenkozar on 10/16/20, 12:55 PM

    Next talk starts at 15 UTC, that is in 2 hours.

    I'll be speaking how about how to get Nix to become mainstream.

  • by ghuntley on 10/16/20, 11:47 AM

  • by wtetzner on 10/16/20, 3:47 PM

    > To watch the stream from VLC on your computer, run:

    > nix-shell --packages vlc --run "vlc https://dash.nixcon.net/dash/master.m3u8"

    I thought this was pretty cool, but unfortunately, this doesn't work on macOS...

  • by the_duke on 10/16/20, 3:50 PM

    It's important to note that Nix(OS) is really 3 things:

    A functional language, a package manager and an operating system.

    I switched all my desktops and laptops to NixOS at the beginning of the year, and I'm starting to use introduce it at multiple companies for data science / ML work environments with full reproducibility and Kubernetes bare metal deployments.

    Main benefits:

    * pure build system

    * extremely easy way to set up and switch between custom environments with their own sets of dependencies (nix-env, nix-shell)

    * nix (the package manager) is cross-platform and works on MacOS and other Linux distros (although that's not always smooth sailing...)

    * Ephemeral environments that are quickly set up and torn down, like the `nix-shell --packages vlc --run "vlc https://dash.nixcon.net/dash/master.m3u8"`

    * (mostly) fully reproducible OS and user environments

    * patching and/or locally building dependencies without ending up with a messy system

    I can now finally get a (almost) 100% reproducible user environment including hardware configuration (kernel modules, disks, ...), installed packages, configurations, ...

    home-manager [1] even enables declarative configuration of things like VS Code/Vim/Firefox plugins, and provides statically typed configuration options for many applications. The package repo is also very comprehensive.

    For manually managed servers that aren't just bootstrapped from VM/cloud images the benefits are also wonderful.

    It's definitely not all smooth sailing though:

    * There is documentation, but it's spread across a lot of pages, disorganized and sometimes quite outdated or incomplete. I often have to read the source code - which is also mostly undocumented.

    * Running unpackaged software: you can't just download binary releases and run them, unless they are fully statically linked (like most Go binaries). Instead you either have to whip up a package definition, or manually try to get the binary working (eg with patchelf)

    * The language is somewhat quirky. As often the case with such niche languages, documentation and tooling are very subpar and debugging is not exactly a joy. I wish Nix was built on a more common language with good tooling around it. I bet it would be quite a bit more popular, due to the lower barrier of entry. You get used to it though if you are willing to put in some effort.

    * Package ecosystem: the package repo is really comprehensive, but maintainership for some less popular ones is not up to Arch + AUR levels. Also the auditing for a lot of the packages is very limited. For any security critical environments or server deployments I would definitely limit myself to a hand full of core packages and/or be prepared for manual auditing. I wish the repo was split up more like Arch into core and community, with different guarantees for auditing and maintenance. (the Flakes effort will hopefully help here quite a bit)

    All in all Nix is great though, and it's impressive how stable and featureful the ecosystem has become, despite being somewhat of a niche "product".

    [1] https://github.com/nix-community/home-manager

  • by moocowtruck on 10/16/20, 12:57 PM

    nix work on windows natively yet?