Hi again,

being working a lot with mootools, dojo, wordpress and some other frameworks and toolkits lately, my question today is this:
Why, most of the times, don’t frameworks and toolkits developers launch any backward compatibility modules at all?

It might seem pretty complicated getting old deprecated funcionalities working  on newer, better versions, but, apart from some real specific embembed funcionalities, it really shouldn’t be that hard.

For the following example i’ll use Mootools as an explanatory example:

All you need is a nicely designed dynamic version transitioning system.
One that allows you to, anytime on the execution, define which version will the following code run on.

Imagine you design a backward compatibility plugin from version B to version A.
On version C you’ll design a backward compatibility plugin to version B.

So now, on a page running “mootools-C.js” you should include the backward compatibility modules “mootools-back-C-B.js” and “mootools-back-B-A.js”, or a compiled version (having just a copy paste of both previous files content) “mootools-back-C-to-A.js”.

So if you run something like “Mootools.use_version(’A');” the dynamic version transitioning system would automatically look for it’s previous version compatilities execution for version B at, let’s suppose, “MootoolsBack_C_B();” and then rerun the same command (”Mootools.use_version(’A');”) while already running on version B to travel back to version A (the dynamic version transitioning system, already on version B would run something like “MootoolsBack_B_A();”).

This method would, in theory, work for multiple version transitions without having to design a specific plugin for each version to version compatibility. It would save developers hours in trying to put two different tools, based on two different framework/toolkit versions, together on the same execution – like using both MOOdalbox 1.3 beta 2 and mooflow v0.2 in the same page.

The system would work both ways, as you could “Mootools.version_reset();” or “Mootools.use_version(’C');” to travel back to version C on the rest of the execution, the system would run the consecutive version travel functions eg. “MootoolsBack_A_B();” and “MootoolsBack_B_C();” and the rest of the code would be running on Mootools version C.

This “dynamic version transitioning system” will be used for every release transition on NaturePhp.
It might not work perfectly at first, but it will certainly relieve many developers’ headaches.

I hope in the future more and more projects start using a system like this.

[del.icio.us] [Digg] [Facebook] [Twitter]

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.