Martin Schleiss tentou comparar vários projetos abertos em termos de complexidade do código e compreensão de como o código funciona e quais ações ele executa. Por exemplo, um projeto torna-se mais difícil de entender ao aplicar abstrações complexas, como a interação distribuída de componentes pela rede, ou ao usar um grande número de módulos e classes aninhados.
Como métrica para avaliar a potencial complexidade, foi utilizado a contagem do número de operações de importação que formam entrelaçamentos de diferentes arquivos. Presume-se que uma pessoa possa entender facilmente 5-6 conexões de arquivos diferentes, e à medida que esse número aumenta, entender a lógica se torna mais complicado.
Os resultados obtidos (o nível de complexidade é definido como a porcentagem de arquivos que têm referências a 7 ou mais outros arquivos).
- Elasticsearch — 77,2%
- Visual Studio Code — 60,3%.
- Rust — 58,6%
- Núcleo 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
