|
|
Subscribe / Log in / New account

Rewriting ancient code

Rewriting ancient code

Posted Feb 9, 2023 20:28 UTC (Thu) by lostwizard (guest, #57225)
In reply to: Rewriting ancient code by abacus
Parent article: The future of Thunderbird

It's not so "ain't broke" as it might seem. There's a lot of stuff that works most of the time but occasionally goes weird or behaves in a less than ideal fashion. It's very likely that much of that is due to the ancient code (or "technical debt") that "ain't broke". Basically, there's almost certainly plenty of room for improvement on the technical side of things.


to post comments

Rewriting ancient code

Posted Feb 9, 2023 20:55 UTC (Thu) by ggiunta (guest, #30983) [Link] (8 responses)

I just watched the video on the TB blog's announcement, an I must confess I am more dubious than excited.

Technical debt? Hell yeah, any codebase decades-old is bound to have a huge amount of that. Bring on the refactoring!

UI debt? This is definitely more controversial....
Any decades-old application is bound to have reams of users who internalized all its quirks and will be completely upset and unwilling to accept even the slightest change. UI is the bike-shedding topic par excellence for open-source geeks. Just ask the Firefox devs...

For sure, the current UI is inconsistent as hell. The Calendar component is way less functional (and more ugly) than what Google manages to do in pure JS. The AddressBook looses out big time when compared to managing the data in a huge spreadsheet. The chat... I have no idea - I never used it ;-)
But email management? I think that was nailed years ago. And that's what every current user is most likely afraid of - seeing the cherished mail-management experience be dumbed down to the levels of, say, Gmail or android clients.

And, monthly releases: how can someone think it is a good idea, for a mature product? The only reason I can think of that being necessary is if A) there's a constant stream of security issues being found, or B) the devs expect to be trashing around a lot the UI and functionality. Is that what users really want?

Back on the topic of the video: for all the declarations that it contains, of love for the community and for the product, it reminds me strongly of similar situations I lived through with other OSS projects, when new UI experts and Product Managers were brought onboard who, for all their good will, were clearly less competent than the unruly/incoherent/unvisionary bunch who preceded them, but were too stubborn and proud to acknowledge it, and tanked the product hard.
I guess many people around here will have got similar "gnome devs" vibes...

Rewriting ancient code

Posted Feb 9, 2023 21:37 UTC (Thu) by rgmoore (✭ supporter ✭, #75) [Link] (1 responses)

And, monthly releases: how can someone think it is a good idea, for a mature product?

If nothing else, Thunderbird includes Gecko, which is constantly being updated. They would probably need to release on a regular schedule just to make sure users are getting an up to date version of that, even if they didn't have their own fairly ambitious plans for changes to the rest of the program.

Rewriting ancient code

Posted Feb 23, 2023 13:14 UTC (Thu) by mrugiero (guest, #153040) [Link]

As a counter point, the concerns of a mail client are often of more reduced scope than those of a browser. The security ones are the same (do HTML emails allow JS? I don't know, but if they do you're running potentially untrusted code), so sandboxing does justify the same degree of effort. However, you don't need to be so strict, for example, with performance. Honest emails tend to be rather lightweight compared to full fledged websites. So, maintaining Gecko (or even using a simpler engine, but that only applies to rewrites and the like) may take less effort because you're not making all that parallelization work and what not that Firefox desperately needs. You just need to fix bugs that appear and probably keep CSS up to date or stuff like that (which is obviously non-trivial anyway).

Rewriting ancient code

Posted Feb 23, 2023 13:30 UTC (Thu) by mrugiero (guest, #153040) [Link] (5 responses)

> Technical debt? Hell yeah, any codebase decades-old is bound to have a huge amount of that. Bring on the refactoring!
>
> UI debt? This is definitely more controversial....
> Any decades-old application is bound to have reams of users who internalized all its quirks and will be completely upset and unwilling to accept even the slightest change. UI is the bike-shedding topic par excellence for open-source geeks. Just ask the Firefox devs...

Quite the contrary, open source geeks focus too much on tech debt and too little on making sensible UI/UX choices. In fact, your own comparison with GNOME is evidence of this: GNOME is one of the most corporate (and thus client focused, because that's what makes money) led DEs we have. It's often called a Red Hat project, even. Compare that to everything community led and see how often those change. The only real example I can think of is when KDE switched to Plasma. Otherwise, everything looks and feel more or less the same than it felt 15 years ago. Even with Wayland, most compositors are more or less clones of some existing X11 window manager rather than something completely new. Open source geeks surely like their UIs to stay the same over time.
Regarding users who internalized the quirks, maybe some projects are interested in actually attracting _new_ users that have higher standards than adapting themselves to software. Software is meant to serve the user, not the other way around. Only geeks and people with very specific needs (e.g. privacy conscious not trusting the proprietary alternatives with better UX) are interested in sacrificing usability to serve the whims of a decrepit email client.
Firefox didn't lose the browser wars because it changed UI, it lost way before that. It lost the browser wars because of several other factors, one of them being too static to catch up with the competition. The change was probably good except for power users, but it came too late.

> For sure, the current UI is inconsistent as hell. The Calendar component is way less functional (and more ugly) than what Google manages to do in pure JS. The AddressBook looses out big time when compared to managing the data in a huge spreadsheet. The chat... I have no idea - I never used it ;-)
> But email management? I think that was nailed years ago. And that's what every current user is most likely afraid of - seeing the cherished mail-management experience be dumbed down to the levels of, say, Gmail or android clients.

You say this as if dumbing down is really that bad. Those clients are, apparently, _very_ _practical_. Thunderbird was always meant to be for the general user. If it allows for configuration, extensions, or whatever mods for power users to suit their needs better, then great. If it doesn't, then find something aimed for power users. But if you aim for general public, your defaults should be what a regular user would expect. And most users don't cherish their mail management experience, they mostly see it as a tool that needs to get out of the way as soon as its work is done.

> And, monthly releases: how can someone think it is a good idea, for a mature product? The only reason I can think of that being necessary is if A) there's a constant stream of security issues being found, or B) the devs expect to be trashing around a lot the UI and functionality. Is that what users really want?

People don't like waiting 6 months for a trivial but annoying bug to be fixed.

> Back on the topic of the video: for all the declarations that it contains, of love for the community and for the product, it reminds me strongly of similar situations I lived through with other OSS projects, when new UI experts and Product Managers were brought onboard who, for all their good will, were clearly less competent than the unruly/incoherent/unvisionary bunch who preceded them, but were too stubborn and proud to acknowledge it, and tanked the product hard.
> I guess many people around here will have got similar "gnome devs" vibes...

Unvisionary is probably good, visionary is risky and it could end well or it could end miserably. Visionary can also be reverted if failed, tho, while unvisionary will always remain static.
The other qualities tend to do poor UX. I dislike PMs just as much as the next programmer, but UI experts exist for a reason. Programmers tend to write code for other programmers in the best case, and for the code itself in the worst case. That doesn't lead to something most people will want to use. Just look at most TUI MUAs and how many users (even among geeks) they have compared to Thunderbird or webmails or Outlook. Sane defaults and a little bit of usability could make it at least an order of magnitude more popular than they are today, but leets gonna leet.

Rewriting ancient code

Posted Feb 23, 2023 15:54 UTC (Thu) by pizza (subscriber, #46) [Link] (4 responses)

> You say this as if dumbing down is really that bad. Those clients are, apparently, _very_ _practical_. Thunderbird was always meant to be for the general user. If it allows for configuration, extensions, or whatever mods for power users to suit their needs better, then great. If it doesn't, then find something aimed for power users. But if you aim for general public, your defaults should be what a regular user would expect.

The "general user" will just use gmail (in-browser or phone app), outlook (desktop, in-browser, or phone app), and so forth.

The only ones left using something like Thunderbird are so-called "power users" and folks that started using it a decade or two ago and don't want _anything_ to change. And the needs of those two groups are nearly diametrically opposed.

Rewriting ancient code

Posted Feb 23, 2023 16:38 UTC (Thu) by mrugiero (guest, #153040) [Link] (3 responses)

> The "general user" will just use gmail (in-browser or phone app), outlook (desktop, in-browser, or phone app), and so forth.
>
> The only ones left using something like Thunderbird are so-called "power users" and folks that started using it a decade or two ago and don't want _anything_ to change. And the needs of those two groups are nearly diametrically opposed.

Which may very well be a case of cause and consequence :^)
If Thunderbird keeps being unsuitable for common folk, of course common folk won't use it.

Rewriting ancient code

Posted Feb 23, 2023 16:58 UTC (Thu) by Wol (subscriber, #4433) [Link] (1 responses)

The problem there, is that if the common folk have never experienced anything other than webmail, they'll be perfectly happy. My first (combined news and) mail client was Turnpike, and half the features that disappeared when it was scrapped, have never appeared anywhere else that I know of.

Things like regular expression mail header parsing and filtering. I'm sure that's probably available in things like mutt and milter and esoteric :-) mail processing tools, but Turnpike was a simple, easy-to-use client with all this power lurking just below the surface. And it drew you in - you started using the simple features and thought "hey that looks nifty", and next you knew you were digging into this cool-looking power feature. Bit like WordPerfect really.

Nowadays either these features don't exist, or they're so undiscoverable nobody realises they're there until they are broken for lack of use ... :-(

Cheers,
Wol

Rewriting ancient code

Posted Feb 24, 2023 9:22 UTC (Fri) by smurf (subscriber, #17840) [Link]

> The problem there, is that if the common folk have never experienced anything other than webmail, they'll be perfectly happy

until they need to switch webmail providers – and realize that half their accounts won't work anymore and can't be switched over because the confirmation email is sent to the old address.

In other words, returning control of their email back to users is a matter of education and awareness, not of whether Thunderbird is built on top of Gecko or Webkit.

Rewriting ancient code

Posted Feb 23, 2023 18:27 UTC (Thu) by pizza (subscriber, #46) [Link]

> If Thunderbird keeps being unsuitable for common folk, of course common folk won't use it.

"common folk" won't ever use Thunderbird, because it represents a completely different paradigm to everything they've ever experienced, and there's no way to meaningfully bridge that gap without defeating the entire purpose of using it to begin with.

In other words, to appeal to the "common folk" Thunderbird would have to become yet another hosted email service, accessible via a web site (possibly with a "desktop app" aka electron wrapper for the web site) or mobile app that can only talk to the Thunderbird servers. Oh, and it would have to be completely free, because who pays for email anyway?

You might as well be saying "Bananas should make themselves to be more like oranges, so that folks who like oranges will
want to eat bananas."

Rewriting ancient code

Posted Feb 9, 2023 22:01 UTC (Thu) by Vipketsh (guest, #134480) [Link] (18 responses)

On the flip side my experience tells me that any code which works, even with a lot of bugs, has a lot more effort behind it than anyone can imagine. The result is that a rewrite which seemed to be so easy at first ends up hardly functional after more than a year of work. Sure, there are times when things need to be thrown out for the better, but something large and complex like a UI is bound to take years and end up with a whole bunch of bugs and missing features until it is even initially useful. A few more years until it can be used without going crazy.

A few wonderful examples to learn from: Gnome 2->3, KDE 3->4, X->Wayland (about *10 years* to start being usable).

Rewriting ancient code

Posted Feb 9, 2023 22:26 UTC (Thu) by cyperpunks (subscriber, #39406) [Link]

> The result is that a rewrite which seemed to be so easy at first ends up hardly functional after more than a year of work

Indeed, and when the product finally works as it should after a decade of work, the entire thingie is seen as technical debt :-)

Rewriting ancient code

Posted Feb 10, 2023 12:45 UTC (Fri) by rschroev (subscriber, #4164) [Link]

And Netscape 4 -> Netscape 6, which Joel Spolsky used as an example in his take on why you should not rewrite from scratch (https://www.joelonsoftware.com/2000/04/06/things-you-shou...).

Rewriting ancient code

Posted Feb 13, 2023 13:08 UTC (Mon) by rsidd (subscriber, #2582) [Link] (12 responses)

Wayland isn't a rewrite of X, any more than Android SurfaceFlinger or MacOS Quartz is a rewrite of X. It is a completely different way of doing things.

Rewriting ancient code

Posted Feb 13, 2023 13:45 UTC (Mon) by dskoll (subscriber, #1630) [Link] (11 responses)

It's true that Wayland is not a rewrite of X, but it is intended to replace X. As such, it needs to do a bunch of things that X currently does (though it does them in quite a different way.)

Rewriting ancient code

Posted Feb 13, 2023 14:49 UTC (Mon) by Wol (subscriber, #4433) [Link] (10 responses)

Wayland is, in spirit at least, X13. It can't claim to be X12, something else has claimed that.

Cheers,
Wol

Rewriting ancient code

Posted Feb 23, 2023 13:34 UTC (Thu) by mrugiero (guest, #153040) [Link] (9 responses)

I always love your historical knowledge. With something else claiming X12 you mean the one next version of X that never materialized, or was there another project that took the name?

Rewriting ancient code

Posted Feb 23, 2023 16:03 UTC (Thu) by Wol (subscriber, #4433) [Link] (8 responses)

Yes I meant the version that never materialised.

Can't remember where I got the information from, but I was discussing X, Wayland, and network transparency iirc, probably here on LWN! Probably from someone in Wayland.

Cheers,
Wol

Rewriting ancient code

Posted Feb 27, 2023 19:57 UTC (Mon) by nix (subscriber, #2304) [Link] (7 responses)

The only references I can find to it on LWN are from you, so it's not there.

(I am not aware of an X12, FWIW. But I'm just a random nobody.)

Rewriting ancient code

Posted Feb 28, 2023 1:48 UTC (Tue) by mrugiero (guest, #153040) [Link] (6 responses)

I think all of us mean this: https://www.x.org/wiki/Development/X12/

It never got to a proper planning phase, but was just some discussion as to what a successor for X11 would require. Eventually the people involved (I think) ended up creating Wayland instead. From what I gather, the name was just to mean "what's next from X11" rather than actually an official successor.

Rewriting ancient code

Posted Feb 28, 2023 11:10 UTC (Tue) by paulj (subscriber, #341) [Link] (5 responses)

So Wayland essentially is X12, so far as implementation goes.

Rewriting ancient code

Posted Feb 28, 2023 12:12 UTC (Tue) by jem (subscriber, #24231) [Link] (3 responses)

>So Wayland essentially is X12, so far as implementation goes.

I really don't recognize Wayland in that text. The first part is a list of general requirements, nothing specific to X or what Wayland was to become. The latter part is just a list of X11 limitations, like "XIDs are too small", "[X11 protocol] extension space is too small", "Strings for [X11] Atom names", and so on, none of which have any meaning for Wayland.

Rewriting ancient code

Posted Feb 28, 2023 14:27 UTC (Tue) by Wol (subscriber, #4433) [Link]

I think that's why Wayland isn't X11.

X11 has fundamental design flaws in an insecure world, and having "designed" X12, they presumably decided they couldn't evolve X, so they took all that into account and started again.

Cheers,
Wol

Rewriting ancient code

Posted Feb 28, 2023 14:30 UTC (Tue) by paulj (subscriber, #341) [Link] (1 responses)

Yeah, that doc seems very X11 centric. Hence my "in implementation" qualification.

Rewriting ancient code

Posted Feb 28, 2023 14:31 UTC (Tue) by paulj (subscriber, #341) [Link]

I.e., the next protocol after X11 is Wayland, effectively X12.

That there exists a very early planning document in that process, a very incomplete wiki doc, that viewed the future in an X11 context, doesn't mean Wayland is not that next protocol after X11.

Rewriting ancient code

Posted Mar 1, 2023 20:30 UTC (Wed) by mrugiero (guest, #153040) [Link]

That's a bit what I meant, although the phrasing was a little poor on my side. Rather than "ended up creating Wayland" I should have said "it was different enough that they chose to call it Wayland". In part I kept ambiguous due to laziness, I didn't want to check whether the exact same people was involved.

Rewriting ancient code

Posted Feb 19, 2023 20:24 UTC (Sun) by ssmith32 (subscriber, #72404) [Link] (2 responses)

Just because something took ten years to complete doesn't mean it was the wrong decision.

Rewriting ancient code

Posted Feb 19, 2023 20:44 UTC (Sun) by smurf (subscriber, #17840) [Link]

Nobody said it was.

However, the adage "to convert an estimate to something realistic, multiply by two and go up one order of magnitude" certainly holds true.

Rewriting ancient code

Posted Feb 23, 2023 13:36 UTC (Thu) by mrugiero (guest, #153040) [Link]

It does if it means the work is irrelevant by the time it's ready tho. I think that's one of the major risks of rewrites. That and never being ready and just taking resources from tasks that actually result in stuff a user can interact with.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds