• 0 Posts
  • 5 Comments
Joined 2 years ago
cake
Cake day: June 11th, 2023

help-circle


  • After years of fighting pip and conda, I got a job where “we work with Python but also still have some .NET Framework apps”.

    NuGet seemed just as bad.

    People shit on JavaScript (for very good reasons) but npm is amazing compared to all these. You can have one dependency needing PackageX v1 and another dependency needing PackageX v3 and your project will just work!

    A modern statically-linked language with a first-class package manager, like Rust or Go is ideal. No fighting the dependency manager, no issue with deploying on different systems, just “run this binary”.


  • I um… didn’t get started yet. But a colleague demoed it to my and it’s kind of between virtual environments and containers, if you’re familiar with Python.

    You write a Nix config and specify exactly which versions of which package you want to have. Reproducibility is the main selling point of Nix. Things don’t just break overnight because a dependency of a dependency of a dependency got upgraded. You can always go back to exactly what it was like before. Guaranteed. That’s pretty cool.

    Ok so you got that config, then you build and activate it, and it replaces your shell. You enter the Nix shell. You still have access to all your files and directories, but your Nix config controls exactly which versions of your tools you have. gcc, npm, python, maven, whatever you use.

    You can see why this makes people want to build an immutable OS.

    The main drawback of Nix is that it has a bit of a learning curve. Hence why I haven’t started yet. Maybe it’s time though.