What happened to hiring an architect?

R Kent James kent at caspia.com
Mon Dec 12 21:29:02 UTC 2016

On 12/12/2016 4:40 AM, Disaster Master wrote:
> On 12/12/2016 3:28 AM, R Kent James <kent at caspia.com> wrote:
>> I do see that Thunderbird though has three fundamental options to
>> consider. 1) Continue our traditional path of being a binary rebuild of
>> Firefox, which means probably moving toward Rust and custom
>> WebExtensions or WebIDL features, 2) Move Thunderbird clearly into the
>> an app category using web technologies, or 3) pick an entirely different
>> binary platform to run on, like QT or .NET core. Of these three choices,
>> I think that 2) is the path we are mostly looking at.
> Hi Kent,
> So, to be clear, are you saying that you agree with Andrew that using
> the current Gaia/Email app would be a good starting point, since
> considerable work is already done?

Yes, but with a few caveats.

First, we have done several attempts in the past to replace C++ code
with JS, and most have ended in failure for performance reasons. Most
recently, we added the binary version of libical to core since the js
version could not be made performant, and we needed a viable Lightning
for TB 52. The main success has been jsmime, but that also came with
severe performance regressions that we managed to work around. If you
sniff around experiences with trying to use web technologies in other
contexts, this issue of performance keeps coming up again and again as
an issue. I've also managed to get occasional comments from FF folks
that their attempts over the years to replace core FF pieces with JS
have been largely replaced with efforts to move to Rust, again for
performance reasons.

So I don't think it is actually proven yet that JS technologies are a
viable replacement for C++ in our desktop apps.

Another thing that scares me is that we really don't have a good idea
why our existing users choose Thunderbird. With the direction that FF is
moving, TB is going to have to change in some ways, and there is a
serious risk that we will change in ways that alienate our users if we
don't understand them that well.

But given that, I'm at the end of a year-long process personally to
transform ExQuilla from a binary extension to a JS extension, and soon
I'll be able to do some performance tests to see if performance
regression is an issue. Also, as part of that effort, we added the
JsAccount technologies to Thunderbird, so it is now theoretically
possible to replace the core mailnews account type backends with JS
equivalents. Not easy though, and the only extant example will be my
proprietary ExQuilla code. (I still hope to provide a sample JsAccount
example that is open source, as well as migrate some of the ExQuilla
workarounds to the core JsAccount methods. But round tuits are really
hard to find!)

A very interesting experiment would be to use JsAccount to try to glue
one of the Gaia/Email app core protocols to Thunderbird, say ActiveSync
or Imap. That would be a great exercise for both JsAccount, and adapting
Gaia incrementally to Thunderbird.


> _______________________________________________
> tb-planning mailing list
> tb-planning at mozilla.org
> https://mail.mozilla.org/listinfo/tb-planning

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/tb-planning/attachments/20161212/68beaa1f/attachment.html>

More information about the tb-planning mailing list