Martin Schleiss ha cercato di confrontare vari progetti open source in base alla complessità del codice e alla comprensione di come funziona il codice e quali azioni esegue. Ad esempio, un progetto diventa più difficile da comprendere quando si applicano astrazioni complesse, come l'interazione distribuita dei componenti attraverso la rete, o si utilizza un gran numero di moduli e classi annidati.
Come metrica per valutare la potenziale complessità, è stato utilizzato il conteggio delle operazioni di importazione che creano un intreccio di vari file. Si presume che una persona possa facilmente gestire 5-6 collegamenti di file diversi, mentre aumentando questo valore diventa più difficile capire 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%
- Kernel 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
