While modern software development heavily uses versioned packages, programming languages rarely support the concept