Package Managers à la Carte: A Formal Model of Dependency Resolution
44 points by ryangibb
44 points by ryangibb
Here's @ryangibb's FOSDEM talk on the subject: https://watch.eeg.cl.cam.ac.uk/w/iPX1Xx8LAZnuhojVYbyvAB
The Package Calculus serves as an intermediate representation for dependency expression: each ecosystem need only define a translation to and from the core, reducing the translation problem from 𝑛² to 2𝑛 translators.
I suppose something equivalent has been the intention of LSP (or LLVM, or even WASM/WASI?). What are efforts similar to this that has succeeded, failed or long yearned for, in the programming ecosystem, or computing in general?
You quote in your answer several examples of other domains where this has succeeded. LLVM began as a reaction to GCC wanting to remain monolithic, and is now a widely used intermediate language.
Similarly, there are a lot of incentives in package management that are pushing the market towards monolithic control (economic, access to training data, security), but having an intermediate language will result in a far more robust longer term ecosystem. The package calculus is a first step towards this: it still needs a concrete implementation, but getting the requirements written down is a big first step towards that.
What are efforts similar to this that has succeeded, failed or long yearned for, in the programming ecosystem, or computing in general?
Isn't that related to the narrow waist theory? As seen exemplified by VMs, OS images ("docker"), wine, etc
Yes; I like this definition of narrow waist. All of those technologies like VMs and Docker and LLVM helped to unblock an interoperability bottleneck, and helped to grow the overall 'computing economy' by increasing the efficiency by which a distributed set of nodes could work with each other. I really do think that package management is ripe for a similar efficiency of interoperability.
For those with a rainy weekend ahead of them, @ryangibb and I have also been working through some pretty weird biological ideas about what might be next :-)