Hacker News new | ask | show | jobs
by fooblitzky 1636 days ago
For me, an interesting language development would be finding ways to make managing dependencies more... manageable. We've seen a rise in systems for packaging, distributing and consuming code written by others. However, still a significant part of maintaining systems is spending time on upgrading dependencies, updating application code as things are deprecated, responding to CVEs, etc.

I think there's interesting research and ideas to find in this area, that could lead to a productivity boost. One example idea (I'm sure there are better ones) would be allowing simultaneous use of multiple versions of a library. E.g. This dependency I'm consuming uses CommonLibrary-1.2, and this other dependency uses CommonLibrary-2.4, but they can both get along just fine without having to find some combination both dependencies can agree on.

2 comments

> would be allowing simultaneous use of multiple versions of a library

Thats called private dependency, and overusing it lead to the node_modules hell (because it was/is the default on npm).

IMO, a way to reduce maintenance on updating dependencies, is having automated code modification that are ran when updating the dependency.

yes! although you don’t even have to modify the code per se if you have «content-addressable code». See other comments in this thread that expands on it.
Definitely!

See the article’s points on «forward- and backwards-compatibility» and «content adressable code».

The latter has implications for library and package management. Someone expanded quite nicely on it elsewhere in this thread.