[quote=lkbm][quote=rmendes08]
Mas vamos esclarecer um ponto … quando se diz que linguagem X é mais rápida que Y estamos falando sobre CPU.Sendo assim, se eu escrever uma multiplicação de uma matriz 1.000.000 x 1.000.000 em C e outra versão em Java (mesmo tamanho de variáveis, memória, etc.) é bem provável que a versão em C seja mais rápida que versão em Java e muuuito mais rápida que uma versão em Ruby, por exemplo. Existem vários benchmarks Internet afora que demonstram esse fato.[/quote]
Por isso é errado. Quando falamos de linguagens devemos estar falando de humanos e não CPUs.
Você pode escrever um programa Ruby, e concluir que o mesmo programa teria demorado muito mais tempo para o programador fazer do que Java, mas não se ele vai executar mais lento.[/quote]
Colega, você está misturando as bolas …
Velocidade da linguagem é uma coisa, produtividade é outra. Como eu disse, velocidade de uma linguagem tem a ver com consumo de CPU, você só pode dizer que uma linguagem é mais rápida que outra comparando o tempo de execução de programas semelhantes em máquinas semelhantes, para isso servem os benchmarks, existema vários deles na Internet, mas de maneira geral o resultado é quase sempre o mesmo com relação a tempo de execução : C/C++ <<< Java < PHP, Python, etc.
Já produtividade seria a relação daquilo que você consegue fazer e o tempo necessário para desenvolver, sendo assim, quanto mais abstrata e quanto mais bibliotecas a linguagem tiver, mais produtivo o programador é. Sendo assim, é óbvio que linguagens de mais alto nível serão mais produtivas.
Enfim, faço questão de definir as terminologias corretas para que se possa atacar o problema corretamente. Ou seja, no exemplo do nosso amigo, mais do que escolher uma linguagem, a decisão real é escolher entre velocidade da linguagem ou produtividade da linguagem. Ou seja, devo escolher a linguagem mais rápida ou a linguagem mais produtiva ?
E como sempre, a resposta é o "depende". Depende, antes de mais nada de requisitos não-funcionais: o sistema tem um tempo limite de resposta ? Tenho limite no footprint ? Tenho restrições de ambiente ? Por isso que nem sempre é possível a escolher a linguagem mais produtiva para todo tipo de situação, fosse assim jogos hardcore e sistemas de tempo real já seriam implementados em Ruby, Python ou algo semelhante. Por outro lado, para a maioria dos sistemas Web pode não haver nenhum ganho significativo no troughput (requisições/segundo) trocando a linguagem.
Embora eu conheça um caso real. Essa aplicação foi desenvolvida por alguns colegas meus: http://vimember.com/, e algumas rotinas de processamento de imagens tiveram de ser implementadas em C para que o sistema ganhasse a responsividade desejada.