On Fri, Apr 29, 2016 at 6:10 AM, Robert P. Goldman rpgoldman@sift.net wrote:
TBH, this seems to me like a pretty esoteric use case: I'm curious about how and when you encounter it.
Elsewhere, it happens in large projects where two direct dependencies themselves depend on different versions of the same library. I haven't had this happen to me in CL, but I expect it to happen if exact version matching were to become prevalent.
In reading this list, and elsewhere, I understand that versioning becomes controversial. I've experienced both sides of the problem where you either under or over specify the versions of dependencies. Exact version matching is a useful tool to limit the impact of upstream changes. However, it does induce trivial domino-updates. At Amazon, I got used to some tooling and process that reduces the overhead, while also seeing the turmoil caused by teams having to support old versions (they'd pinned/used-exact and would never have "the resources" to update).
If you're interested in cool language features, that's one thing, but I can't imagine as an engineering matter that you couldn't hack around the few times this would happen.
While I am interested in cool [features] for HOT languages [1], I recognize the pragmatic approach is sort out the upstream divergence and find some workaround - I'm not arguing one way or the other - just wondered whether and how one might sort it out at the system-builder layer.
[1]: http://dl.acm.org/citation.cfm?id=277730