<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
On 12/12/2016 4:40 AM, Disaster Master wrote:<br>
<blockquote
cite="mid:6a13b83c-5ff9-f498-aa27-3154b1528c7f@gmail.com"
type="cite">
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
<div class="moz-cite-prefix">On 12/12/2016 3:28 AM, R Kent James <a
moz-do-not-send="true" class="moz-txt-link-rfc2396E"
href="mailto:kent@caspia.com"><kent@caspia.com></a>
wrote:<br>
</div>
<blockquote
cite="mid:46a0edef-0cee-ff2e-a16f-f5698c1830be@caspia.com"
type="cite">
<pre wrap="">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.</pre>
</blockquote>
<br>
Hi Kent,<br>
<br>
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?<br>
</blockquote>
<br>
Yes, but with a few caveats.<br>
<br>
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.<br>
<br>
So I don't think it is actually proven yet that JS technologies are
a viable replacement for C++ in our desktop apps.<br>
<br>
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.<br>
<br>
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!)<br>
<br>
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.<br>
<br>
:rkent<br>
<br>
<br>
<br>
<blockquote
cite="mid:6a13b83c-5ff9-f498-aa27-3154b1528c7f@gmail.com"
type="cite"> <br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
tb-planning mailing list
<a class="moz-txt-link-abbreviated" href="mailto:tb-planning@mozilla.org">tb-planning@mozilla.org</a>
<a class="moz-txt-link-freetext" href="https://mail.mozilla.org/listinfo/tb-planning">https://mail.mozilla.org/listinfo/tb-planning</a>
</pre>
</blockquote>
<br>
</body>
</html>