JavaRush /Java блог /Random /Тренды Java в 2021 году: Kotlin, микросервисная архитекту...

Тренды Java в 2021 году: Kotlin, микросервисная архитектура и Kubernetes

Статья из группы Random
Мир разработки меняется очень быстро. Чтобы поспевать за изменениями, надо понимать, что происходит в этом мире. Знание трендов позволяет адаптироваться к быстро меняющимся тенденциям. Искусственный интеллект, увеличение количества интеграций, интернет вещей — это только часть глобальных трендов программирования. JavaRush спросил у специалиста по программированию на языке Java и лектора Андрея Родионова, что будет происходить с Java в 2021 году.Тренды Java в 2021 году: Kotlin, микросервисная архитектура и Kubernetes  - 1

Для каких сфер Java до сих пор остается безальтернативным решением?

Java в ближайшее время останется одной из основных платформ для разработки enterprise-приложений (то есть корпоративных приложений, используемых крупными компаниями для зарабатывания денег. У таких приложений большая кодовая база и высокие требования по надежности — ред.) и бекенда. Java хорошо вписалась в микросервисную архитектуру, хотя не является безальтернативной для написания микросервисов.

Какие перспективы у других JVM языков, в частности, у Kotlin, по сравнению c Java?

После прошедшего хайпа вокруг языков Groovy и Scala, лидирующим на данный момент среди JVM языков является Kotlin. Он уже стал стандартом для разработки под Android, а вот в мире Java enterprise ему еще предстоит отвоевывать себе место. Многие популярные фреймворки (Spring, Vert.x, gRPC, RSocket) также делают на него ставки, позволяя использовать его в рамках себя.

Kotlin — статически типизированный, объектно-ориентированный язык программирования, работающий поверх Java Virtual Machine и разрабатываемый компанией JetBrains. Также компилируется в JavaScript и в исполняемый код ряда платформ через инфраструктуру LLVM.

Возможности Kotlin: компилируется в байткод JVM или в JavaScript, исходный код открыт, легко читаемый синтаксис, программы на Kotlin могут использовать существующие Java-фреймворки и библиотеки.

Будет ли падение качества Java в связи с более короткими межрелизными интервалами?

Не будет: просто нововведения в языке будут выходить по мере их готовности, вместо того чтобы ждать несколько лет до следующего релиза, как это было раньше. Некоторые релизы будут проходить для разработчиков незаметно, так как не будут нести каких-то супер востребованных новшеств.

Фреймворк Spring: будет ли он и дальше множить свою экосистему под разнообразные потребности?

Экосистема Spring-а продолжает активно развиваться, и я периодически открываю для себя очередной из ее подпроектов, о котором раньше ничего не слышал. Примечательно также, что Project Reactor и r2dbc, возникшие как подпроекты Spring-а, можно сказать стали сейчас стандартами для реактивного подхода.

Project Reactor — это библиотека Java 8, которая реализует модель реактивного программирования. Он построен на основе спецификации реактивных потоков, стандарта для создания реактивных приложений.

R2DBC (Reactive Relational Database Connectivity) — открытый проект, посвященный реактивному программированию для SQL.

Какие тренды в развитии облачных инфраструктур IaaS, SaaS, PaaS? Как облака облегчают разработку, развертывание инфраструктуры, поддержку и масштабирование?

Основным трендом тут продолжает оставаться Kubernetes и инфраструктура вокруг него в виде Service mesh. Каждый уважающий себя Cloud provider предоставляет возможность использования кластера Kubernetes. И если приложение написано с учетом его запуска в Kubernetes, это существенно облегчает его развертывание и масштабирование.

Kubernetes (K8s) — это открытое программное обеспечение для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями.

Kubernetes группирует контейнеры, составляющие приложение, в логические единицы для более простого управления и обнаружения.

Kubernetes управляет и запускает контейнеры на большом количестве хостов, а также обеспечивает совместное размещение и репликацию большого количества контейнеров. Проект был начат Google и теперь поддерживается многими компаниями, среди которых Microsoft, RedHat, IBM и Docker.

На какие еще тренды разработки стоит обратить внимание в 2021 году?

Одним из интересных трендов, который еще находится на подъеме, является GraalVM Native Image, позволяющий превратить традиционное Java-приложение в бинарное, которое не будет требовать для своей работы наличие JVM и сопутствующих библиотек. Такой бинарный файл очень хорошо вписывается в микросервисную архитектуру и serverless-подход, так как позволяет очень быстро стартовать новый экземпляр приложения и не требует “разогрева” JVM.

Изменились ли за последнее время требования к молодым разработчикам в связи с развитием Java?

В большую часть проектов все еще включены новшества Java 8, даже если разработчики используют более новые версии Java. Поэтому основным требованием является знание Stream API и элементов функционального программирования. Хорошо также иметь представление о микросервисной архитектуре, Docker и Kubernetes, так как в современном проекте начинающему разработчику сразу с этим придется столкнуться.

Stream API — это новый способ работать со структурами данных в функциональном стиле. Stream (поток) API (описание способов, которыми одна компьютерная программа может взаимодействовать с другой программой) — это по своей сути поток данных.

С появлением Java 8 Stream API позволило программистам писать существенно короче то, что раньше занимало много строк кода, а именно — упростить работу с наборами данных, в частности, упростить операции фильтрации, сортировки и другие манипуляции с данными. Если у вас промежуточных операций нет, часто можно и нужно обойтись без стрима, иначе код будет сложнее чем без потока.

Docker — программное обеспечение для автоматизации развертывания и управления приложениями в средах с поддержкой контейнеризации.

Комментарии (10)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Юрий Уровень 31
31 декабря 2020
Пора уже на JavaRush Stream API активно продвигать!!! А то все по старинке пока делаем!!!
ДмитрийЛ Уровень 7
30 декабря 2020
Какие перспективы у Java в плане работы с AR|VR приложениями?
Андрей Уровень 28
30 декабря 2020
Ничего не понятно, но очень интересно
Anton Уровень 8
29 декабря 2020
Весьма интересно
Angelina Ageeva Уровень 23
29 декабря 2020
Спасибо за полезный обзор! Возьму на заметку, куда двигаться дальше ;)
java.user Уровень 23
29 декабря 2020
В общем была жава так и останется жавой🤑