Eu já vi muitos testes medindo a velocidade de execução de linguagens de programação, mas nunca encontrei testes medindo a velocidade de desenvolvimento.
Ouvi dizer que a velocidade de desenvolvimento aumenta quando se trabalha com linguagens dinâmicas, mas há alguma prova disso? Não estou tentando dizer que linguagens dinâmicas não são eficientes, mas eu gostaria de ver os resultados de um estudo científico, se isso existe.
Melhor ainda seriam informações sobre instalações de manutenção. Alguns idiomas são mais fáceis de depurar do que outros?
Edição: Estou interessado principalmente nas diferenças entre dois idiomas que são próximos na sintaxe. Por exemplo, acho que a programação em C geralmente será mais lenta que a programação em Java; mas a programação em Java é mais rápida que a programação em c #?
fonte
Respostas:
Absolutamente a linguagem de programação faz a diferença. No entanto, acho que essa diferença é muito mais sobre a familiaridade do programador com cada idioma do que com qualquer aspecto específico do idioma, especialmente devido à sua restrição de idiomas com sintaxe semelhante.
fonte
Para mim, isso é meio análogo ao tipo de pincel que você pode pintar mais rápido.
Se você considerar o que pinta uma mercadoria, quanto maior o pincel, mais rápido você pintará.
Se você vê um bom código como uma forma de arte, é menos do tamanho do pincel e mais do que exatamente você faz com seus pincéis.
Desculpe, isso é um pouco de não-resposta à pergunta real.
fonte
Não sei se isso é relevante, mas é interessante
No The Mythical Man Month, Fred Brooks menciona estudos comparando assembly e linguagens de nível superior. Eles descobriram que os programadores produziam a mesma quantidade de instruções por ano em ambos, mas as instruções para uma linguagem de alto nível eram iguais a várias instruções em linguagem assembly. Então, mudando para a linguagem de alto nível, os programadores obtiveram um aumento, independentemente do múltiplo médio da instrução de montagem para a instrução de linguagem em produtividade.
O mesmo deve acontecer com C vs Java / C #, não sei a diferença real entre C # e Java. Mas toda vez que você aumenta o nível de abstração, aumenta a produtividade. No entanto, também acho que isso reduzirá o controle sobre o que a máquina está realmente fazendo. Você precisa confiar que o idioma está fazendo o que você deseja. Por exemplo, em software de alto desempenho, a coleta de lixo é inaceitável, exceto se você tiver controle total sobre quando é executado e por quanto tempo ele é executado.
fonte
O que é produtividade? O que é produto , mesmo? Ninguém sabe, matematicamente falando.
KLoC?
Complexidade ciclomática?
Pontos de função?
Acredito que você precisaria analisar o nível de negócios e executar comparações de percentis com outros programadores que executam trabalhos semelhantes e, em seguida, medir os recursos fornecidos por programador. Esses são pontos muito sofisticados e sutis para poder medir e reter estatisticamente o significado.
fonte
Imagine como isso seria testado: você precisa ter algum projeto do mundo real desenvolvido independentemente, repetidamente com a mesma linguagem (para diminuir a variabilidade da experiência e conhecimento do programador) e com diferentes idiomas (para obter alguns dados para comparar as linguagens). Parece-me que o experimento cresce rapidamente para um tamanho incontrolável.
Eu adoraria ouvir sobre maneiras de "encolher" o experimento ou sobre tentativas de realmente realizá-lo conforme indicado.
fonte