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

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

Стаття з групи Random UA
Світ розробки змінюється дуже швидко. Щоб встигати за змінами, треба розуміти, що відбувається у цьому світі. Знання трендів дозволяє адаптуватися до тенденцій, що швидко змінюються. Штучний інтелект, збільшення кількості інтеграцій, інтернет речей – це лише частина глобальних трендів програмування. JavaRush запитав у спеціаліста з програмування на мові Java та лектора Андрія Родіонова, що відбуватиметься з Java у 2021 році.Тренди Java в 2021 році: Kotlin, мікросервісна архітектура та Kubernetes - 1

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

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

Які перспективи у інших JVM мов, зокрема, у Kotlin порівняно з 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 — програмне забезпечення для автоматизації розгортання та керування програмами в середовищах з підтримкою контейнеризації.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ