Ventajas de Java

Sep 2020

Java es el lenguaje de programación más usado en las empresas que desarrollan su propio software. Analizamos las principales características y describimos porqué es el mejor lenguaje de programación para aprender a programar o para desarrollar cualquier proyecto web.

Java es gratis

Desde su creación en 1995, por Sun Microsystem, el lenguaje de programación Java se ha orientado principalmente a resolver los problemas relacionados con el desarrollo de software, desde el punto de vista empresarial, aportando un marco de trabajo más productivo y que permitiera generar software más mantenible y escalable.

En 2010 la empresa creadora de Java, fue adquirida por Oracle en una serie de negociaciones que obligaba al nuevo propietario a seguir con el proceso de liberalización de la tecnología bajo la licencia GNU GPL de forma gradual, en unas acciones que empezaron con anterioridad y de forma muy tímida a partir del 2007.

Hoy en día, la plataforma OpenJDK es el encargado de publicar las últimas versiones tanto del lenguaje Java como de la máquina virtual JVM necesaria para ejecutar los programas escritos en este lenguaje, siguiendo las directrices marcadas por la Java Community Process con más de 1200 miembros, entre los que están Google, Adobe, Boeing, Oracle, Twitter y otros. why-use-java Java tiene tipado estático


Para asegurar que el software escrito es robusto, Java proporciona un tipado estático de las variables. Es decir, las variables sólo son de un tipo y éste no puede variar con el tiempo. Esta aparente limitación, es un salvo conducto para aplicaciones empresariales de gran envergadura en donde participan grupos de programadores escribiendo miles de líneas de código. Las actividades de análisis de código, como las que realiza el compilador, permiten detectar un gran número de errores en tiempo de compilación, siempre preferible que encontrarlos en durante la ejecución. Sobre todo cuando la aplicación está corriendo en sistemas empotrados o pequeños dispositivos.

Java es portable

Java es el lenguaje de programación, y está orientado a objetos y tiene tipado estático. Sin embargo, su compilación no genera código nativo, si no que genera código para ser ejecutado en una máquina virtual, JVM. La Máquina Virtual de Java, es un reproductor capaz de ejecutar programas compilados en Java (y de otros lenguajes) abstrayendo de las particularidades de cada plataforma, ofreciendo al programador una única interfaz de programación. Esto provoca que los programas escritos con Java sean independiente y por tanto portables. Los binarios resultantes de la compilación, pueden ser ejecutados tal cual en un sistema Windows como Mac o Linux sin necesidad de modificar ni una coma.

Como consecuencia de su portabilidad, se requiere tener instalada la JVM en todos los sistemas que deseen ejecutar programas escritos en Java. La comunidad OpenJDK se encarga de mantener todas las implementaciones de la JVM para cada una de las plataformas más habituales.

Java es rápido

Es un mito que Java sea lento. Originariamente se justifica porque la JVM debe interpretar los programas escritos en Java y ésta en sus inicios carecía de optimizaciones potentes como hoy en día. Sin embargo y de forma planificada, a partir de la versión 6 de Java, la JVM incluye un compilador que genera código nativo en tiempo de ejecución de forma transparente al programador y al usuario. Además, durante esa compilación, se aplican las técnicas de optimización más avanzadas del sector, y no sólo se basan en cómo está escrito el código, sino también cómo ha sido la ejecución reciente y cómo se cree estadísticamente que serán las siguientes iteraciones. Esta batería de optimizaciones provoca que Java tenga tiempos similares a programas similares escritos en C/C++.

Hoy en día, en versiones más modernas como Java 13, el número de optimizaciones de código, nivel de paralelismo y el gran trabajo de grupos de investigación puede afirmarse con rotundidad que Java es uno de los lenguajes con mejor rendimiento del panorama del software de propósito general, muy superior que al de otros lenguajes dinámicos o de tipado débil.

Java tiene un gran ecosistema

Desde su nacimiento, Java ha presentado una gran penetración en el mercado del desarrollo de software a nivel empresarial. Su madurez y fiabilidad ha provocado que muchas empresas apuesten por este lenguaje a la hora de afrontar grandes inversiones en la elaboración de sus propias plataformas de información. Como resultado de esa adopción, tanto programadores como empresas y organizaciones participan activamente en el desarrollo de herramientas y librerías útiles (muchas de ellas Open Source) para solventar los problemas habituales a los que debe afrontar el programador.

Como mención especial, las organizaciones como Apache Foundation y Eclipse Foundation, entre otros como Google y Netflix, han aportado muchas de las librerías y utilidades de uso diario en el desarrollo de software, todas ellas Open Source con licencias muy permisivas.

Java tiene un gran número de programadores

Es difícil saber si gracias al gran número de programadores hay un gran ecosistema, o al revés. Pero lo que sí se sabe es que encontrar programadores conocedores de Java es una tarea más fácil que hallar a aquellos que dominan otros lenguajes menos implantados.

También se sabe que Java es uno de los lenguajes que se ha posicionado entre el segundo y primer puesto como lenguaje de programación más utilizado en todo el mundo en los últimos casi 20 años, rivalizando con C/C++ según el tradicional índice TIOBE.

Java tiene los IDEs más avanzados

Tradicionalmente Java ha dispuesto siempre del beneficio de incorporar los IDEs o editores de programación más avanzados del mercado, prácticamente su totalidad sin coste por uso ayudando a su implantación en las empresas. Estos editores permiten la compilación incremental, asistencia de escritura en código, refactorizaciones, búsqueda de documentación del API y muchas otras funciones más.

Desde Netbeans IDE, a Eclipse IDE y más recientemente Intellij son los editores de programación más usados, incluso para otros lenguajes, llenos de integraciones con herramientas típicas como Git para el control de versiones o Maven y Gradle para la construcción de aplicaciones.

JVM es políglota

La Máquina Virtual de Java se ha convertido en los últimos años en un reproductor muy avanzado capaz de ejecutar código proveniente de diferentes lenguajes de programación, siendo Java el más habitual. Los usuarios pueden optar por otros lenguajes con características diferentes o especializados en un escenario particular. Algunos ejemplos son Groovy si se desea el dinamismo que ofrece el scripting. Scala o Clojure si se busca un lenguaje funcional, o Kotlin si se está orientado al desarrollo de aplicaciones móviles para Android, entre otros muchos lenguajes.

Todos ellos se benefician del API único que proporciona la JVM para cualquier plataforma. Incluso es posible integrar diferentes lenguajes en una misma aplicación para ser ejecutada por la JVM. Otros lenguajes también disponibles son Javascript, Jython o JRuby que favorecen la reutilización de librerías o frameworks existentes.

Java tiene soporte de las principales empresas

Como se ha citado con anterioridad, Java disfruta del apoyo de las principales empresas tecnológicas puesto que muchas de ellas han desarrollado parte de sus plataformas usando este lenguaje. Miembros o no del JCP, un gran número de empresas reconocen usar internamente Java en algunos de sus productos o servicios. Todas ellas son empresas de primer nivel como Google, Facebook, Twitter, Oracle y muchas más. Y destacan de forma unánime la solidez y el fácil mantenimiento de las aplicaciones empresariales desarrolladas, sobre todo en proyectos donde participan un gran número de programadores y por tanto están sometidas a evoluciones constantes.

Java está en continua evolución

Desde que OpenJDK está al mando de Java y la JVM, el compromiso del colectivo que lo conforma es sacar frecuentes versiones que incorporen las mejoras propuestas por la comunidad mendiante el proceso Java Community Reques (JCR), en donde se proponen, valoran e implementan las peticiones de nuevas características de Java o de la máquina virtual, con el fin de tener un marco tecnológico que se adecue a las nuevas situaciones y hardware que vaya surgiendo con el paso del tiempo. El objetivo es que Java sea capaz de afrontar los desafíos tecnológicos tan cambiantes como las recientes arquitecturas web en la nube y basados en contenedores virtualizados sin olvidar su orígenes en sistemas empotrados y de tiempo real.


Conclusiones

Con todas estas justificaciones esperamos que veas a Java como un gran lenguaje digno de ser utilizado en tus nuevos proyectos. Nosotros lo utilizamos a diario y la mayor parte de nuestros clientes nos exigen la entrega de los trabajos usando Java.

Ayúdanos a dar a conocer las características que definen a Java como un gran lenguaje de programación, merecedor del esfuerzo en su aprendizaje y utilización. O por el contrario, si consideras que Java no se merece el reconocimiento citado, déjanos un comentario. Estaremos encantados de saber tu opinión o experiencia.

Ventajas de Java

¿Con ganas de seguir leyendo?

Nuestra guía de Java

Cerca de 450 páginas en un libro de tapa blanda que podrás utilizar para aprender a programar en Java desde cero sin conocimientos previos. Explicamos como usar las herramientas más usadas en el mundo empresarial, todas ellas son totalmente gratis y Open Source.

Aprende conceptos como TDD para desarrollar software con garantías. Conecta tus apps con JPA en bases de datos SQL. Integra tus proyectos con Maven y mantenlos bajo control con Git. Mantente al día con la programación funcional de Java 8+.

Nuestra guía de Java
Libro Javañol