6 ms·
I think Nix's complexity is a failure. I love the concept of Nix, but I'll wait until there's something simpler to learn.
by eternauta3k 5y ago
I think Nix's complexity is a failure. I love the concept of Nix, but I'll wait until there's something simpler to learn.
- whateveracct 5y agoMost of Nix's complexity is intrinsic and not incidental. It's just that it makes it explicit instead of implicit like every other OS & package manager (many of which don't actually solve a lot of important problems and instead rely on the user to keep things consistent and working.)
- zuj 5y agoYes, this is definitely a complex problem to solve. Imaging we are talking about providing a pipEnv style abstraction for all the programming languages, tools and operating systems.
- diggan 5y agoI thought so at first too, but then I realized, no matter what distribution comes up in the future, learning a new distribution from the ground up is going to be hard no matter what. I dove head first into Nix and after a understanding the language, the OS and package manager was actually not that hard to understand. Now in after hand, I don't regret any of the the time I spent learning it.
- res0nat0r 5y agoI 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.
- viraptor 5y agoI've recently learned of Spack and really like its package descriptions. https://spack-tutorial.readthedocs.io/en/latest/tutorial_packaging.html#id7 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.
- nextaccountic 5y agoIf the problem is the syntax and people wants some other format that compiles to nix, there's dhall https://dhall-lang.org/ https://dhall-lang.org/ https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-nix https://github.com/dhall-lang/dhall-haskell/tree/master/dhal... https://www.haskellforall.com/2017/01/typed-nix-programming-using-dhall.html 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.
- viraptor 5y agoIt'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.
- flurie 5y agoIt sounds like https://github.com/jonringer/nix-template 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.
- viraptor 5y agoThat does look really cool and useful, thank you!
- johnisgood 5y ago
- rgoulter 5y agoI think Nix's syntax is comparable to jq or to some subset of JavaScript (well, the recent ecmascript versions, anyway).
- pxc 5y agoAs 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.
- vhodges 5y agoI'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/
- temptemptemp111 5y agoThat is so obviously false. You can be an expert on one distro and moving to another distro can be a breeze & breath of fresh air. In the rare case that I distro hop, this is always my experience.
- deleted 5y ago[deleted]
- johnisgood 5y agoWhat about GuixOS?
- Filligree 5y agoGuixSD? It doesn't support my hardware. This is true for far too many people for it to get anywhere, I suspect.
- rekado 5y agoIt's called "Guix System" :) If you have hardware that requires non-free firmware you can use the "linux" package from the nonguix channel: https://github.com/nonguix/nonguix/ https://github.com/nonguix/nonguix/
- tarkin2 5y agoI’m waiting for other distros to steal ideas from nix. Guix might be a good candidate but I didn’t manage to get quickly started with it looking the docs (although they looked useful if you wanted to sit down for a couple of hours).