<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    On 5/11/2017 11:50 PM, Henri Sivonen wrote:<br>
    <blockquote type="cite"
cite="mid:CAJQvAuf05x0r3MsDshLxsyikddAukOqxgWYc7THabVvJe8YMAg@mail.gmail.com">
      <pre wrap="">On the point of current Thunderbird being based on Mozilla technology
and <a class="moz-txt-link-freetext" href="https://blog.mozilla.org/thunderbird/2017/05/thunderbirds-future-home/" moz-do-not-send="true">https://blog.mozilla.org/thunderbird/2017/05/thunderbirds-future-home/</a>
saying the Mozilla Foundation has agreed to continue as Thunderbird's
"cultural home", it seems really weird for Thunderbird to be
transitioning to Electron.</pre>
    </blockquote>
    <p>With the legal home decision finally out in the open, I'm glad we
      can start to talk about this issue.</p>
    <p>I've followed <a moz-do-not-send="true"
        href="https://mykzilla.org/">Myk Melez</a>'s attempts at
      variants of Gecko that are not browsers, but as far as I can tell
      none have gotten any traction (Positron, qbrt, Headless Firefox).
      It's not clear to me that MoCo has interest in anything other than
      Firefox, and attempts to "go faster" and "focus" seem to encourage
      people to actively disengage from any effort that is not focused
      on a better Firefox. I don't mean that as a criticism, after all
      Firefox has its own difficult race to run, but we have to face
      reality.</p>
    <p>But reality can change. Several of the key features that underlie
      the success of the modern web were born in email technology
      (XMLHttpRequest in Outlook Web Access, and GMail as the model of
      the potential of AJAX to emulate a desktop app). In my dreams,
      Mozilla would embrace Thunderbird as their own, and work to ensure
      that Gecko technology would be effective on the entire stack of
      platforms expected of a modern application. In the process a
      vision of Gecko that extends to desktop, mobile, and web could
      emerge.<br>
    </p>
    <p>But just as Firefox has a difficult race to run, so does
      Thunderbird. Electron is available today, with lots of tutorials
      and support, and a rapidly growing ecosystem. In contrast, as Myk
      says, "qbrt is immature and unstable!". It would be great if
      Mozilla would embrace qbrt or a related project, and encourage
      Thunderbird to be the early demo of that. Hopefully now we will at
      least be invited to those discussions. But let's get back to
      today. My vision of a Thunderbird++ is an app that runs on all
      currently viable platforms. When you look at new apps that target
      a similar vision, what are they using? Increasingly I see Electron
      for the desktop, and React/React Native for the UI and Mobile
      support. (See Keybase for this week's example). Electron may have
      its issues, but forking or branching Electron to solve issues is
      still easier than trying to imagine bootstrapping a Gecko
      equivalent.</p>
    <p>For the Caspia Contacts project, we are explicitly exploring how
      a common code base would support multiple platforms. In the
      current sprint, we'll do a barebones HTML contacts form that runs
      as a website and as an Electron app. But the goal is not really to
      support Electron per se, but rather to explore how to structure
      the code to be platform agnostic. We would like to understand what
      advantages Electron gives us over, say, using modern browser
      technologies for offline support including Service Workers and
      IndexedDB.</p>
    <p>So from the Thunderbird perspective, I would say that there is no
      decision to use Electron as the base of Thunderbird++, and I would
      hope that a decision on that would be delayed until considerably
      more experience is gained with the alternatives. We would welcome
      more engagement with the Mozilla platform team on how to
      effectively use Gecko technologies instead.</p>
    <p>:rkent<br>
    </p>
  </body>
</html>