Hacker News new | ask | show | jobs
by paskozdilar 1538 days ago
For those who like the concept of Nix, but don't like the Nix language, the Guix package manager [0] might also be worth a try. It's an official GNU project, inspired by Nix, and it uses Guile Scheme instead of Nix language.

[0] https://guix.gnu.org/

3 comments

Eventually someone will implement Nix in Javascript, and then it will explode.
The Guile compiler has a JavaScript frontend. You can write guix packages in JavaScript:

https://lists.gnu.org/archive/html/guix-devel/2022-03/msg001...

js code example still looks schemish to me.
The code in nixpkgs does contain some code that uses relatively sophisticated programming language constructs, such as lazy evaluation, partial function application, or fixpoints. -- So I'll say there's at least some friction to Nix from the language being pure/functional.

Mostly I think Nix would be just as hard if packages were expressed in any language.

Stuff like "this program compiled by nix is using a different glibc than this library" is going to be confusing regardless of whether Nix expressions can be written with JavaScript; or stuff like some program assumes it can write to $HOME in its build script not playing nicely with Nix.

A lot of why Nix is hard is because it's weird, and that even as an end user when things go wrong it may require understanding more about what's going on than what other solutions require.

In both senses of the word "explode", I expect.

(Tongue-in-cheek, but I'd actually like to see this happen: Nix is a fantastic concept obscured by space-alien syntax.)

Nix is mostly already Javascript. Just JSON with some addon functionality.
All languages get eventually implemented in Java and Javascript.
Not exactly, but PureNix
Figuratively?
Tweag is also working on a gradually typed language called Nickel as an alternative, although it's not ready yet.

https://www.tweag.io/blog/2020-10-22-nickel-open-sourcing/

Guix is much more usable.