Vor ~10 Jahren sagte man, dass es einen Fehler pro 1.000 Zeilen Quellcode gibt. Aber nehmen wir mal an, dass die Codequalität mittlerweile so weit gestiegen ist, dass ein Fehler nur noch alle 10.000 Zeilen Code vorkommt.
Ich habe eben das
Firefox-Repo geklont und lasse ein Tool die Anzahl der Quellcodezeilen zählen. Ich melde mich zurück, was raus gekommen ist.
Nachtrag:
Hier ist das Ergebnis.
Bash:
[krik@krix test]$ cloc firefox/
387153 text files.
360265 unique files.
41781 files ignored.
github.com/AlDanial/cloc v 2.08 T=126.53 s (2847.4 files/s, 459092.6 lines/s)
---------------------------------------------------------------------------------------
Language files blank comment code
---------------------------------------------------------------------------------------
JavaScript 96502 1506316 2236169 8290316
C++ 14584 981210 829095 5678475
HTML 118022 565314 133221 5336281
Text 5016 90962 0 4685331
Rust 13696 413785 816135 4194304
C/C++ Header 21050 732769 1224040 3571075
JSON 4259 974 0 2986322
C 4005 388768 638550 2816269
Python 9787 315664 348417 1261400
XML 8648 34829 368308 928578
INI 25786 381586 150 841260
Kotlin 5420 114114 95451 658227
YAML 3362 23251 15100 543758
Assembly 575 42032 37240 439965
TypeScript 1839 45810 50274 387291
Markdown 2459 77524 918 215491
XHTML 3363 22672 7790 191920
Pascal 32 1568 34250 178344
TOML 2658 39441 10157 162102
NAnt script 2600 50769 0 162039
SVG 5261 8989 20108 159424
CSS 1444 25009 12502 153712
reStructuredText 2232 93725 144353 118571
IDL 1226 16259 0 112835
Java 504 16424 30856 98282
diff 671 8283 41992 88288
Bourne Shell 714 12961 14767 78593
Freemarker Template 389 13893 0 78195
Objective-C++ 355 14574 10864 71587
JSX 336 5865 2411 52886
GLSL 1478 10580 10727 34888
Windows Module Definition 55 310 1601 26511
CSV 8 0 0 25042
CMake 143 2897 3668 21810
make 334 5166 6961 19285
SCSS 80 3044 832 14302
BitBake 60 912 395 12541
Perl 60 2710 2841 12419
PHP 51 844 1277 11816
DTD 22 2738 6668 11298
Starlark 44 871 700 11272
Objective-C 89 2071 1223 9587
Gradle 190 2131 1439 8575
Properties 130 1990 5634 5828
m4 16 602 204 5283
Jinja Template 42 522 107 4500
C# 20 470 231 3844
Meson 14 480 342 3427
Protocol Buffers 50 1292 3824 3213
Cython 13 419 214 3110
Swift 61 577 526 2966
.NET IL 4 68 2 2419
Windows Resource File 71 586 608 2413
yacc 2 383 348 1919
DOS Batch 36 340 207 1869
MSBuild script 7 0 0 1731
Dockerfile 76 399 253 1696
Gencat NLS 7 133 0 1469
SWIG 3 281 77 1362
Vuejs Component 44 78 22 1353
Bourne Again Shell 26 239 373 1338
SQL 4 49 87 1263
Ruby 15 275 120 1003
Visual Studio Solution 13 12 13 995
LLVM IR 1 74 0 719
lex 4 149 207 686
WGSL 13 141 166 614
MATLAB 9 130 85 586
XSLT 28 82 17 560
Korn Shell 5 83 165 526
Elm 2 114 29 399
HLSL 3 121 123 391
Go 2 72 103 326
Lisp 2 42 38 258
Handlebars 8 5 0 247
Bazel 3 31 128 237
PowerShell 3 16 5 197
Visual Basic 13 1 0 150
Svelte 4 31 2 141
XSD 1 15 19 113
AsciiDoc 2 38 0 108
awk 2 16 4 106
VSCode Workspace 1 7 5 104
JSON5 1 0 6 103
Ant 3 42 133 89
WebAssembly 55 4 0 84
WiX source 1 11 25 73
sed 6 13 27 72
Groovy 1 2 0 51
Flatbuffers 1 23 51 45
Mako 1 0 0 31
Nix 1 2 1 25
ProGuard 9 34 132 23
TNSDL 5 10 20 23
Justfile 1 1 0 17
Containerfile 1 9 0 16
CoffeeScript 2 7 4 13
R 1 8 18 12
C Shell 1 1 0 11
D 1 4 21 8
Cucumber 1 3 0 6
Elixir 1 0 37 6
Linker Script 1 0 0 5
Stylus 1 2 0 5
Expect 1 1 3 1
---------------------------------------------------------------------------------------
SUM: 360265 6090154 7176216 44820655
---------------------------------------------------------------------------------------
Firefox hat aktuell knapp 44,8 Mio. Zeilen Code. Da verstecken sich also wahrscheinlich noch zehntausende Fehler, die bislang noch keiner entdeckt hat. Natürlich sind nicht alle davon sicherheitskritisch.