3 ms·
> First it's a distribution and a package manager Nope, it's a language, and thinking of it as those things, even more so firstly is probably part of the strug
by 40yearoldman 4y ago
> First it's a distribution and a package manager
Nope, it's a language, and thinking of it as those things, even more so firstly is probably part of the struggle.
It's a language that you use to get your computer to do specific things. In this case, it might be a "package manager" and in the other case it could be a "distribution".
When you write go or rust to print "hello world" to the terminal you don't go around and call these things "printers", or "hello worlders".
It's a language, just like rust, go, php, bash, ed, awk, and brainfuck. Your first example even shows you using the language why proclaiming ahah! shell thing, or package manger! -> `'python38.withPackages (packages: [ packages.django ])'` is using this language to instruct the computer to do something. If you don't want to take the time to learn the language and understand its outputs, and want to just think "this is a package manager" then you are going to get lost.
- masklinn 4y ago> When you write go or rust to print "hello world" to the terminal you don't go around and call these things "printers", or "hello worlders". That is the exact reverse of the relationship between Nix and Nix. When I write in Go or Rust, a printer is a tool I might use to achieve a specific sub-part of my over-arching goal. My goal is not writing nix programs, I've got better programming languages available for that. Nor are the nix OS or package managers utilities of nix. The relationship is the opposite: the nix language is a tool provided to manage software or distribution in order to actually do things. > Your first example even shows you using the language why proclaiming ahah! shell thing, or package manger! Aha yes, that well known language of whatever apt is, checkmate! > If you don't want to take the time to learn the language I don't even mind that, I'm pointing out that the official nix documentation I got from the official nix site following its own recommendation gave me something utterly unhelpful which neither helps me in furtherance of my goals, nor provide any obvious steps towards that. Having learned that `python38.withPackages` is a function called with an other function `packages: [packages.django]` as parameter does not help me either. > want to just think "this is a package manager" then you are going to get lost. I guess I should remove nix then, since it's not a package manager and that's what I'm looking for? You should maybe think of fixing the branding by the way, because some folks slander nix by calling it an OS, and there's pages talking about "nix: the package manager". In fact that's literally the tagline of the primary manual: > Nix Manual: Nix is a package manager which comes in a form of many command line tools. > Introduction: Nix is a purely functional package manager.
- 40yearoldman 4y ago> My goal is not writing nix programs That is your issue. This is a language to write "operating systems" and "packages" it is not really a "package manager". You use different programs and libraries to work with different systems. >I guess I should remove nix then, since it's not a package manager and that's what I'm looking for? Yes, I think that is the flaw, it's a language, that lets you write code that produces an output.