3 ms·
How can one write an article like this and fail to mention guix? It solves _a_lot_ of the problems mentioned. Guix (and all its channels) is a great piece of so
by Roark66 4y ago
How can one write an article like this and fail to mention guix? It solves _a_lot_ of the problems mentioned. Guix (and all its channels) is a great piece of software, but unfortunately its potential for populartity is severely diminished by the insistence of the core user/dev group that its goals are not purely technological, but ideological(perhaps even primarily ideological).
It seems that for many devs guix is less of a technical achievemt,and more a way of preventing people from being able to run what they call "non free software". BTW, "non free software" also includes open source software that was released under certain non-compliant licenses.
The biggest issue I have with guix is that any effort of packaging "non-free" software (such as cuda, intel MKL, nvidia drivers etc). Is heavily discouraged, and if it it does happen its discussion is banned from official channels and all authors which make such software available in their personal repos seem to meekly include various pledges in the READMEs "to not advertise this horrible evil thing, or otherwise let people know of its existence". To me this behaviour is very far away from encouraging "free software", but my and their definition of free differ a lot.
My second issue with guix is that the language used to write everything(guile) still lacks many crucial debugging and ease-of-use features such as: being able to display more meanigful error messages, being able to show on which line of compiled code the error/exception happens at, being able to easily interrogate variable value types (there seem to be lots of is_this_value_a_string?, or is_this_value_an_integer? functions, but no what_type_is_this?), no standard way to convert nested objects to string, or to pretty-print deeply nested objects. To this one has to add pretty substantial, but really poorely laid out documentation of the language (from the very first chapter the authors in their examples use all language features that may not be explained until 300 pages in - so the reader basically has to read the whole thing multiple times to "get it"). And so on... All those things matter a lot to beginners and they matter less to advanced users. If this language and guix in general is to catch on, it has to be more beginner friendly.
However as a package manager it really is pretty good. It delivers everything nix does, but uses a more standardised and powerfull general purpose language.
I can't wait until someone forks guix without the whole ideology thing.
- forgotpwd16 4y ago>I can't wait until someone forks guix without the whole ideology thing. There's no reason to fork Guix since ideology doesn't affect the software itself at all. Rather what you want is make an alternative definitions repo. Pretty sure I've seen such one that includes software not accepted on official channels.
- Roark66 4y agoIndeed alternative "channels" exist. I mentioned them in my post. However, their authors don't question the ideological side of things. As I mentioned they even include statements how this software is "evil" etc. What does it matter, you may say, the software is available! Yes, it is, but because of the whole "please don't advertise non-guix non-free(by their definition) software" it is hard to find to new users. Additionally pretty much all support there is for guix is provided by maybe 5 people on the irc channel. If you go to nonguix that number shrinks to perhaps 3 or 2. It is not easy to get support when the whole community is few people. By "forking without the ideology" I would like to see guix under a new name, the name new users would search and find an installer that used normal Linux Kernel that supports a lot of software,after installing they would find a (hopefully) large community that is helpful in how to package any kind of software. One where a user doesn't have to hide the fact their trying top package software with proprietary components to get help etc. The "pure" guix has a different mission and it can continue with its libre-kernel . As of now, the software things I mention (guix with normal Kernel) exist, but they are not popular, as a result they are not as up to date as they could be. Also the whole project popularity suffers as a result.
- bayindirh 4y ago> I can't wait until someone forks guix without the whole ideology thing. What's wrong with the ideology behind it?
- coldacid 4y agoStrict ideology itself is wrong if for no other reason than that reality is not black and white.
- bayindirh 4y agoWhile I understand where are you coming from, GNU is a great counterbalance to the currents and trends what we have today. It single-handedly made open source ubiquitous, normalized open source licensing and changed the how software is built. I'm a strong proponent of the philosophy GNU is putting forward (the reality is GNU is just something which aligns my ideology, I'm not a convert), but I understand that both things are not that easy and non-GNU world will always exist in some form. On the other hand, regardless of the software I use, all software I develop is strictly GNU/GPLv3. I also contribute to projects with more permissive licenses, but my software is always GPL. GNU may not be able to convert the whole world to Free software, but it's a necessary force to protect our current environment and evolve it for the better. Moreover, while not pointed at you directly, GNU and GPL is vastly misunderstood concepts. They are neither evil, nor unreasonable. It just aims to move the freedoms developers enjoy with MIT/Expat licenses to users by making them irrevocable.
- the_duke 4y agoGuix is basically an open source focused variant of Nix, with a few different design decisions. It's also considerably less popular than Nix, which is already niche.
- Roark66 4y agoThe main difference between guix and nix(other than ideology) is the language used to define the packages. Nix uses its own language, guix uses guile(compatible with scheme). Many people will find the nix language a lot more readable and easy to learn, but one may argue scheme/guie is a more general purpose language. It has been in existence for a long time. As such it has a large number of libraries, editing tools and it is easier to do stuff without having to resort to third party tools and scripts. Therefore in the long run guile (for one that learns it well) will prove more useful. I have to admit I'm not 100% convinced by the argument. I've been learning guile for a couple of weeks and I just start to "get it". Compared with other languages I learned the difficulty with guile was many many times more (for various reasons). I now see it as a pretty powerfull language, but not without many faults. The above notwithstanding I think something like Guix/Nix will become really popular when a truly easy for beginners to learn and powerfull language is used (such as python for example). Perhaps it would be an interesting project to attempt to auto-translate guix from guile into python. I can definitely see it takeoff then.