Garbage In, Garbage Out
Hvor meget programkildetekst er der egentlig involveret i en FireFox browser ?
Jeg tyer med vilje til en meget ulden formulering med ordet "involveret" for alene grænsedragningen af hvad der skal tælles er der skrevet hele bøger om[1].
Men vi er nødt til at starte et sted, så jeg tog en helt frisk FreeBSD-Current installation og lavede en "make patch" i alle de 288 ports som "make missing" siger www/firefox manglede.
Nogen tid senere er det en smal sag at se hvad der så er dukket op på maskinen: 1047884 filer.
Derefter tog jeg de filnavn-suffix jeg umiddelbart genkendte som kildetekster og optalte hvor mange linier der var af den type filer:
.suf files lines
------------------------
c 130235 74179467
h 107991 29882215
js 76692 8403700
cpp 54493 20242024
rs 42929 9240275
ri 29173 130275
py 17744 4108043
s 16447 4699134
xht 14569 571662
rb 9939 1527856
sh 6763 1960152
cc 6247 2832713
m4 5610 2188662
pl 4047 2305113
S 3981 1345954
java 1961 484445
tcl 1509 538610
hpp 1163 191427
cxx 1007 372144
hh 286 132170
sed 126 2678
awk 107 24428
bash 51 2613
hxx 25 3381
------------------------
Total 533095 165369141
========================
(De resterende 471860 filer er dokumentation, makefiles, test-cases osv. glem dem.)
Summen er naturligvis dybt problematisk på næsten alle tænkelige metoder, vi er næppe indenfor ±50% land her.
Til den ene side mangler hele det FreeBSD system som FireFox i mit tilfælde kører på (+ ca. 10%) og den X-server med "DRM" kode der laver det tunge grafiske arbejde (+ who knows?)
På den anden side vil man utvivlsomt hurtigt og sikkert kunne dømme en masse af filerne ude med gode og sunde argumenter.
Da de stabelafløb hangarskibet CVN-75, "Harry S. Truman" udbasunerede skibsværftets PR-afdeling at der var "over en million forskellige dele i skibet", det tal gravede jeg lidt i og i bund og grund holder det[2].
Men hangarskibe er seriebyggeri, CVN 75 var nominelt magen til de ni andre i "Nimitz-klassen", så selv inden for den træskolængde vi arbejder med her er FireFox formodentlig ti gange mere komplex end alle USAs hangarskibe tilsammen.
Uanset hvilken stor ingeniørbedrift jeg sammenligner med, blegner den ved sammenligning med FireFox.
CERN's LHC, ITER, Rumfærgen, Apollo, Den Trans-iranske Jernbane, Hoover Dam, Manhattan-Projektet, eller AT&T's (planlagte) WT4 mikrobølge rør tværs over USA - ingen af dem er indenfor en størrelsesorden af FireFox i komplexitet.
»Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retrancher.«
(Antoine de Saint Exupéry)
/phk
PS: Hvis FireFox koden er af typisk kvalitet, er der er fejl for ca. hver 1000 linier kode[3].
[1] Men bare rolig: De er allesammen skrevet før 1990, så der er ingen fare for at nogen læser dem.
[2] AIrbus A380 er blevet tilsvarende udbasuneret som bestående af "over 4 mio individuelle dele", men rigtig mange af dem er helt identiske skruer, plastic-clips osv.
[3] Men jeg er i godt humør i dag, så I behøver kun finde halvtrestusinde.

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.