Engraçado que a maior parte das pessoas fala e reclama e briga mas não em a menor noção do real problema. O problema do twitter e da maior parte dos sites de porte absurdo (e não grande porte, grande porte é o sitezinho da igreja) é que chega a um momento em que milisegundos fazem diferença do ponto de vista financeiro e também de uso. Pra maior parte dos sites feitos hoje, demorar 800 milisegundos pra trazer um resultado é normal, natural até, quem faz site usando JSF e componentes de terceiros provavelmente está bem pior do que isso porque a maior parte desses arquivos são enviados via filtros e não diretamente como arquivo pelo servidor HTTP e o tempo vai ser tão ruin quanto seria se fosse feito em Ruby, mas ninguém vai se preocupar com isso porque você vai ter lá os seus 5 usuários simultâneos rodando dentro de uma intranet da vida.
O twitter chegou onde chegou porque eles tinham um turnaround altíssimo em Ruby pra adicionar novas funcionalidades e criar coisas novas, coisas que eles não teriam no início em Java e qualquer pessoa que já tenha feito um projeto web em java na vida sabe exatamente isso. A linguagem se prestou perfeitamente pra transformar o site no sucesso que ele é hoje, mas infelizmente o interpretador do Ruby está anos luz atrás da JVM, na verdade TODOS os interpretadores da atualidade comem poeira feio pra JVM a exceção do Mono e do .Net runtime da Microsoft. PHP? Python? Perl? Todos brincadeira de criança quando comparados ao trabalho de engenharia que levou a máquina virtual do Java que nós temos hoje.
Pro twitter cortar esses milisegundos foi não apenas uma diminuição de custos de hardware como também uma melhora do ponto de vista do usuário que vai notar uma diferença grande na busca final.
O problema é da linguagem? Sim e não, o problema é do interpretador primitivo (assim como os do Python, Php e Perl ) e das vantagens que a linguagem oferece e que também e transformam em custos em tempo de execução para o interpretador. Não existe almoço grátis, ter classes abertas, closures, tudo como sendo objetos em Ruby tem um custo alto no tempo de execução. A grande pergunta que as pessoas devem fazer é, será que esse custo se paga pro meu caso? Será que ter todas essas vantagens hoje do ponto de vista da linguagem cobrem as desvantagens da compicação que é pro interpretador lidar com isso?
Teoricamente, deveríamos todos ser partidários da lógica, já que somos todos programadores, mas as pessoas teimam em trbalhar com tecnologia como times de futebol, defendendo um em detrimento do outro, precisamos deixar dessa infantilidade e enxergar os fatos pelos fatos. Me dá pena ver pessoas que criam “ódio” por ferramentas, frmeworks ou linguagens de programação sem nem ao menos tê-los testado, porque essas pessoas simplesmente sinalizam que não serão capazes de continuar no mercado de TI, que é necessariamente sincretista e propenso aos meshes de coisas completamente diferentes.
Vivemos eternamente no problema onde a única ferramenta a mão é o martelo e queremos que tudo o que aparece na nossa frente são pregos.