[conspire] Why some computers don't get updated.

Rick Moen rick at linuxmafia.com
Wed Dec 16 07:55:52 PST 2020


Quoting Paul Zander (paulz at ieee.org):

> At CABAL, as usual, we talked about many things.  Only later did my
> mind connect dots between two seemingly unrelated topics.   The second
> topic was about people not updating their software.  For sure, some
> people have unlicensed copies and can’t access updates.  And others
> find it bothersome.    But there are also people who don’t want
> upgrades because upgrades sometimes break things.

Sure.  For the benefit of people who weren't there, on the CABAL Jitsi
Meet conference, I was talking about how it's not a good idea to run
obsolete, long-unmaintained releases of public-facing software such as
full-featured Web browsers -- which then lead me to a realisation I'd
had:  A key reason why Microsoft Windows is associated with so many
security meltdowns is software piracy:  People run old MS-Windows
versions and instances without update support because they don't want to
pay (which category includes newer, beefier hardware required to support
current OS releases).  It's a great deal easier to keep an open-source
OS under security maintenance as long as enough maintainers care to do
the work: The perverse incentive to take crazy risks just to avoid
paying money is much less present.

> Suppose a business had developed some important internal software that
> was based on XUL.  Then Mozilla decides to end support for XUL. 
>  After a seemingly innocent upgrade to Firefox this software has
> stopped working and the company has to scramble.  

Yes.  In fairness to Mozilla Corporation, they _did_ give quite a bit of
advance notice that XUL/XPCOM/XBL were being phased out.

I meant to post (when I covered this matter about a week ago) some of
the technical reasons that drove Mozilla to EoL the XUL
(https://en.wikipedia.org/wiki/XUL), XPCOM
(https://en.wikipedia.org/wiki/XPCOM), and XBL
(https://en.wikipedia.org/wiki/XBL) APIs.  Unfortunately, I don't have
that handy and have only a hazy recollection.  Here's a pretty clear take,
from 2015 when Mozilla first moved towards that decision:
https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons/

  XPCOM and XUL are two of the most fundamental technologies to Firefox.
  The ability to write much of the browser in JavaScript has been a huge
  advantage for Mozilla. It also makes Firefox far more customizable than
  other browsers. However, the add-on model that arose naturally from
  these technologies is extremely permissive. Add-ons have complete access
  to Firefox’s internal implementation. This lack of modularity leads to
  many problems.

  A permissive add-on model means that we have limited flexibility in
  changing the foundations of Firefox. The add-on breakage caused by
  Electrolysis is an important example of this problem. Technologies like
  CPOWs help us to work around add-on problems; however, CPOWs have been a
  huge investment in effort and they are still slow and somewhat
  unreliable.

  Without a fundamental shift to the way Firefox add-ons work, we will be
  unable to use new technologies like Electrolysis, Servo or browser.html
  as part of Firefox.

  The tight coupling between the browser and its add-ons also creates
  shorter-term problems for Firefox development. It’s not uncommon for
  Firefox development to be delayed because of broken add-ons. In the most
  extreme cases, changes to the formatting of a method in Firefox can
  trigger problems caused by add-ons that modify our code via regular
  expressions. Add-ons can also cause Firefox to crash when they use APIs
  in unexpected ways.

  Consequently, we have decided to deprecate add-ons that depend on XUL,
  XPCOM, and XBL. We don’t have a specific timeline for deprecation, but
  most likely it will take place within 12 to 18 months from now. We are
  announcing the change now so that developers can prepare and offer
  feedback. Add-ons that are built using the new WebExtension API will
  continue to work. We will also continue supporting SDK add-ons as long
  as they don’t use require(‘chrome’) or some of the low-level APIs that
  provide access to XUL elements.

  A major challenge we face is that many Firefox add-ons cannot possibly
  be built using either WebExtensions or the SDK as they currently exist.
  Over the coming year, we will seek feedback from the development
  community, and will continue to develop and extend the WebExtension API
  to support as much of the functionality needed by the most popular
  Firefox extensions as possible.

Basically, I believe them when they said that they had sound technical
reasons for the change to the WebExtensions API.

Part of this was apparently that HTML5 w/JavaScript had become an
attractive alternative to the legacy XUL/XPCOM/XBL structure for browser
extensions, and Google proved this with Chromium/Chrome, which stole
most of Firefox's market share during the 2010s.  Mozilla's newer
WebExtensions API is deliberately almost the same as the
Chromium/Chrome/Opera extensions API, such that it is easy to make an
extension cross-browser compatible.  Even Apple is bending to the logic
of this move:  The upcoming 14.x releases of Apple's Safari browser will 
conform to the Chrome API as part of the OS X v. 11 ('Big Sur') update. 

Anyway... things change.  XUL is damned old for an API.  It goes all the
way back to Netscape Corporation, in 1997.  Twenty-three years ago.
And, well, HTML5 killed it by being a better idea.





More information about the conspire mailing list