Для яких сфер 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 — програмне забезпечення для автоматизації розгортання та керування програмами в середовищах з підтримкою контейнеризації. |
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ