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, 08:18
Пора уже на JavaRush Stream API активно продвигать!!! А то все по старинке пока делаем!!!
Василий Малик Senior Java-разработчик в CodeGym Expert
2 января 2021, 06:52
В лекциях уже есть давно здесь . Задачи доступны в новых сценариях
Юрий
Уровень 31
9 января 2021, 15:06
А где задачи по Stremam доступны????
Василий Малик Senior Java-разработчик в CodeGym Expert
12 января 2021, 06:24
Только в новых сценариях, которые доступны для пользователей, кто регистрировал аккаунт начиная с декабря 2020 года
Юрий
Уровень 31
12 января 2021, 07:00
Печально...
ДмитрийЛ
Уровень 7
30 декабря 2020, 15:46
Какие перспективы у Java в плане работы с AR|VR приложениями?
Андрей Dungeon Master
30 декабря 2020, 14:01
Ничего не понятно, но очень интересно
Anton Менеджер отдела продаж в Delta,системы безопа
29 декабря 2020, 22:09
Весьма интересно
Angelina Ageeva
Уровень 23
29 декабря 2020, 16:50
Спасибо за полезный обзор! Возьму на заметку, куда двигаться дальше ;)
java.user
Уровень 23
29 декабря 2020, 15:29
В общем была жава так и останется жавой🤑