Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There is Guile for that.

The Nix language out-schemes scheme (even smaller), so I don't really see the point.



One reason is that Scheme has Emacs modes that connect to a live system for precise jump-to-definition, etc. This works with Guix and is extremely convenient. Scheme's metaprogramming also enables Guix's beautiful system of code staging, G-expressions.

https://guix.gnu.org/manual/en/html_node/G_002dExpressions.h...


> One reason is that Scheme has Emacs modes that connect to a live system for precise jump-to-definition, etc. This works with Guix and is extremely convenient.

Those are all valuable things, but I don't think that would actually be hard to implement for the Nix language either. Just no one bothered

> Scheme's metaprogramming also enables Guix's beautiful system of code staging, G-expressions.

Yes not pasting together strings for bash would be nice, but with all due respect to scheme's metaprogramming, which I do indeed highly respect, I view this as fairly orthogonal.

From a quick glance, g-exps don't have much binding structure? That means hygiene and other things are not as useful, and just doing

  ["see" "I" "can" "sexp" "too"]
in the Nix expression language isn't actually so bad.


With G-expressions you can splice in computed store values, e.g. the computed output location of a package. I recommend the paper[1] explaining why they exist and what alternatives they replace.

[1]: https://hal.inria.fr/hal-01580582




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: