JavaRush /Blog Java /Random-ES /Tendencias de Java para 2021: Kotlin, arquitectura de mic...

Tendencias de Java para 2021: Kotlin, arquitectura de microservicios y Kubernetes

Publicado en el grupo Random-ES
El mundo del desarrollo está cambiando muy rápidamente. Para mantenerse al día con los cambios, es necesario comprender lo que está sucediendo en este mundo. Conocer las tendencias le permite adaptarse a las tendencias que cambian rápidamente. La inteligencia artificial, el aumento del número de integraciones y el Internet de las cosas son sólo una parte de las tendencias globales de programación. JavaRush preguntó al profesor y especialista en programación Java Andrey Rodionov qué pasará con Java en 2021.Tendencias Java en 2021: Kotlin, arquitectura de microservicios y Kubernetes - 1

¿Para qué áreas Java sigue siendo la única solución?

En un futuro próximo, Java seguirá siendo una de las principales plataformas para desarrollar aplicaciones empresariales ( es decir, aplicaciones corporativas utilizadas por grandes empresas para ganar dinero. Estas aplicaciones tienen una gran base de código y requisitos de alta confiabilidad - ed. ) y backend. Java encaja bien en la arquitectura de microservicios, aunque no es la única alternativa para escribir microservicios.

¿Cuáles son las perspectivas para otros lenguajes JVM, en particular Kotlin, en comparación con Java?

Después del revuelo en torno a los lenguajes Groovy y Scala, Kotlin es actualmente el lenguaje JVM líder . Ya se ha convertido en un estándar para el desarrollo de Android, pero en el mundo empresarial Java aún tiene que ganarse su lugar. Muchos marcos populares ( Spring , Vert.x , gRPC , RSocket ) también dependen de él, lo que permite usarlo dentro de ellos mismos.

Kotlin es un lenguaje de programación orientado a objetos y de tipo estático que se ejecuta sobre la máquina virtual Java y está desarrollado por JetBrains. También compila en JavaScript y en código ejecutable en varias plataformas a través de la infraestructura LLVM.

Características de Kotlin: compila en código de bytes JVM o JavaScript, código abierto, sintaxis fácil de leer, los programas Kotlin pueden usar marcos y bibliotecas Java existentes.

¿Habrá una caída en la calidad de Java debido a intervalos de lanzamiento más cortos?

No lo hará: sólo las innovaciones en el lenguaje se lanzarán cuando estén listas, en lugar de esperar varios años hasta el próximo lanzamiento, como era el caso antes. Algunos lanzamientos pasarán desapercibidos para los desarrolladores, ya que no traerán innovaciones muy populares.

Marco de primavera: ¿seguirá ampliando su ecosistema para satisfacer diversas necesidades?

El ecosistema Spring continúa desarrollándose activamente y periódicamente descubro otro de sus subproyectos, del que nunca antes había oído hablar. También es digno de mención que ahora se puede decir que Project Reactor y r2dbc, que surgieron como subproyectos de Spring, se han convertido en estándares para el enfoque reactivo.

Project Reactor es una biblioteca Java 8 que implementa el modelo de programación reactiva. Está construido sobre la especificación Reactive Streams, un estándar para crear aplicaciones reactivas.

R2DBC (Conectividad reactiva de bases de datos relacionales) es un proyecto de código abierto dedicado a la programación reactiva para SQL.

¿Cuáles son las tendencias en el desarrollo de infraestructuras en la nube IaaS, SaaS, PaaS? ¿Cómo hace la nube que la infraestructura sea más fácil de desarrollar, implementar, mantener y escalar?

La tendencia principal aquí sigue siendo Kubernetes y la infraestructura que lo rodea en forma de malla de servicios. Todo proveedor de nube que se precie ofrece la posibilidad de utilizar un clúster de Kubernetes. Y si una aplicación está escrita para ejecutarse en Kubernetes, será mucho más fácil de implementar y escalar.

Kubernetes (K8s) es un software de código abierto para automatizar la implementación, el escalado y la gestión de aplicaciones en contenedores.

Kubernetes agrupa los contenedores que componen una aplicación en unidades lógicas para facilitar la administración y el descubrimiento.

Kubernetes administra y ejecuta contenedores en una gran cantidad de hosts y permite la ubicación conjunta y la replicación de una gran cantidad de contenedores. El proyecto fue iniciado por Google y ahora cuenta con el apoyo de muchas empresas, incluidas Microsoft, RedHat, IBM y Docker.

¿A qué otras tendencias de desarrollo vale la pena prestar atención en 2021?

Una de las tendencias interesantes que sigue en aumento es GraalVM Native Image, que permite convertir una aplicación Java tradicional en una binaria que no requerirá la JVM ni las bibliotecas relacionadas para funcionar. Un archivo binario de este tipo encaja muy bien en la arquitectura de microservicio y en el enfoque sin servidor, ya que permite iniciar muy rápidamente una nueva instancia de la aplicación y no requiere "calentar" la JVM.

¿Han cambiado recientemente los requisitos para los jóvenes desarrolladores debido al desarrollo de Java?

La mayoría de los proyectos todavía incluyen innovaciones de Java 8, incluso si los desarrolladores utilizan versiones más nuevas de Java. Por tanto, el principal requisito es el conocimiento de la API Stream y los elementos de programación funcionales . También es bueno tener conocimientos de arquitectura de microservicios , Docker y Kubernetes , ya que en un proyecto moderno un desarrollador novato tendrá que lidiar con esto inmediatamente.

Stream API es una nueva forma de trabajar con estructuras de datos en un estilo funcional. Una Stream API (una descripción de las formas en que un programa informático puede comunicarse con otro programa) es, en esencia, un flujo de datos.

Con la llegada de Java 8, Stream API permitió a los programadores escribir mucho más brevemente lo que antes requería muchas líneas de código, es decir, simplificar el trabajo con conjuntos de datos, en particular, simplificar el filtrado, la clasificación y otras operaciones de manipulación de datos. Si no tiene operaciones intermedias, a menudo puede y debe prescindir de una secuencia; de lo contrario, el código será más complicado que sin una secuencia.

Docker es un software para automatizar la implementación y gestión de aplicaciones en entornos en contenedores.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION