Todos hemos oído hablar de la lentitud de Java, siempre ha sido evidente que no puede ejecutarse de la misma forma que se ejecuta una aplicación nativa y su rendimiento es menor. Con los años muchas cosas han mejorado y las máquinas JIT (Just In Time) han conseguido mejorar el rendimiento del lenguaje. Las máquinas JIT son las encargadas de generar un código nativo muy optimizado , el siguiente artículo nos lo explica a detalle.
Es cierto que Java se ha apoyado también en la mejora de rendimiento de los procesadores, solo hay que ver la plataforma Android para darnos cuenta de lo que era y de lo que es hoy. Aun así Java a veces sigue sufriendo críticas por su lentitud. Sin embargo la lentitud es una de las claves del éxito de Java.
La lentitud de Java y el mundo enterprise
Java Enterprise Edition es la plataforma que se usa habitualmente en los desarrollos Java. ¿Que significa Enterprise edition? . El termino traducido significa “empresa” y no nos aporta mucho. Muchas personas piensan que una aplicación enterprise es una “aplicación muy grande” o una aplicación que hace cosas muy diversas cubriendo areas de todo tipo. Mi experiencia me ha enseñado que las aplicaciones enterprise son otra cosa.
Las empresas y sus corazones
Es cierto que todas las empresas tienen en explotación decenas o cientos de aplicaciones, sin embargo hay un conjunto de aplicaciones (grandes o pequeñas) que son el núcleo de su negocio y por decirlo de alguna forma son su “corazón” sin ellas la empresa tendrá grandes dificultades para la gestión y supervivencia diaria.
Con el paso del tiempo muchas aplicaciones de la empresa caen en desuso, pero las aplicaciones “enterprise” sobreviven.
Estas aplicaciones pueden tener 10-20 años de vida , con el tiempo habrán evolucionado y su tamaño aumenta.
Estas aplicaciones necesitan evolucionar , pero necesitan poderlo hacer de una forma “pausada” sin grandes saltos. Es aquí en donde Java y Java EE destacan , ¿Podemos usar el mismo servlet que hace 10 años en una aplicación de hoy?. La respuesta es SI. Es cierto que podemos usar otros Servlets más avanzados pero podemos seguir usando los de siempre en caso de necesidad. ¿Podemos usar los conceptos de EJB 3.0 que son del 2007 hoy en día?. La respuesta es SI. De hecho todavía vamos por EJB 3.2 que indica que la evolución no ha sido revolucionaria sino lenta. Esto es clave para el mundo “enterprise” ya que genera una “cultura” entre los desarrolladores que se extiende en el tiempo y permite que todos nos entendamos en diferentes lineas temporales.
Las empresas necesitan que sus aplicaciones enterprise/core funcionen correctamente y puedan evolucionar . Es en este entorno en el que la inversiones no se pueden congelar ya que si las aplicaciones core no funcionan correctamente la empresa no podrá operar. Es en este entorno en donde la forma pausada de evolucionar de Java se convierte en una ventaja competitiva sobre el resto . ¿ Sera Angular 2.0 compatible con Angular 1.3? pensemos en ello.
Otros artículos relacionados : Arquitecturas y Modularidad , Arquitecturas MVC y Rest
Cecilio, a 5 años de este post, no puede ser mas acertado. Y con el planteo de angular, diste en el clavo. Angular 2 requirió reescribir todo.
si es así 🙂
Yo vengo del mundo .net, y a la inversa de lo que veo, donde muchos programadores Java se han pasado para .net, estoy empezando a ver Java EE cada dia con mas cariño, ya que empiezo a ver como en .NET se viene reinventando todo desde que salio hace mas de una década, y una aplicaciòn grande (Empresarial) compilarla o adaptarla a las nuevas tecnologias es un dolor de cabeza. Por ejemplo hace dias salio oficialmente .Net Core, EF Core (su framework ORM), ASP.Net Core, que supondrá manter dos lineas diferentes de sus tecnologias (habrá 2 Net frameworks, 2 Entity… Read more »
A veces .NET necesitaría algo más de calma 🙂
El post muy bueno, pero en ningún caso la lentitud es clave de éxito. Para mi simplemente se le ha dado la vuelta a la realidad para justificar una crítica constante y más que justificada a java. Usar conceptos pasados o un servlet de hace 10 años justifica ni es ventaja de nada. Yo puedo seguir usando cobol o fortran con todos sus conceptos, puedo seguir programando estructurado en cualquier plataforma. Personalmente no me aclara nada este post. Por otra parte lo de la comparación con angular está fuera de lugar
Ah el blog muy bueno, solo discrepo en este post.
gracias
Siempre son bienvenidas opiniones diferentes 🙂
acabo de descubrir está pag y genial, gracias muy util!
gracias 🙂
Esta es una de las mejores paginas que encontré sobre java, me aclara muchas dudas. Gracias Cecilio.
de nada , muchas gracias 🙂
El link que dejas al inicio, sobre JIT, no funciona.
A mi si 😕 intentalo de nuevo please
Tienes toda la razón, lentitud y compatibilidad hacia atrás las claves. Veremos si Oracle sigue con la filosofia.
esperemos que así sea 🙂
Que buen post, felicitaciones.
gracias 🙂
muy interesante el post, muchas gracias amigo
de nada 🙂