Let's flog this dead horse with a concrete example using AutoBar & the PeriodicTable-2.0 -> PeriodicTable-3.0 transition.
Ok, as an author I bitched about having to upgrade but the reasons were compelling: compressed & thus smaller data sets, better organization etc. Therefore I chose to upgrade.
The new stuff was completely incompatible with the old: keys changed, data sets got moved around, merged split apart, dropped.
What would a CL layer have done? Well:
*It would have had to maintain a table translating the old keys to the new ones
*It would have had to add old comapatability sets for each set that got merged, dropped or split
*There would be this redundant code sitting there unused by any mod that did upgrade
*Time would be spent on CL & debugging the CL & debugging old crappy unupdated mods just because maybe the CL broke something
What happens in the long term? PeriodicTable-4.0:
*Needs a CL layer for the CL layer
*Needs CL for 3.0
*Needs double the implementation time because of all this completely uneccessary stuff
*More time debugging CL
*Triple the imnplementation time
*Features dropped because the code is starting to become total crap & a nightmare to upgrade.
*Fulltime person now devoted to dealing with CCCL etc. ssues in old mods
*Never released for use as the CL stuff was too complicated for a human to upgrade within the lifespan of the universe
*Who cares about its features, nobody got it working.
Hopefully this clears up any confusion. If it does not, may I point out a real life example in Microsoft Vista? It took Microsoft over 10 years to give birth to Vista because they maintain backwards compatability all the way to the days of DOS or something sick like that. CL is crap & if u can avoid it you do so. In the case of libs simply using the old libs for lazy mods is all the CL we need which is: ZERO.
I suspect that there will never be a compat layer for PT, but it seems to make sense for me, Parser for example. VampircTouchFu needs Parser 1, and i think so do a few other mods, but then a bunch other need Parser 3 [now 4] If Parser 4 can provide the compat layer adequately, I rejoice, if it doesn't then yes Tek, its my own fault and I either need to bug CKK [in this case] or just load the old lib.
In fact I did this today when Crayon compat didn't work and broke 3 of my addons.
Peak memory is immaterial, yes.... but memory consumption rate is a VERY valid performance issue. Don't confuse people with blanket statements.
Which is totally the wrong way of doing embeds. The whole point of majors is to completely separate the new lib from the old one. If old mods use the old lib, yes there is duplicate crap happening, but the old mod needs to be upgraded (or not upgraded in some cases). "Compatibility layers" are crap, either upgrade the old lib and don't break old addons using it, or make a new major that exists in it's own world and doesn't screw with the old addons using the old lib.
I'm confused by your blanket statement that compatibility layers are crap? There must be some dev reason for feeling this way? On a practical user side of things, compatibility between major versions is helpful and we like it.
Like the PS2 being backward compatible with the PS, and PS3 being backwards compatible with both of the previous. It seems like it helps transitions.