> 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.
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.
I suspect, but do not know, that most do not.