Are npm/crates.io just a different approach to distributing software, compared to Linux distros?
Or is there something more fundamental about their approach, how it affects user/developer relations, and how if affects user autonomy?
@civodul I don't know through which lens you're looking into this, but to me there are two fundamental differences:
1) npm/crates.io/LuaRocks (language package managers) are PMs _for programmers_. They ship primarily modules/libraries; apt/rpm/etc (system PMs) are PMs for _end-users_. I don't expect a non-programmer to ever use cargo but I expect a Ubuntu user to use apt (even if via a GUI).
@hisham_hm @civodul
(puts Diogenes beard):
"Docker."
@juliobiason @civodul The success of Docker is the developer world's tacit acknowledgement that package management has failed.
(For anyone else reading my tongue-in-cheek comment without context: be aware that I have authored two package managers, both in the language side and distro side of the game. If you're offended by my remark above, just s/has failed/is hard/, but my point still stands.)
@hisham_hm @juliobiason The success of Docker is also a sign that language-specific package managers are only for developers; that they leave users aside.
You mentioned that LPM improve developer autonomy, which is true (as if developer autonomy was at risk).
What I feel, and the reason I’m glad we have this discussion, is that it does so at the expense of user autonomy. “Grab that Docker image if you want to run my code” is a symptom of that.
@civodul @juliobiason Yes, it is a tradeoff between user and dev autonomy, but LPMs appeared because distro PMs were not enough. Getting a potential contributor to fetch all matching dependencies to run "trunk" code from source *in their own distro* was often very painful. LPMs address the N langs x M systems problem. Plus, LPMs are not just multi-distro, they are multi-OS. The problem is that LPMs turn a blind eye to system deps which they often have. So, neither side has a complete solution.
@civodul @juliobiason Also, fully agree that Docker is a symptom and that end-users are getting the short end of the stick.