Os proponentes das linguagens de programação funcional afirmam que a programação funcional facilita o raciocínio sobre o código. Aqueles que são a favor de linguagens de tipo estaticamente dizem que seus compiladores detectam erros suficientes para compensar a complexidade adicional dos sistemas de tipos. Mas tudo o que li sobre esses tópicos é baseado em argumentos racionais, não em dados empíricos.
Existem estudos empíricos sobre quais efeitos as diferentes categorias de linguagens de programação têm sobre taxas de defeitos ou outras métricas de qualidade?
(As respostas a essa pergunta parecem indicar que não existem estudos, pelo menos não para o debate dinâmico versus estático)
Respostas:
Há alguma pesquisa na academia sobre esse assunto. Aqui estão alguns exemplos que eu conheço, embora você deva tratar as conclusões com cautela:
Um experimento sobre sistemas de tipos estáticos e dinâmicos: dúvidas sobre o impacto positivo de sistemas de tipos estáticos no tempo de desenvolvimento, Stefan Hanenberg. No Proc OOPSLA, 2010. Link ACM
Um estudo empírico de tipagem estática em Ruby, M. Daly, V. Sazawal, J. Foster. In Proc PLATEAU, 2010. PDF
Um experimento controlado para avaliar os benefícios da verificação do tipo de argumento de procedimento, Lutz Prechelt e Walter F. Tichy. IEEE TSE, 1998. Link IEEE
Tenho certeza de que existem outros papéis. De um modo geral, no entanto, essa área é extremamente controversa por razões óbvias - é realmente difícil fazer uma avaliação objetiva !!
fonte
Um estudo famoso é Lutz Prechelt. Uma comparação empírica de sete linguagens de programação. IEEE Computer [33 (10): 23-29], outubro de 2000
Prechelt discute a confiabilidade do programa e também examina o tempo de execução e o consumo de memória.
fonte
Embora não esteja relacionado à qualidade do código, este estudo analisa como os iniciantes aprendem usando diferentes idiomas. Em particular, eles comparam como os novatos se saem quando aprendem Perl vs Quorum, um idioma de ensino que os autores desejam comparar. O que é realmente interessante neste artigo é que eles realmente apresentam uma linguagem de controle em que a sintaxe é gerada aleatoriamente, como uma espécie de linguagem "placebo". Essa abordagem pode ser realmente interessante se aplicada a idiomas e qualidade de código e ajudar a controlar alguns desses fatores complicados de confusão ao comparar idiomas.
fonte