Future Planning: Thunderbird as a Web App

Kent James kent at caspia.com
Thu Sep 17 22:03:46 UTC 2015


As we are discussing our future, both in relation to radical changes 
expected in the Mozilla platform, and our need to express where we are 
going to potential partners and donors, we need to discuss and agree on 
some big-picture issues. One of those was end-to-end encryption that we 
discussed recently. I want to discuss here our future platform, and how 
it related to users and their needs.

tl;dr Thunderbird over the next 3 years needs to convert to being a web 
app that can run on any browser that supports ES6 Javascript and HTML5. 
(web app does not imply cloud-based, only that the underlying platform 
is js/html).

There are two independent but both equally critical reasons why we need 
to go this direction.

First, the Mozilla platform itself has no long-term commitment to being 
available as a general-purpose development environment to run 
non-browser software, other than as a web app. At the same time, they 
are doing amazing innovations to allow more and more functionality 
traditionally associated with native clients to run under the "Web as a 
Platform" meaning the HTML5/ES6 stack. Really in the long run we will 
either have to fork the Mozilla platform and maintain it ourselves as an 
email development environment, or go with the flow and convert. Let's 
convert.

Second, more and more users are using a variety of platforms, including 
not only our traditional desktop environments but also Android and iOS 
(and other mobile OSes hoping to join them). I'm writing this message 
using Thunderbird on a Microsoft Surface 3 Tablet, which can now run 
traditional Windows applications such as Thunderbird. But we can't 
expect most of our users to buy a tablet from a second-tier operating 
system, merely to be able to run Thunderbird (as I did). In the last 24 
hours, I have accessed my email using 4 different devices (Android phone 
and tablet, Windows desktop and tablet). Only 2 of those devices can run 
Thunderbird. We need to have a serious mobile story. Starting from the 
existing forward-thinking Mozilla web environment, we should be in an 
excellent position to convert our existing code to ES6-js/HTML5, and 
that is the best long-term way to support our users on the full range of 
platforms that they expect to use.

Last year, jcranmer introduced JsMime for some of the mime-related 
processing. This year, he is specing a Js database. I am working on 
JsAccount that will allow us to create new mailnews accounts and 
associated objects (server, folder, URL, protocol, etc.) using js and 
interoperate with our existing code. Although initially aimed at new 
account types, JsAccount will eventually make it straightforward to 
incrementally convert all of those core objects from C++ to Javascript. 
We need to plan to convert the entire backend in a similar nature to ES6 
javascript.

Looking to a rough long-term schedule, I see future versions of 
Thunderbird looking like this:

38 (Avocet), 45 (3/2016 Bunting), 52 (01/2017 Cormorant?): Traditional 
XUL/C++ app

59 (09/2017 Dunlin?) Last and traditional XUL/C++ release. By this date, 
a reasonable possibility is that the Mozilla platform will no longer be 
usable for non-browser XUL-based development. This version of 
Thunderbird, in that case, would need to ship on a fork of Mozilla from 
the point where XUL-based development becomes untenable. This will also 
be our last major XUL-based release, and we will not attempt to keep 
current with the new non-XUL Mozilla platform. It would also be useful 
to ship a stripped-down version of Thunderbird as a web app with this 
release.

07/2018 Egret? (no point in matching release numbers to Gecko anymore): 
Thunderbird ships a full-version web app.

I don't see what choice we reasonably have, given the announced changes 
in the Mozilla platform. We should view this as an opportunity to both 
get out from the current Mozilla regression-driven development, to being 
able to focus on our own issues. Hoping we can adapt to changes in the 
Mozilla platform, with no commitment from Mozilla that they will try to 
make that easy, is an enormous risk with little upside for us.

Comments?




More information about the tb-planning mailing list