In a couple of weeks, a team of Thunderbird developers will be meeting
up with some folks from The Document Foundation about possibly aligning
Thunderbird with LibreOffice. As part of that meetup, they'll want to
know our platform plans. That in turn depends heavily on Firefox
platform plans. Rather than simply giving my guess as a relative
outsider who is no longer invited to eat at the big kids table, perhaps
I can ask here and get some ideas? Please do not turn this into a
discussion of Thunderbird, I want to understand Firefox direction.

Some background from my probably ignorant perspective. A few years back,
it seemed like the push was to rewrite major portions of the core apps
in JavaScript. Certainly in the comm-central world, it was considered a
faux pas to write major new code in C++ instead of JS. I remember having
discussions back then on the weaknesses of JS over C++, and getting
major push back by paid Thunderbird developers (who are now mostly paid
Firefox developers). So the philosophy was "JS is a great language for a
complex app like TB or FF".

Mozilla with their "the browser is the OS" world view seems to continue
to promote JS as the future of app development to the world. Yet within
the Mozilla/Firefox development world, I see a completely different
direction. The recent discussions of [must_use] in XPIDL show how strong
the support is within the Mozilla development community for strongly
typed languages. After all, at the 10,000 foot level that is what we
were discussing, how wonderful it is to have strongly-typed languages
where the compiler catches errors.

When I've talked about platform with my friends at Microsoft (I live in
Redmond) they have cringed at JS as a development language because of
the weak typing. More recently I have been surprised at the enthusiastic
adoption of NodeJS by Microsoft - yet it is done using TypeScript, a
typed version of JS. Meanwhile, within the Mozilla world Rust is the new
cool kid. With my limited understanding of Rust, one way to look at it
is a language where strong typing is extended to the management of threads.

Back to Firefox big-picture direction. Rather than moving more of FF as
an app to JS, it seems to me that quite the opposite approach has taken
hold. Again as a big picture, Servo is the test ground for Rust-based
features, and those features will be slowly moved to Firefox (as the
shipping app). Eventually I suppose the goal would be to slowly morph
Firefox into Servo as a fully Rust-based application. Is that a
reasonably accurate picture?

(Although I do not want this post to be about Thunderbird, the
implications for Thunderbird are strong. I believe it is unrealistic to
expect that Thunderbird will migrate away from dependence on the Mozilla
platform for the foreseeable future. We have assumed that that meant we
should migrate to JS, hence jcranmer's jsmime, my jsaccount, and my
massive conversion of ExQuilla from C++ to JS as an extension. Yet the
XPIDL [must-use] promoters are basically correct that strong typing is a
great thing. JS is a terrible language for a large-scale application, I
live with this daily as errors only show at runtime with JS versus
compile time with C++. Perhaps Thunderbird should be following Firefox
into Rust rather than into being a web app.)

:rkent

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to