El Java moderno, del que tu profe no te habla

769

Una primera versión de Este artículo fue publicada originalmente en mi blog personal de Medium

Java es un gran lenguaje de programación con altas capacidades y muy alto desempeño, fue creado en 1996 por el canadiense James Gosling y desde entonces ha sido ampliamente utilizado en universidades, empresas, proyectos de código abierto y startups. No obstante, ha permitido el desarrollo de toda una comunidad que guarda un gran culto al lenguaje y su ecosistema. En la actualidad, continúa siendo uno de los lenguajes más populares y con mayor uso en la industria del Software.

En este artículo revisaremos, en términos generales, cómo podemos sacar lo mejor de este lenguaje combinándolo con tecnologías modernas, así como algunas de las ventajas a nivel profesional de especializarse en él.

Los hechos

Día con día, una gran cantidad de Software es escrito en Java dentro de todo tipo de organizaciones, desde grandes corporativos hasta las más recientes Startups. Aplicaciones y servicios web (ambos RESTful y SOAP), aplicaciones de escritorio, aplicaciones standalone e incluso programación de dispositivos electrónicos.

Para darnos una idea de lo relevante que sigue siendo Java en la actualidad, revisemos las estadísticas publicadas por la IEEE para este año (2017), sobre los lenguajes con mayor popularidad en el mundo. Nota como Java es popular para aplicaciones móviles, web y backend, a diferencia de otros lenguajes que solo son populares para una o dos categorías.

https://spectrum.ieee.org/computing/software/the-2017-top-programming-languages

Como podemos ver, Java se encuentra dentro de los primeros 3 lenguajes con mayor popularidad en el mundo durante el 2017. De hecho, los anteriores años Java ocupaba el primer lugar, pues la cantidad de empresas de Sotware referentes  en la industria que utilizan Java como uno de sus lenguajes principales es impresionante. Solo por dar algunos ejemplos:

  • Google.- la 2° marca más valiosa del mundo, solo después de Apple. Google usa Java para el backend de la mayoría de sus grandes proyectos como su buscador, Gmail, Maps, etc. Adicionalmente, Google ha publicado una gran cantidad de bibliotecas de código abierto y basaron su proyecto de Android en Java.
  • Netflix.- Gran parte de su infraestructura en backend está programada en Java. Al igual que Google, han contribuido al open source de una forma muy grande con Netflix Open Source Software.
  • Twitter.- al principio, la compañía usaba Ruby on Rails en su totalidad. Paulatinamente muchas partes tanto de backend como de frontend fueron remplazadas por Java, por temas de mejorar el desempeño.

Así mismo, Java es uno de los lenguajes de alto nivel con mejor desempeño en el planeta, por arriba de grandes lenguajes como C# y Python y solo abajo de C y C++. Revisemos las comparativas de rendimiento que realiza Debian entre lenguajes.

http://benchmarksgame.alioth.debian.org/u64q/java.html

Cabe mencionar que estas pruebas son realizadas bajo las mismas condiciones, la ejecución de los mismos algoritmos y la utilización de la misma cantidad de memoria y procesadores, etc.

Ventajas profesionales

Teniendo en cuenta los hechos anteriormente mencionados podemos notar que hay muy buenas razones para enfocarse en Java en términos de las prestaciones que nos otorga a nivel técnico. Pero, no olvidemos que el ecosistema de Java tiene muchas otras ventajas en términos de crecimiento y desarrollo profesional, revisemos algunas:

  • Comunidad.- la comunidad alrededor de Java es una de las más devotas y más comprometidas. Cada mes conferencias relacionadas con Java y grupos de usuarios de Java (JUG), se llevan a cabo en todo el mundo.
  • Documentación.- tanto la plataforma de Java como sus bibliotecas y frameworks de código abierto, tienen una documentación bastante fuerte que te ayudará a nunca quedarte estancado y tener una guía bien definida de cómo hacer las cosas. Además, existen foros, como Baeldung, a lo largo de toda la web que publican una cantidad impresionante de tutoriales muy útiles.
  • Oracle.- al estar respaldado por un gigante de la computación, Java tiene muchísima vida asegurada por delante. De hecho Oracle no solo invierte en el desarrollo de su lenguaje sino que fomenta la comunidad alrededor de él, en conferencias como Java One y año con año reconoce a los mejores programadores de este lenguaje, nombrándolos Java Champion.
  • Android.- hoy en día, Java es el lenguaje oficial para hacer aplicaciones en Android. Al aprender las bases Java tienes una gran variedad de opciones de especialización que no implicarán adquirir conocimientos diferentes, una de ellas es Android. 🙂
  • Trabajo y salarios.- en general, Java es uno de los lenguajes que mayor demanda profesional tiene y también, uno de los que mejores salarios ofrecen. Esto claro, es en términos generales, puede llegar a depender de otras variables.

El objetivo de este artículo y en particular de esta sección, es compartir con la comunidad de Codesolt las ventajas de Java de forma objetiva, lo cual no implica que otros lenguajes y plataformas tengan muchas ventajas y oportunidades, también.

Tecnologías modernas para complementar a Java

En orden de reutilizar las soluciones que grandes equipos de ingenieros han desarrollado y liberado para nuestro uso, resulta muy conveniente integrar algunas tecnologías con nuestro desarrollo en Java, ya que nos ayudarán mucho durante todo el ciclo de vida de nuestros sistemas y nos permitirán enfocarnos en dar mejores soluciones a nuestros clientes o usuarios. A continuación se mencionan algunas de las más útiles:

  • Spring Framework.- uno de los proyectos open source más grandes para Java y Scala, dirigido por la empresa Pivotal, ofrece una cantidad de capacidades, basadas en inversión de control y programación orientada a aspectos, para crear, escalar y mantener nuestras aplicaciones de todo tipo.
  • Gradle.- es un sistema que automatiza la construcción de nuestros proyectos y nos permite automatizar tareas. Una herramienta fundamental para agilizar nuestros procesos de compilación y construcción.
  • IntelliJ IDEA.- el IDE para Java y Scala de JetBrains cuenta con una gran cantidad de integraciones y configuraciones que te ayudarán a ser más ágil a la hora de programar.
  • Bibliotecas de código abierto.- muchos de los problemas más complejos a resolver en Java, han sido encapsulados en poderosas librerías de las cuales podemos hacer uso en nuestros proyectos y ponerlas en producción. Esto, al igual que Spring Framework, nos ahorrará tiempo y esfuerzo, además de resolver el problema mucho mejor que escribir todo desde cero por nosotros mismos.
  • Javascript.- sin duda Javascript resulta muy poderoso al escribir funcionalidad del lado del cliente, por lo que frameworks y librerías como Angular Js, React Js o Vue Js pueden integrarse con backends construidos en Java de forma muy consistente mediante API Rest, por ejemplo.

Por supuesta herramientas que aplican para cualquier lenguaje como Git, Jenkins, Docker o una infraestructura en la nube empoderarán aún más nuestro proyecto.

Por otro lado, recuerda que el uso de ciertas tecnologías modernas en sí, no va a mejorar el desempeño de Java ni de ningún lenguaje de programación. Haz uso de buenos diseños de tus sistemas, apegados a patrones de Software, buena implementación de algoritmos e implementación de buenas práctica de programación.

Conclusión

Java es sin duda una de las mejores opciones para los programadores, no solo en términos de la capacidad y flexibilidad que otorga al construir Software, sino también de la gran cantidad de beneficios profesionales que trae consigo pues a pesar de los años, Java sigue siendo uno de los jugadores más importantes en la industria.

En Java, como en cualquier lenguaje o plataforma, recuerda hacer uso de las buenas prácticas, apegarte a los patrones de diseño e implementar las tecnologías de forma correcta para obtener mejores resultados en cuanto a desempeño.


Recuerda que también puedes escuchar este artículo en nuestro podcast vía Soundcloud 😛

No olvides consultar nuestros tutoriales gratuitos de Java y Spring! 😉

Comments

comments