¿Por qué pocas empresas nuevas de Internet usan frameworks Java como J2EE y OSGI como la pila de software para implementar su aplicación web? ¿Por qué parecen preferir los frameworks Ruby-on-Rails, Python o PHP?

Java te da más confiabilidad. Es estable Mientras que otros idiomas como ROR le proporcionan un desarrollo más rápido de su aplicación con características como la convención sobre la configuración. Digamos que un código de 100 líneas en Java se puede escribir en 50 líneas en ROR, pero con los marcos de Java como Spring también puede lograrlo.

Hay más disponibilidad de buenos programadores Java experimentados que los de ROR.

JVM y su ecosistema se utilizan desde hace más de una década y evolucionan con el tiempo. Twitter lanzó un reemplazo para su front-end Ruby-on-Rails: un servidor Java llamado Blender. Ese cambio produjo una caída de 3 veces en las latencias de búsqueda y permitió iterar rápidamente en las funciones de búsqueda. Java proporciona ser una mejor plataforma para las necesidades de alta escalabilidad. Entonces, las empresas con tráfico creciente como Walmart, Bank of America prefieren Java.

Supongo que la razón principal es la productividad. Java implica una gran cantidad de repeticiones, es bastante detallado y carece de algunos conceptos de programación eficientes. Pero estos lenguajes de secuencias de comandos que mencionó tienen un problema cuando se trata de rendimiento, solidez y mantenimiento de grandes proyectos. Los idiomas de Typesafe tienen una gran ventaja aquí. La buena noticia es que puedes tener lo mejor de ambos mundos con Scala / Play2.

Son para propósitos fundamentalmente diferentes. Ruby on Rails le permite a uno crear código prototipo rápido, pero también tiene un GIL y eso mata la escalabilidad. He visto a varias compañías obtener su compañía con ROR y luego reescribir el código en Java. No hay nada de malo en eso y no es una crítica o un complemento para ninguna de las plataformas.

Un camión Dodge RAM y un camión Peterbilt son camiones pero para propósitos muy diferentes. No transportas un bote bajo detrás de un Peterbilt y no transportas una tonelada de aguacates por todo el país en una camioneta.

He leído en quora que Spotify está utilizando Java como backend