<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>