Interviewed by CNN on 07/07/2011 18:12, goldtech told the world: > Please explain why it's necessary for addons to break when ever a new > version of FF or SM comes out. Can not it be coded so that all the > tools I use will continue to work? I don't get it - would someone > explain?
I'm not in the developers team, but I'll try to give a layman's explanation of what happens. Add-ons (extensions) "hook" into and modify the user interface of the program -- sometimes inserting a new module in the structure, sometimes replacing the standard module with their own customized module, whatever. But add-ons are written under a number of assumptions, those being that the calls (the way an add-on "talks" to the main program) will have such-and-such names and behave in such-and-such way. Here's the thing: the main program evolves too. The developers try not to change the existing interface whenever it's possible, exactly in order to avoid breaking add-ons. But sometimes the change is big, and some assumptions the add-on relied on are no longer valid. For instance, we had two rather big changes recently, one in Firefox, one in Seamonkey. Firefox completely overhauled the user interface. This means that add-ons that made certain assumptions about how the user interface would look and behave got hosed. In Seamonkey's case, there the new Places engine for bookmarks. Again, add-ons that expected the behavior of the old HTML bookmarks system broke. And those are just two particularly large changes. There are smaller changes spread all over the programs that, for one reason or another, also broke compatibility with previous versions. Sometimes it might be that the old behavior was found to be intrinsically unsafe, or intrinsically unstable, and the dev team decided to remove it. (When they do so, they usually promote an alternate approach to get the same results -- but that entails changing the add-on). Sometimes it could be that a particular piece of code was written by someone no longer active in the project, and the author did a poor job of documenting it. So nobody can really understand how it works now, and it is holding back the development of other parts of of the project. Eventually a decision is reached to replace it with new code -- but the new code will not behave quite the same way as the old code. And sometimes it's not the main project's developers' fault. Some extensions use the API calls in weird ways they weren't intended to be used. This might be a really good add-on developer pushing the boundaries of what's possible to do in an add-on... or a really lame add-on developer who can't understand the recommended way to do stuff. Either way, the main project developers cannot guarantee those undocumented tricks to keep working. A malfunctioning add-on can make a program unusable. That's why there is a compatibility check built in Firefox, Seamonkey & co., because it's assumed that it's better for the user to have Firefox/Seamonkey/Thunderbird working without an add-on than to run the risk of it crashing horribly due to a faulty add-on. Note that the compatibility check does not do any sort of deep analysis of the add-on; it just checks if the add-on itself claims compatibility with the current program version. Some add-on authors (particularly the ones doing complex add-ons, such as NoScript or Enigmail, which could break stuff horribly) are understandably very conservative about such claims: they won't claim compatibility with a program version until they have tested it. So, depending on whether the add-on author was proactive about testing their work against the development (beta) versions of the main program, it might take some time until they release a version claiming compatibility. Other authors are less concerned and claim compatibility with versions which haven't even begun development yet. (In the case of add-ons that do things in a very simple, straightforward way, the assumption that those features will remain stable for a long time may even be reasonable. But it seems a bit too daring to me.) And... many times the add-on is not even broken; it works PERFECTLY WELL with the new Firefox/Seamonkey/Thunderbird version. It's just that nobody has bothered to update the compatibility claims in the add-on yet (That happens a lot with add-ons that are no longer being actively developed). It's not the dev team's fault that the add-on itself claims to be incompatible. In those cases, some community members sometimes will release slightly modified "unofficial" versions of the add-ons, with the only change being the compatibility claims (Sometimes it takes real programming fixes, too; but unofficial versions with fixes are not unheard of). Philip Chee maintains a repository of many such modified add-ons for Seamonkey (and, in a few cases, for Firefox and Thunderbird too) at http://xsidebar.mozdev.org/ -- MCBastos This message has been protected with the 2ROT13 algorithm. Unauthorized use will be prosecuted under the DMCA. -=-=- ... Sent from my Blueberry. *Added by TagZilla 0.066.2 running on Seamonkey 2.1 * Get it at http://xsidebar.mozdev.org/modifiedmailnews.html#tagzilla _______________________________________________ support-seamonkey mailing list [email protected] https://lists.mozilla.org/listinfo/support-seamonkey

