There's no need for two styles of package managers. GNU Guix and Nix can serve both purposes (and more) very well, for example.
I think language-specific package managers are fine for easily sharing source code amongst developers using the same language, but they shouldn't be used in a production system.
Re:20 years as a Debian maintainer
by steveklabnik on Monday January 09, 2017 @08:53PM
(#13361869)
I don't necessarily disagree. I think your third sentence still implies two styles, which is contradicting your first.
Nix and Guix don't work on Windows, right? They're still not close to a solution until they do.
If you're on Windows, then fine use whatever is available. A language specific package manager is about as good as it gets there. There are no good package managers for Windows, and I don't think there can be. I don't even know if you can isolate builds in a container like you can on GNU/Linux. That's a crucial OS feature. Besides, I aim to liberate users, not enslave them, so I develop for the GNU system, not Windows.
The third sentence is not a contradiction. I'm just saying that I can live with people using language-specific package managers, but really they would be better off with a general-purpose one.
There are several package managers for Windows:
https://en.wikipedia.org/wiki/List_of_software_package_manag...
The two styles of managers just have different goals. That is, a package manager such as apt has the goal of creating a single, harmonious system from stuff written in many languages. But a language-specific package manager like Cargo has the opposite goal: to provide a good way of writing software written in one language across multiple systems. This is where most of the tension comes from. The rest of it is from the same general structure, but with different specifics: the goals of these kinds of systems are very different, and conflicting.
Software is hard.