¿Por qué hay tan pocos grandes sitios Web hechos en Java?

Acabo de leer un artículo en el que Nati Shalom, planteaba esta misma cuestión y a mí la verdad es que me ha dado que pensar, os voy a resumir lo que el comenta y luego daré mi opinión a cerca de esta pregunta.

Nati hace una comparativa de grandes sitios Web y entre otros estudia Google, Amazon, eBay, LinkedIn, TypePad, WikiPedia, etc. Las conclusiones que a las que llega son las siguientes:

La mayoría de estos sitios utilizan LAMP (Linux+Apache+MySQL+PHP) , algunos llegan a implementar su propio sistema de ficheros, como Google, que utiliza GFS. Algunos de ellos utilizan el cacheo, para solucionar el problema del cuello de botella que supone el acceso a la base de datos, algunos se ven obligados a implentar sus propias soluciones para esto ya que no existe nada que cumpla sus requerimientos.

En el mundo financiero sucede todo lo contrario al mundo Web, Java está muy extendido y en menor grado J2EE. En los últimos años los requerimientos de capitales en los mercados de capitales han introduciendo un rápido cambio en el middleware, introduciendo soluciones basadas en Compute Grids para la virtualización de los recursos de la CPU y facilitando la paralelización de las aplicaciones batch.

Se han introducido también Data Grids, facilitando la virtualización de los recursos de memoria. Parece que Spring se está convirtiendo en el fremework más usado, en algunos casos como una J2EE alternativa.

Si se examinan ambos mundos nos damos cuenta de que tienen problemas muy similares relacionados con la escalabilidad y las soluciones adoptadas por ambos se parecen bastante.

En la capa de datos:

  1. Se ha añadido cacheo para amortiguar la latencia en el acceso a la BD y reducir la sobrecarga que produce la Entrada/Salida.
  2. Pasar de un modelo de base de datos centralizado a un modelo distribuído.

En la capa de Negocio:

  1. Añadir a la capa de aplicación semántica de paralelización.
  2. Intentar escalar los modelos de aplicación para conseguir escalabilidad lineal.
  3. Abandonar el típico commit en 2 fases y XA para el procesado de transacciones.

Nati comenta que el post que leyó el para realizar el suyo resume la respuesta a esta prengunta en 2 cosas principalmente:

  1. LAMP provee de una solución a bajo coste.
  2. Java todavía se utiliza, pero no como lenguaje primario sino como componente tanto como front-end como back-end.

Esto es una opinión personal, pero desconozco cuantos de estos sitios utilizan Java como componente en la lógica de negocio, porque hay si es rentable utilizarlo, no tanto en la capa de presentación en la que PHP o Ruby, por ejemplo, son más flexibles. La estadística del artículo original no deja claro si eso se ha tenido en cuenta.

Por otro lado, estoy de acuerdo con el primer punto, no sólo de a cara al desarrollo sino como siempre suele apuntar mi colega Luis también de cara al hosting de la aplicación ya que mientras alojar una aplicación LAMP es barato una aplicación Java, casi seguro va a necesitar una máquina dedicada y va a ser bastante más caro.

¿Qué pensaís vosotros?

A mí me parece un tema que puede dar bastante de sí, os dejo el link al artículo original:

http://natishalom.typepad.com/nati_shaloms_blog/2007/10/why-most-scalab.html

15 Comentarios

  • 1. armindux  |  octubre 10th, 2007 at 5:52 pm

    Creo que el post original y este es sesgado, dicen evaluar los grande sitios, pero a que llaman grandes sitios?, creo que estan evaluando sitios populares, y aun asi se tragan sitios como eBay, Amazon, sitios grandes corporativos como los del propio SUN, IBM, SAP, Oracle, y muchos mas, todos usan Java…

  • 2. Joserra  |  octubre 10th, 2007 at 8:45 pm

    Coincido con armindux. Son sitios grandes, en visitas o fama en Internet, pero ¿y los bancos? ¿las bases de datos como Thomson-Aranzadi, por poner un ejemplo? Cientos de aplicaciones que lo que las hacen grandes son la complejidad de sus transacciones, más que quizás el número de visitas. Esas, yo creo que van más hacia JAVA que otra cosa.

  • 3. Raúl Vicente  |  octubre 10th, 2007 at 10:31 pm

    Ya comento, que en los bancos y en el mundo financiero se utiliza Java de manera casi hegemónica, pero en los sitios más populares de otras áreas se utiliza LAMP, quizás el autor ha utlizado erroneamente el término “grandes sitios Web”, pero llama la atención que los sitios más populares de Internet no usen Java. La verdad es que la estadística no tiene una muestra suficientemente significativa, deberían haberse añadido todos esos sitios que comentaís.

    Gracias por colaborar.

  • 4. mario  |  octubre 11th, 2007 at 8:02 am

    Es una pregunta que me llevo haciendo mucho tiempo, y es que por más que busco no encuentro una aplicación bancaria hecha con LAMP, todo es Java. Porque ocurre esto ?, no es seguro o eficiente crear una web bancaria con LAMP ? o por lo menos con PHP ?

  • 5. Raúl Vicente  |  octubre 11th, 2007 at 10:09 am

    Antes en PHP4, había muchos fallos de seguridad entre ellos, PHP4, no permitía PreparedStatements con lo que era vulnerable a SQL Injection, eso me parece una razón de peso, para que muchos bancos no lo utilizaran en el pasado, pero hoy en día eso ya se ha resuelto. Me imagino que en su momento se apostaría por Java y hoy en día se sigue manteniendo la filosofía ya que ha dado buenos resultados. Por otro lado, para hacer una buena capa de Negocio+Persistencia un lenguaje fuertemente tipado siempre es mejor que uno débil y como a los bancos les interesa que la lógica de negocio/transacciones sea lo más robusta y segura posible por eso me imagino que habrán tirado hacia Java en vez de hacia LAMP.

    Un saludo

  • 6. ¿Por qué hay tan pocos &hellip  |  octubre 11th, 2007 at 1:48 pm

    [...] ¿Por qué hay tan pocos grandes sitios Web hechos en Java?www.programania.net/programacion/orientada-a-objetos/%c2%bfp… por jcromero hace pocos segundos [...]

  • 7. ubersoldat  |  octubre 11th, 2007 at 3:39 pm

    Hmmm… a mi me da que hay mucha gente que se saca más dinero vendiendo una solución en Java que lo que sacarian vendiendo una solución LAMP, así que el marketing es más agresivo.

  • 8. El notas  |  octubre 11th, 2007 at 8:50 pm

    tus posts stan bien pero por favor: no abuses de tantas negritas que se hacen molestas…

  • 9. Raul Vicente  |  octubre 12th, 2007 at 10:53 am

    Ya lo siento, mi intención es que el artículo pueda ser resumible de un vistazo, lo leí en una guía de usabilidad, intentaré controlar un poco más para no hacerlas molestas.

    Gracias.

  • 10. Jose Juan Martin  |  octubre 12th, 2007 at 8:26 pm

    Creo que la razón de la poca penetración en la lógica de negocio de LAMP/WAMP es la falta de apoyo tácito de las empresas de software y de los programadores a este lenguaje.
    La tecnología XAMPP no tiene nada que envidiar a la tecnología Java en cuanto a eficiencia en el manejo de BBDD y lógica de negocio.
    Sólo me puedo explicar esta situación por dos razones :
    -La fuerte presión que hace SUN en Java, por ende, la presión que hacen todos los que se consideran “Lobby antimicrosoft”.
    -La falta de credibilidad de los programadores y empresas de software a este entorno. Tal vez por que todavía va revestido del “lengiaje para páginas web”, y no como un entorno serio de desarrollo de aplicaciones de negocio.
    De hecho conozco más de un caso de empresas importantes de software que han salido del entorno VB por los costes ocultos y el monopolio de las herramientas y han caido en el entorno Java. Y después de más de 2 años de inversión, según ellos, no han mejorado todo lo que pensaban. Algunas de estas empresas echan de menos su Cobol de toda la vida.

  • 11. Java EE y Web 2.0 | Javas&hellip  |  noviembre 22nd, 2007 at 11:21 pm

    [...] Mi compañero Luis acaba de pasarme un artículo escrito por un grupo de desarrolladores de IBM y trata sobre la problemática que existe en el mundo Java para desarrollar aplicaciones que implementen el concepto de Web 2.0. Esto responde un poco a la pregunta que se lanzaba en el post ¿Por qué hay tan pocos grandes sitios Web escrito en Java? [...]

  • 12. Marc  |  diciembre 27th, 2007 at 12:10 pm

    JAVA utiliza una lógica de negocio y permite un tipo de programación mejor que LAMP. Mi opinión es que para portales con mucha transacción interna JAVA es la mejor opción, por contra, LAMP es mejor para portales mas “fáciles” y con menor dificultad “interna”. No creo que se trate de un problema de lobbys y de imágen.

  • 13. Raul Vicente  |  diciembre 28th, 2007 at 1:29 pm

    Marc, he tratado de responder a esta pregunta en el post Java EE y Web 2.0, este estudio está sesgado o no dice la verdad en su totalidad, ya que la mayoría de estos sitios son Web 2.0, Java utiliza APIs síncronas lo cual hace ineficiente la programación de Web 2.0.

    Así pues, si tenemos esto en cuenta hay cosas que símplemente no se pueden comparar. Te aconsejo que leas el artículo aunque es largo está muy bien. Si todas las aplicaciones fueran Web 1.0 tendría sentido, pero comparar portales Web 2.0 con los que no lo son, sabiendo que Java tiene una carencia, no aporta nada al estudio.

    Un saludo y gracias.

  • 14. josemucho  |  julio 28th, 2008 at 6:40 pm

    Se nota que hay mucha manzana verde por aquí… Estamos en España jovenzuelos. Aquí quien manda es la subcontrata, no el programador. Me parece bien que hagáis estos análisis de tipo “macroeconómico” que no sirven de nada. Luego llega el comercial de la empresa TraepacaSoft SL (cuya sede social es un piso alquilado en Móstoles…) y dice “Chssst, aqui a callar, tu programas en Java porque me lo dice el cliente y punto”. Probablemente ese mismo comercial seleccionaba pizzeros para Pizza Hut hace un par de meses, pero se lleva el 30% de tu salario mínimo… Además, si por algunos flipaos fuera, se harían sitios web en ensamblador mezclado con LISP, tampoco es eso, por algo se inventaron las máquinas virtuales (yo personalmente las adoro, ya sea JVM o .NET)… Si quereis ganar pasta, dejaos de pajas mentales y aprended muuuuuucho Java y temas afines. Olvidad cualquier otra alternativa. Es tan sencillo como eso. Ah! y olvidáos de acabar en cliente final si no tenéis una hipoteca y no sabeis hacer buenas mamadas… Besitos.

  • 15. gerardo  |  febrero 28th, 2009 at 7:07 pm

    coincido con ubersoldat, josemucho se trata de marketing.
    gracias

    PD “ensamblador mezclado con LISP”. ta’chido

Comenta el articulo:

Requerido

Requerido,