4 ms·
I generally don't like to talk about other projects negatively, because I don't think that Nix and Guix should compete. They are different takes on the same co
by rekado 6y ago
I generally don't like to talk about other projects negatively, because I don't think that Nix and Guix should compete. They are different takes on the same concept. But as I'm very familiar with Guix and have occasionally looked at how they deal with some of the packaging problems I worked on in Guix I can say that the
Nix colleagues are often punting on problems instead of solving them. Let me give you a few examples.
In Nixpkgs there are quite a few generated packages, some of which cannot be built. I'm maintaining R packages (from CRAN and Bioconductor) in Guix and I see that the equivalent packages in Nixpkgs do not accommodate some of their quirks, so they cannot actually be built.
Another example where Nixpkgs does not build packages from source is TeX Live. The SVN repository of TeX Live contains countless generated files, and all of the TeX Live packages in Nixpkgs merely copy the generated files from SVN instead of building them from source.
Java packages in Nixpkgs often seem to include pre-built jars whereas in Guix we're going to great lengths to build everything from source. This comes at a cost, of course: Guix has fever Java packages because of that, but those that it has are actually built from source.
Of course, I'm biased towards Guix, but I must say that I'm very fond of the level of integration that Guix achieves. When I look at Nix I see a bunch of seemingly separately developed tools that are written in a mix of languages (with Shell code being rather common). In Guix all tools are written in Scheme, use the same API, behave similarly, etc. It just feels much more polished to me.
That said, there is no animosity between these communities, and I think we would all be better off avoiding the mental pitfall of competition; we work on the same problems with different values and thus our approach differs. This leads to diversity rather than duplication of work.
Here are some more things I wrote comparing Nix and Guix in the past:
https://news.ycombinator.com/item?id=19807042 https://news.ycombinator.com/item?id=19807042
- AnIdiotOnTheNet 6y ago> This comes at a cost, of course: Guix has fever Java packages because of that, but those that it has are actually built from source. Truly this is much more valuable than actually being able to use the software.
- uncletaco 6y agoNote that just because you cannot manage a lot of jars through guix you can still maintain a java project that includes steps to build its source outside of guix. Also for clojure heads the Nonguix[1] repository includes a leiningen package. I think as time goes on and guix matures we will start to see more third party repositories that provide convenient builds of things. For instance I run guix system on a 2015 Chromebook Pixel and to do that I used the installation image provided at Nonguix to make sure I had all of the nonfree drivers I needed. [1] https://gitlab.com/nonguix/nonguix https://gitlab.com/nonguix/nonguix
- e12e 6y agoIf you just wanted to download and run a binary (or jar) - you can still do that? While freedom zero (the most important!) is the ability "to use the software" - being able to improve, patch and adapt the software is also very important!
- AnIdiotOnTheNet 6y ago> If you just wanted to download and run a binary (or jar) - you can still do that? If it were that simple, why would we need package managers at all? Sadly, the Linux community as a whole have dedicated themselves to a structure that makes this seemingly simple task remarkably difficult.
- craftyguy 6y ago> If it were that simple, It is that simple. > why would we need package managers at all? Sadly, the Linux community as a whole have dedicated themselves to a structure that makes this seemingly simple task remarkably difficult. Because there's a huge difference between a user downloading/running a binary, and software package management in an OS. The former is not maintainable, your binaries will be out of date soon, etc. But, if you insist on wanting to do this, there's absolutely nothing preventing you from doing it. Have fun.
- AnIdiotOnTheNet 6y ago