so over the years there are API changes to APIs or to frameworks. Perl has done this when they went from Perl5 to Perl6 (aka Rakudo). As the rumors are flying, Xojo is moving from API1.0 to API2.0. I am not breaking any NDAs as they announced the change coming soon at their XDC conference back in May. now is soon this month? this quarter? this year? this decade? who knows and doesnt matter for this discussion.
if you take Perl5 code and run it through the Perl6 interrupter it just wont work. the syntax is different. some of it is the same, but some of it is very different. and it changed for the betterment of the language. Perl5 was not object-oriented. there were some modules you can slap on top of it to do objects at that layer. I am talking about Moose/Moo/the-like. so Perl programmers (that are used to Perl5) are hacing to learn how to change the way they write code to be able to use Perl6. takes time. and unless you have a need to, you arent going to go back and rewrite all your Perl5 into Perl6 code. doesnt make financial sense.
same basic thing happen in Python2 to Python3 change. they didnt have as drastic changes but it came down to a different API/framework from v2 to v3. and the interrupters could only run their version of the API/framework. unlike the Perl world, Python told everyone that Python2 is dead and stop using it. migrate everything to v3 and make the changes necessary to do so. I think that is a little drastic but I understand why they did it. dont agree but understand.
now Xojo is releasing a new API. API2.0 which by their words takes the best of “classic framework” and “new framework” and cleaning up some inconsistencies. which all sounds good to me. at least in theory. making everything 0-based or 1-based (please oh please make it 0 based!) would be nice. renaming methods/events to be more clear of what they do or what they are. great! renaming similar methods/events between different classes/objects/controls to be the same so their is consistency is great too. but dont change things to just change things. make changes to improve the API/framework.