Hacker News new | past | comments | ask | show | jobs | submit login

I recently installed GUIX and just out of the gate I like the syntax much more than I ever did with Nix. The Nix syntax is just to random and hard to just guess what is going on if you're not sure what you're looking at. At least GUIX is more traditional looking Scheme type code.



I've recently learned of Spack and really like its package descriptions. https://spack-tutorial.readthedocs.io/en/latest/tutorial_pac...

I don't have time to play with it, but really hope that one day someone will write something that effectively "compiles to nix". As far as I can tell, that could be done using the Spack's python descriptions.


If the problem is the syntax and people wants some other format that compiles to nix, there's dhall

https://dhall-lang.org/

https://github.com/dhall-lang/dhall-haskell/tree/master/dhal...

https://www.haskellforall.com/2017/01/typed-nix-programming-...

Dhall is a generic config language with some programming capabilities (but not turing complete) that can compile to json, yaml, and other formats, like in this instance nix.


It's not just the syntax (for me anyway). I just don't care about the how the derivation composes in practice, how it does overrides, how it integrates with flakes, how it applies the best-practices-of-the-day. I see the derivation as pure function as a cool theoretical exercise - but not something I want to actually write.

I want to actually declaratively say: here's an autotools package with some parameters I defined, give me the fancy overridable pure nix equivalent.


It sounds like https://github.com/jonringer/nix-template might be helpful to you. You can generate a nix expression to build an autotools package, and you can even pull the package info straight from a public repo. In the case of nix, most C-type things fall under stdenv, so that is the template you would want to use.

I barely write any C, but I've gotten very good at building C/C++ applications over the past couple of weeks by fixing broken derivations ahead of a release.


That does look really cool and useful, thank you!


Is Dhall worth it? I see there are Go bindings for it, but I am not sure. Is it really worth it? What is the use-case for it where TOML would not suffice?


I keep thinking about using it, but I've never used it, so I wouldn't actually know..

But, the use case is to reduce redundancy in the config file. Maybe when you have lots of configs, each with slightly different fields but the rest otherwise the same. Toml isn't really suitable for programmatically generating config like that.


As a Nix user who has recently taken some time with Guix, I envy the Guix CLI but not the language. The Guix DSL seems totally fine, but imo the Nix language is very well suited to its problem domain.

For simple configuration, you can just leave 95% of the Nix language's power on the table and it feels really simple, like it's JSON or something.

You can work your way to to all the real features at your own pace.


I've been looking into Nix a lot lately (but have yet to take the leap - I'll probably start with devshell)

But a couple of projects have come up lately that piqued my interest wrt syntax and alteratives (Since I am not sure about Scheme anymore than Nix (as a langauge) :-)

  * https://github.com/maxmcd/bramble
  * https://nickel-lang.org/


I think Nix's syntax is comparable to jq or to some subset of JavaScript (well, the recent ecmascript versions, anyway).




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: