MCBastos wrote:
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/


Great explanation, thanks so much!

_______________________________________________
support-seamonkey mailing list
support-seamonkey@lists.mozilla.org
https://lists.mozilla.org/listinfo/support-seamonkey

Reply via email to