top | item 29731115

(no title)

fooblitzky | 4 years 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.

discuss

order

Kuinox|4 years ago

> 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.

redbar0n|4 years ago

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.

redbar0n|4 years ago

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.