Se você observar o conteúdo dos pacotes de código-fonte do OpenJDK, verá que a maior parte do código-fonte deles é enviada dentro de tarballs dentro dos pacotes. Se você executar o SLOCCount de David A. Wheeler somente na fonte do pacote extraído, ele não contará o código nesses tarballs, então você terá uma contagem muito parcial.
Para comparar corretamente os tamanhos do código-fonte, você precisará extrair os tarballs antes de executar sloccount
. Isso faz com que as seguintes estatísticas (nas versões analisadas):
openjdk-6 openjdk-7 openjdk-8
java: 2860304 (68.33%) 3232714 (72.32%) 3601973 (67.00%)
cpp: 648574 (15.49%) 671628 (15.03%) 892040 (16.59%)
ansic: 584813 (13.97%) 466742 (10.44%) 374378 (6.96%)
sh: 49935 (1.19%) 45608 (1.02%) 32891 (0.61%)
xml: 23937 (0.57%) 25927 (0.58%) 456037 (8.48%)
objc: 13062 (0.29%) 13557 (0.25%)
asm: 14125 (0.34%) 11555 (0.26%) 3508 (0.07%)
perl: 2258 (0.05%) 1220 (0.03%) 198 (0.00%)
pascal: 1089 (0.03%)
awk: 631 (0.02%) 687 (0.02%) 367 (0.01%)
python: 310 (0.01%) 310 (0.01%) 800 (0.01%)
haskell: 195 (0.00%) 195 (0.00%)
sed: 172 (0.00%)
cs: 72 (0.00%) 72 (0.00%) 72 (0.00%)
ruby: 44 (0.00%) 44 (0.00%)
jsp: 24 (0.00%) 24 (0.00%) 24 (0.00%)
csh: 3 (0.00%) 3 (0.00%) 3 (0.00%)
mostrando um aumento no tamanho (note, no entanto, que o escopo dos pacotes também mudou com o tempo).