Hacker News new | ask | show | jobs
by pxc 1843 days ago
We can generally characterize a package manager as one of the following:

  • source-based
  • binary
  • virtualized
  • installer-wrangler
  • functional
It can be hard to say what's best altogether, since paradigm (rather than individually differentiating virtues) might dominate a user's preference or need.

There's a set of common problems that all package management systems eventually have an opportunity to address, and each tradition is committed to a few fundamental tradeoffs in its solution to those common problems. Additionally, there are problems specific to each paradigm, and solutions within a given tradition address those with varying degrees of success. Package managers generally inherit the virtues and defects of their traditions when it comes to how they solve the common problems, but they can excel individually in terms of how well they resolve the problems specific to their paradigm.

Incidentally, Homebrew is a ‘traditional’ source-based package manager, but it's also been developed more or less naively (i.e., without serious examination of any other package managers in any tradition). So it has most of the annoyances that are common to traditional source-based package managers, and it additionally bungles a lot of the fundamentals compared to competitors in its class.

As for what's good: how detailed of an answer do you want?

1 comments

As detailed as possible.