4 ms·
I use Thunderbird because it is an application. If it became a Javascript app I and many others would surely switch to some other application.
by superkuh 8y ago
I use Thunderbird because it is an application. If it became a Javascript app I and many others would surely switch to some other application.
- icebraining 8y agoIt is a JavaScript app :) e.g. https://hg.mozilla.org/comm-central/file/tip/mail/base/content https://hg.mozilla.org/comm-central/file/tip/mail/base/conte...
- jcranmer 8y agoMost of the actual guts of Thunderbird are in mailnews/, particularly mailnews/base and mailnews/db for the this-is-what-eats-the-CPU things. That code is almost entirely in C++, although there is an effort to try to rewrite stuff in JS (which has gone slowly because, hey, that's 100KLOC of C++ you have to move at once).
- zmix 8y agoThunderbird is an XML+CSS+Javascript app. Just like Electron (well, Electron is not XML).
- superkuh 8y agoBy that definition would you call Firefox before version ~40 a javascript app? It obviously isn't despite using XUL and the elements implicit in that. The same is true of Thunderbird.
- acct1771 8y agoCurious what you'd have called it.
- int_19h 8y agoThe underlying rendering engine is in C++, of course. As is the JS implementation. Which is to say, exactly like Electron. The only relevant difference that I can see between XUL and Electron is that the former had its own non-HTML-based markup language for UI.
- zmix 8y agoYes, I would and would not ;-) The technology in use is called XPFE. For a full (graphical) overview, see http://mb.eschew.org/1 http://mb.eschew.org/1 It is different sorts of XML (XBL, XUL, RDF, DTD) controlled via Javascript and styled by CSS running on top of a C++ runtime. The components, the runtime exposes, can be accessed directly from within Javascript. Most of the application specific stuff is written in the XML+JS+CSS domain. There may be the one or other app-specific support library, but in the end, they all run on top of the same xulrunner binary.
- sciurus 8y agoLooking at the languages used in Thunderbird source (https://wiki.mozilla.org/Tree_Rules/comm-central#Thunderbird https://wiki.mozilla.org/Tree_Rules/comm-central#Thunderbird): $ cloc build/ ldap/ editor/ mailnews/ mail/ 3938 text files. 3848 unique files. 949 files ignored. github.com/AlDanial/cloc v 1.80 T=6.01 s (497.6 files/s, 127309.9 lines/s) --------------------------------------------------------------------------------------- Language files blank comment code --------------------------------------------------------------------------------------- C++ 360 36718 26562 207587 JavaScript 1098 39149 63692 195828 CSS 278 7371 2664 30455 C 83 5339 8278 29463 C/C++ Header 413 7091 8979 24034 IDL 238 3205 0 18852 XML 40 1365 690 16902 JSON 24 7 0 5367 DTD 180 772 1360 5344 Python 24 893 2422 3740 NAnt script 118 489 0 2512 Objective C++ 5 461 163 2231 HTML 62 178 22 1666 XHTML 14 186 98 1096 INI 28 46 12 687 Windows Module Definition 7 24 156 354 LESS 1 33 52 183 make 4 36 22 133 TOML 1 17 7 110 Freemarker Template 6 24 0 98 WiX source 1 11 25 71 Ant 1 6 5 49 Markdown 1 10 0 49 Bourne Shell 3 8 11 23 Windows Resource File 2 6 11 15 --------------------------------------------------------------------------------------- SUM: 2992 103445 115231 546849 ---------------------------------------------------------------------------------------