<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2015-11-29 22:03 GMT+01:00 Imants Cekusins <span dir="ltr"><<a href="mailto:imantc@gmail.com" target="_blank">imantc@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><p dir="ltr">> In the exporting library? In the importing library?</p>
</span><p dir="ltr">Well, in both places. Basically, similar part of namespace guarantees that api is the same below.</p></blockquote><div>To make this work on the exporting side, the namespace hierarchy would need to be structured according to API versions. This would mean constant reshuffling of modules in the hierarchy every time you make an API change. Furthermore, speaking from a more aesthetical point of view, names in the hierarchy should have some sensible semantic meaning and should not be littered with more or less random name suffixes. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<p dir="ltr">[...] This exact same version would be pulled in alongside other versions of the same library, used in other parts of a large app.<br></p></blockquote><div>This won't work when e.g.the libraries have a C part (unless you convince all people out there to use some kind consistent hierarchical naming scheme for C, too).</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr"></p>
<p dir="ltr">It may lead to code duplication and larger binaries however it would essentially give you a sandbox with very little effort.<br></p></blockquote><div>Personally, I don't consider littering my code with version numbers as "little effort". Stuff like this should be specified outside of the source code IMHO. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<p dir="ltr">Well, let's say I am working on a library. Tempting as it is to release the first draft, I'd first use this fresh library in a few places, catch some bugs, fix them, and then release.</p>
<p dir="ltr">Because this takes time, this library would see very few releases per year.</p>
<p dir="ltr">It would be less likely to cause multiple version conflict.</p>
</blockquote></div>This contradicts the common "release early, release often" scheme of doing things, which has *many* advantages. And the number of releases is not relevant in itself, it's how often you change the API, which is a totally different matter. The longer you wait with releases, the higher the chance is that the next release has an incompatible API change, and your users won't get bug fixes without that API change, which won't make them especially happy.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Cheers,</div><div class="gmail_extra"> S.</div></div>