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