Plutus, Haskell, Nix, Purescript, Swift/Kotlin. laser-focused on FP: formality, purity, and totality; repulsed by pragmatic, unsafe, “move fast and break things” approaches


AC24 1DE5 AE92 3B37 E584 02BA AAF9 795E 393B 4DA0

  • 1 Post
  • 125 Comments
Joined 1 year ago
cake
Cake day: June 17th, 2023

help-circle








  • 🙄

    Did you just post a license for your humblebrag soapbox rant about NixOS?

    Edit: I’ll leave some points where I agree since you’re very fixated on/preoccupied with who won this debate (or something). In the long run, most Nix users are wishing for a complete rewrite of NixOS with Nix’s modern approach codified as standard. After all, to your point, Nix is just a massive pile of Perl and Bash under the hood. It could unquestionably be more capable if they had the benefit of hindsight (or a proper type system built into the language) like GUIX which uses Scheme as their DSL has. AFAIK, though, Nix flakes are a feature that GUIX badly needs.


    For GUIX: Does anyone know about content-addressed derivations in GUIX? I figure that might also be a place where Nix bests GUIX but perhaps some GUIX(pronounced geeks) can correct me before I search for answers.




  • It’s finally ready for mass adoption, IMO. Also, things take a long time to catch on and now that flakes are fairly stable and a lot of pedagogy is popping up in the form of other people’s configs (and the documentation is being actively improved to hopefully someday meet the high standards of Arch), people feel empowered to try it out.

    IOG uses it for their entire stack which is packed with incredibly solid (IMO) software engineering decisions from top to bottom.

    I tried it because I wanted to run a Cardano stake pool and develop DApps for the Cardano ecosystem. Their build-from-source instructions made me realize how much better it would be to install it with Nix instead of the cargo cult/curse of the current era, a Docker container.



  • You guys will probably groan but lots of people in this comment section should look into NixOS. My old Ubuntu machine was loaded with hacks I got from stack overflow to get certain things working (a script that runs at boot and shutdown to mount and unmount some network drives I wanted to appear natively). But now, I just use NixOS and there’s nothing on my machines that is even remotely hackey now. I just declare the drives as I want them and when I boot they are there and work as needed.







  • demesisx@infosec.pubOPtoProgrammer Humor@lemmy.mlPrincipal Skinner on Immutable Distros
    link
    fedilink
    English
    arrow-up
    15
    arrow-down
    1
    ·
    edit-2
    1 month ago

    I think some of these replies have perhaps missed the powerful idea that made me fall in love with Eelco Dolstra’s idea. Here’s what won me over.

    For example: THE main feature is that you could have a different version of say Python (for the sake of this example) installed for each dependency in your system. Let’s say you had Brave working with one version of Python and another piece of software needed a previous version of Python. In an FHS style system, this would be challenging and you’d have to manually patch things to make sure the dependencies didn’t step on eachother. When you updated, your patches would likely have to be changed as well. So, system administration and updating can really break things.

    In a Nix store where things can be content-addressed and linked by symlinks to their specific dependencies, they would just work alongside each other due to their unique, hash based folder locations. Each folder in the Nix store is named based on the sha256 hash of that piece of software’s ENTIRE dependency graph, which has powerful implications.

    Because of this hash, they’re effectively hermetically sealed from each other and cannot step on each other. The software in the Nix store talks to eachother through symlimks that were made upon compilation of the system.

    This is the very definition of Nix and taken far enough to define a whole OS is SUPER powerful concept.