size of the Thunderbird codebase

Joshua Cranmer 🐧 pidgeot18 at gmail.com
Mon Sep 14 14:00:43 UTC 2015


On 9/14/2015 5:55 AM, Aceman wrote:
> Hi.
> I found this comment on LWN interesting: http://lwn.net/Articles/656572/
>
> It compares size of codebase (in source lines of code) of all packages in the Debian database.

It's worth noting (from a later comment) that source packages whose code 
is mostly in a tarball are basically woefully undercounted. This looks 
to include heavy-hitters like OpenJDK or gcc (although llvm-toolchain 
only clocked in at ~3MLOC, so gcc might not broach Firefox in size).
>
> >From the comment:
>
> The top-ten (not counting different versions of the same packages) is like this (format is sloc|package|version):
>
> 15331031|chromium-browser|43.0.2357.65-1~deb8u1
> 13726566|linux|4.2~rc8-1~exp1
> 9256058|mono|4.0.2.5+dfsg-2
> 7273446|icedove|40.0~b1-1
> 6900913|iceweasel|40.0.3-3
> 5923212|netbeans|8.0.2+dfsg1-4
> 5768171|aspectc++|1:1.2+svn20150823-1
> 5551762|aces3|3.0.8-4
> 5483128|libreoffice|1:3.5.4+dfsg2-0+deb7u2
> 5482310|nvidia-cuda-toolkit|6.0.37-5
>
> Notice "icedove", the Debian branded Thunderbird. So comparing the total size of the package we need to use to build TB, we are quite big. Of course if we only count difference to iceweasel (Firefox), it is "just" 370 000 SLOC (they probably count Seamonkey specific parts too).
>
> I find it surprising e.g. Libreoffice codebase is smaller than Firefox.

Firefox has long been known to be a shortlist candidate for "largest 
Debian project" (having a massive test suite, which is going to get 
included in these line counts, does help to inflate those numbers 
considerably). Thunderbird is larger simply because it includes all of 
Firefox. Keep in mind that Firefox contains a fully-functional JIT and 
interpreter for JavaScript, a (admittedly tiny) C++ standard library (so 
it's running in complexity something on the order of python or ruby in 
terms of SLOC from that alone), a non-trivial full-featured document 
language (i.e., HTML/CSS), and a generic standard library for 
manipulating that (which gives it the size of LibreOffice Writer right 
there), as well as all the other web API stuff.

I suspect chromium is bloated because it likely includes a lot of 
support infrastructure in the package (e.g., llvm, gcc), but web 
browsers these days are as complex as language runtimes or OS kernels. 
Which, when you think about it, they totally are.

-- 
Joshua Cranmer
Thunderbird and DXR developer
Source code archæologist




More information about the tb-planning mailing list