Rewriting ancient code
Rewriting ancient code
Posted Feb 20, 2023 2:34 UTC (Mon) by ras (subscriber, #33059)In reply to: Rewriting ancient code by abacus
Parent article: The future of Thunderbird
But it was broken, in a way. It's true code doesn't wear out in the convention sense. But software has an analogous process: bit rot, which I guess is where it stops working because rest of the world has changed underneath it. In Thunderbird's case, it is based on the same engine as Firefox, and that engine has undergone some drastic changes over the last few years. The justifications I've read from Mozilla on why they were forced to make the changes to gecko looked pretty grounded to me - again they revolved around the world changing so much the old gecko was not a good fit capabilities and security guarantees a modern browser is expected to provide.
That left the Thunderbird team with two choices, neither pleasant: take over maintenance of the now abandoned (and huge) version of the engine they are currently using, or move to what Firefox uses now.
They chose the latter. In the short term it has lead to a lot of the same type of breakage we've seen with Firefox extensions. But it looks like that is over now as thankfully the pace of breakage has slowed down, which means they are running on the new engine. But I expect they held the core together during the thick of that transition by adding generous amounts of glue that made the new API look like the old one.
So now we are in the "lets revisit everything in the light of the new engine" phase, where they rewrite the top layer so it doesn't need the glue. In the mean time UI's have evolved from the 20 year old Netscape email client interface. Personally I think it's mostly been in the positive direction. I expect they will take the opportunity to incorporate some of those ideas into Thunderbird's UI. Indeed, they already have started down that track in recent versions.