Martin Schleiss ha cercato di confrontare vari progetti open source in termini di complessità del codice e di comprensione di come il codice funzioni e quali azioni esegua. Ad esempio, un progetto diventa più difficile da comprendere quando si utilizzano astrazioni complesse, come l'interazione distribuita dei componenti in rete, o l'uso di un grande numero di moduli e classi nidificate.
Come metrica per valutare la potenziale complessità è stata utilizzata il conteggio delle operazioni di importazione che creano l'intreccio di vari file. Si presume che una persona possa facilmente gestire 5-6 collegamenti a diversi file, mentre un aumento di tale numero rende più difficile comprendere la logica.
I risultati ottenuti (il livello di complessità è definito come la percentuale di file che contengono riferimenti a 7 o più altri file).
- Elasticsearch — 77.2%
- Visual Studio Code — 60.3%.
- Rust — 58.6%
- Nucleo Linux — 48.7%
- PostgreSQL — 46.4%
- mongoDB — 44.7%
- Node.js — 39.9%
- PHP — 34.4%
- CPython — 33.1%
- Django — 30.1%
- reactJS — 26.7%
- Symfony — 25.5%
- Laravel — 22.9%
- nextJS — 14.2%
- chakra-ui — 13.5%
Fonte: opennet.ru
