研究目的で、特定パッケージのSLOC(ソースコード行)数を計算しています。私は何年もの間Debianスナップショットからパッケージソースをダウンロードしています。ほとんどのソフトウェアパッケージでは、SLOCの数値は年々増加します(例:Wireshark)。 2010年のSLOCは2011年より少なくなりましたが、2018年まで増加しました。
ただし、OpenJDK 6、7、8の場合は状況が異なります。openjdk-7
SLOC数がopenjdk-6
。openjdk-8
SLOC数がopenjdk-7
。なぜですか?
Debianスナップショットに問題がありますか?たぶん完全なソースコードが利用できないかもしれません。それともこれは一般的なパッケージですか?
答え1
OpenJDKソースパッケージの内容を見ると、ほとんどのソースコードがパッケージ内のtarballに含まれていることがわかります。走ればDavid A. WheelerのSLOCCount抽出されたパッケージソースのみがこれらのタールボールのコードを計算しないため、非常に部分的に計算されます。
ソースコードサイズを正しく比較するにはsloccount
。これにより、次の統計が提供されます(私が分析したバージョンで)。
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%)
ディスプレイサイズが大きくなります(ただし、時間の経過とともにパッケージサイズも変わることに注意してください)。