4 ms·
The problems are twofold: 1. The language is a significant problem. If you get everything right, it will do what you want. That's the only nice thing I can
by lallysingh 5y ago
The problems are twofold:
1. The language is a significant problem. If you get everything right, it will do what you want. That's the only nice thing I can say about it. Almost every error it will give you will be misleading. I haven't had such a hard time figuring out errors since early C++ template metaprogramming. And frankly, that was easier.
It needs real diagnostics, and that frankly, that means it needs real types. But that won't happen. Too much of the informal type system of nix is "whatever keys that library function uses, go look in the source."
2. Half-implemented packages. Try walking out of the golden path on a package, without having to modify its nixpkgs entry.
Between the two, it's more nerd-bait than usable platform.
- takeda 5y agoLooks like these things are being addressed, although from past of experience it probably will take several years :( (when I started using Nix, 3 years there was a talk about this new thing called flakes, now the version 2.4 already contains it, but it is still locked behind experimental features) 1. https://github.com/tweag/nickel https://github.com/tweag/nickel - it is a typed language, that might in the future replace nix language 2. looks like likely is addressed by flakes
- klarkc 5y agoThere is also https://github.com/purenix-org/purenix https://github.com/purenix-org/purenix
- takeda 5y agoThat's interesting, looks like it is transpiler that could be used immediately if someone doesn't mind the extra step. Thank you for sharing it. BTW: the Nickel has chance to end up replace Nix language as I saw author of Nix (Eelco) is also contributing to it. I don't think it can transpile to a nix code.