JavaRush /Blogue Java /Random-PT /Tendências Java em 2021: Kotlin, arquitetura de microsser...

Tendências Java em 2021: Kotlin, arquitetura de microsserviços e Kubernetes

Publicado no grupo Random-PT
O mundo do desenvolvimento está mudando muito rapidamente. Para acompanhar as mudanças, você precisa entender o que está acontecendo neste mundo. Conhecer as tendências permite que você se adapte às tendências que mudam rapidamente. A inteligência artificial, o aumento do número de integrações e a Internet das coisas são apenas parte das tendências globais de programação. JavaRush perguntou ao especialista em programação Java e palestrante Andrey Rodionov o que acontecerá com Java em 2021.Tendências Java em 2021: Kotlin, arquitetura de microsserviços e Kubernetes - 1

Para quais áreas o Java ainda é a única solução?

Em um futuro próximo, Java continuará sendo uma das principais plataformas para o desenvolvimento de aplicativos corporativos ( ou seja, aplicativos corporativos usados ​​​​por grandes empresas para ganhar dinheiro. Esses aplicativos têm uma grande base de código e altos requisitos de confiabilidade - ed. ) e back-end. Java se encaixa bem na arquitetura de microsserviços, embora não seja a única alternativa para escrever microsserviços.

Quais são as perspectivas para outras linguagens JVM, em particular Kotlin, em comparação com Java?

Após o entusiasmo em torno das linguagens Groovy e Scala, Kotlin é atualmente a linguagem JVM líder . Já se tornou um padrão para o desenvolvimento Android, mas no mundo empresarial Java ainda não conquistou um lugar para si. Muitos frameworks populares ( Spring , Vert.x , gRPC , RSocket ) também dependem dele, permitindo que ele seja usado dentro deles.

Kotlin é uma linguagem de programação orientada a objetos de tipo estaticamente que roda sobre a Java Virtual Machine e é desenvolvida pela JetBrains. Também compila para JavaScript e código executável em diversas plataformas por meio da infraestrutura LLVM.

Recursos do Kotlin: compila para bytecode JVM ou JavaScript, código aberto, sintaxe fácil de ler, os programas Kotlin podem usar estruturas e bibliotecas Java existentes.

Haverá uma queda na qualidade do Java devido a intervalos de lançamento mais curtos?

Não vai acontecer: apenas as inovações na linguagem serão lançadas à medida que estiverem prontas, em vez de esperar vários anos até o próximo lançamento, como acontecia antes. Alguns lançamentos passarão despercebidos pelos desenvolvedores, já que não trarão nenhuma inovação super popular.

Estrutura Spring: continuará a expandir seu ecossistema para atender às diversas necessidades?

O ecossistema Spring continua a se desenvolver ativamente e periodicamente descubro outro de seus subprojetos, dos quais nunca tinha ouvido falar antes. Também é digno de nota que o Projeto Reactor e o r2dbc, que surgiram como subprojetos do Spring, podem agora ser considerados padrões para a abordagem reativa.

Project Reactor é uma biblioteca Java 8 que implementa o modelo de programação reativo. Ele é construído com base na especificação Reactive Streams, um padrão para construção de aplicativos reativos.

R2DBC (Reactive Relational Database Connectivity) é um projeto de código aberto dedicado à programação reativa para SQL.

Quais são as tendências no desenvolvimento de infraestruturas em nuvem IaaS, SaaS, PaaS? Como a nuvem facilita o desenvolvimento, a implantação, a manutenção e a escalabilidade da infraestrutura?

A principal tendência aqui continua sendo o Kubernetes e a infraestrutura ao seu redor na forma de Service Mesh. Todo provedor de nuvem que se preze oferece a oportunidade de usar um cluster Kubernetes. E se um aplicativo for escrito para ser executado no Kubernetes, será muito mais fácil implantá-lo e escalá-lo.

Kubernetes (K8s) é um software de código aberto para automatizar a implantação, dimensionamento e gerenciamento de aplicativos em contêineres.

O Kubernetes agrupa os contêineres que compõem um aplicativo em unidades lógicas para facilitar o gerenciamento e a descoberta.

O Kubernetes gerencia e executa contêineres em um grande número de hosts e permite a colocalização e a replicação de um grande número de contêineres. O projeto foi iniciado pelo Google e agora é apoiado por muitas empresas, incluindo Microsoft, RedHat, IBM e Docker.

A que outras tendências de desenvolvimento vale a pena prestar atenção em 2021?

Uma das tendências interessantes que ainda está em ascensão é o GraalVM Native Image, que permite transformar uma aplicação Java tradicional em uma aplicação binária que não exigirá a JVM e bibliotecas relacionadas para funcionar. Esse arquivo binário se encaixa muito bem na arquitetura de microsserviços e na abordagem sem servidor, pois permite iniciar rapidamente uma nova instância do aplicativo e não requer “aquecimento” da JVM.

Os requisitos para jovens desenvolvedores mudaram recentemente devido ao desenvolvimento do Java?

A maioria dos projetos ainda inclui inovações do Java 8, mesmo que os desenvolvedores estejam usando versões mais recentes do Java. Portanto, o principal requisito é o conhecimento da API Stream e dos elementos de programação funcional . Também é bom ter uma compreensão da arquitetura de microsserviços , Docker e Kubernetes , pois em um projeto moderno, um desenvolvedor iniciante terá que lidar imediatamente com isso.

A API Stream é uma nova maneira de trabalhar com estruturas de dados em um estilo funcional. Uma API Stream (uma descrição das maneiras pelas quais um programa de computador pode se comunicar com outro programa) é, em sua essência, um fluxo de dados.

Com o advento do Java 8, a API Stream permitiu aos programadores escrever de forma muito mais breve o que antes exigia muitas linhas de código, nomeadamente, para simplificar o trabalho com conjuntos de dados, em particular, para simplificar a filtragem, classificação e outras operações de manipulação de dados. Se você não possui operações intermediárias, muitas vezes você pode e deve fazer isso sem um fluxo, caso contrário o código será mais complicado do que sem um fluxo.

Docker é um software para automatizar a implantação e gerenciamento de aplicações em ambientes conteinerizados.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION