No idea. It seems to have gone off in the direction of "shiny and new" without deeply considering more practical architectural decisions like isolating system vs. userland, configuration management, or manageability. It's unfortunate because there are zillions of Linux distros, and most of them (numerically) are terrible, insanely impractical, user hostile, and/or poorly documented. If you're going to create a distro, at least have a use-case justification for it where other distros or other OSes ([wd]o|ca)n't meet the needs of them adequately.
> It seems to have gone off in the direction of "shiny and new"
Ikey's last foray into distro-building also left same impression on me.
> without deeply considering more practical architectural decisions like isolating system vs. userland, configuration management, or manageability
I dunno, FWIW, Solus was very well regarded in UX for a while. It had the best steam integration, and the whole thing felt fairly well thought out for something built and maintained by half dozen people.
> If you're going to create a distro, at least have a use-case justification for it
That is unfair. The developers felt there is a gap between fully imperative state-modifying mudball and fully declarative purity-land, which is true, and decided to try their hand at it. How well they did is yet to be seen.
> That is unfair. The developers felt there is a gap between fully imperative state-modifying mudball and fully declarative purity-land, which is true, and decided to try their hand at it. How well they did is yet to be seen.
What I meant was: the thesis has to be crystal clear rather than building into the aether "organically" by hope and wishes rather than practical need. This is a similar failure of coding away on a "startup" without sales only to discover no one needs or wants to buy the result.
Time and time again, Linux distros create messy, commingled system with user dependencies that increase system entropy and footgun stability. Even Alpine isn't immutable or really self-contained. The major, novel departure in this area was Core OS.
As an example under-served category in the marketplace: If one wanted to create a more resilient server OS, I would evaluate bringing together aspects of the following:
- Qubes - app isolation
- RHEL - kernel
- Rocky/Alma - governance
- Core OS - system isolation
- NixOS - package management
- FreeBSD - development, integration, and QA as a system
- (N/A) - fleet management (missing in 99.999% of Linux distros)
> Why someone would want an imperative distro over a declaratively configured one?
Perhaps most people are not aware of the difference or why it should matter?
After years of reading and study I only have a vague and hazy understanding of functional vs imperative languages, and what one can do in a functional language.
I have not seen any project built around functional programming that really makes a serious effort to explain why it is different or why anyone should care. My overall impression is that most take the attitude of IYKYK -- "if you know, you know" -- and don't even try.
While this is an understandable response to years of incomprehension and lack of interest, it's still a poor response.
I have spent _hours_ talking with Nix folks trying to get a better understanding and for the most part I have failed.
I would guesstimate that 99% of programmers do not understand FP vs imperative programming and so neither know nor care about FP.
So when the definition of efforts such as Nix and Guix is "we specify configuration using a pure functional language", most readers won't know or care what that means.
The Reddit-ism of "explain it like I'm 5" is a powerful criterion.
I look for people who can give me clear, simple, lucid explanations of what their software is and how it works. When nobody can, I tend to suspect that the software is either not much general use, or that advocacy for it is not based on facts and understanding but by clan loyalty.
Projects which few people can cogently clearly explain to me without jargon and bafflegab include Kubernetes, OStree, and OpenShift. It is, notably, a hallmark of Red Hat, and I speak as a former employee. I was hired to work on one product's documentation. I found that nobody in the company could explain what the product was or did, until I met the 1 person who came from the company that wrote it and which RH acquired.
I think I have an extremely sketchy understanding of the point of Nix and I have tried to explain it, but I am sure it is a weak, poor understanding.
More effort to explain what it means and why it matters would go a long way.
If people were clearly told what "declarative configuration" meant, what it was and what it did and how it worked and why they might want it, then maybe they would care.
This is true, there are already a plenty of imperative distros to choose from and they offer more or less similar experience. If I ever want to switch to something else, this would be NixOS or another declarative one.
A very simple example:
* install a server program, which for security is run as a dedicated (newly-created) user
* run the server program, which generates logs owned by that user.
* uninstall the server program - but the user must not be deleted while the log files exist
This example is simple enough that many declarative systems don't require too much massaging to handle it, but many more complicated examples exist.
[1] https://en.wikipedia.org/wiki/Hysteresis