Ask HN: Why does every package+module system become a Rube Goldberg machine?


W3Schools
Ask HN: Why does every package+module system become a Rube Goldberg machine?
by jamesfisher on Hacker News.
A programming language has a “core language” plus a package/module system.
In each successful language, the core language is neat-and-tidy,
but the package/module system is a Rube Goldberg machine.
See JavaScript/TypeScript, Python, or C/C++. Lots of brain cycles are spent on “programming language theory”.
We’ve roughly figured out the primitives required to express real-world computation. In contrast, we apparently have no “package management theory”.
We have not figured out the primitives required to express dependencies.
As a result, we keep building new variants and features,
until we end up with , require(), import, npm, yarn, pnpm, (py)?(v|virtual|pip)?env, (ana)?conda, easy_install, eggs and wheels … Is it just a “law of software” that this must happen to any successful language?
Or are there examples of where this it has not happened, and what can we learn from them?
Is there a “theory of package management”, or a “lambda calculus of package management” out there?


W3Schools

Leave a comment