JavaRush /Java Blog /Random-TL /Java Trends sa 2022: JDK 18 at 19, Project Loom at Data m...

Java Trends sa 2022: JDK 18 at 19, Project Loom at Data mesh

Nai-publish sa grupo
Well, 2022 ay nagsimula na. Habang ang karamihan sa mga tao ay nasa mga pista opisyal ng Bagong Taon kasama ang champagne at Olivier, pag-uusapan natin ang tungkol sa mga uso sa mundo ng Java. Marahil ay makakatulong ito sa iyong pag-aralan ang iyong karera, matuto ng bagong teknolohiya, o makabuo ng isang plano sa pag-unlad para sa darating na taon. Тренды Java в 2022 году: JDK 18 и 19, Project Loom и Data mesh - 1Ang espesyalista sa wikang Java at lektor na si Andrey Rodionov, gayundin ang arkitekto ng solusyon sa EPAM at pinuno ng komite ng programa ng Devoxx Ukraine na si Oleg Tsal-Tsalko ay nagsalita tungkol sa kung ano ang naghihintay sa Java sa 2022 at sa malapit na hinaharap.

Ano ang mga prospect para sa Java sa 2022?

Тренды Java в 2022 году: JDK 18 и 19, Project Loom и Data mesh - 2Sa taong ito inaasahan namin ang paglabas ng susunod na dalawang bersyon: JDK 18 (sa Marso) at JDK 19 (sa Setyembre). Ang potensyal na interesante para sa karamihan ng mga developer ng Java sa JDK 18 ay maaaring:
  • Built-in na Simple Web Server, na walang suporta para sa isang servlet container, na maaaring magamit para sa mabilis na prototyping at pagsubok, katulad ng mga katulad na mini web server sa Python, Ruby, PHP.
  • Patuloy na nagpapabuti ang pagtutugma ng pattern.
Para sa JDK 19, mayroon nang Early-Access Build, ngunit wala pa ring opisyal na listahan ng kung ano ang planong isama dito. Gusto kong maniwala na ang JDK 19 ay hindi bababa sa isasama ang unang stable na prototype ng Project Loom, kung saan ang mga detalye ng draft ay lumitaw kamakailan at ang pinakabagong build ay batay sa JDK 19. Pag-uusapan natin ang tungkol sa Project Loom nang mas detalyado sa ibaba.

Para sa anong mga lugar ang Java ay nananatiling tanging solusyon, at saan ito mas kanais-nais?

Andrey Rodionov:

Sa kabutihang palad, hindi natin masasabi na walang alternatibo sa Java para sa alinman sa mga lugar, ngunit maaari nating pag-usapan ang Java bilang isang uri ng ginintuang paraan para sa pagbuo ng mga aplikasyon ng enterprise, backend at microservice. Dapat ding tandaan ang pagtaas ng bilang ng iba't ibang distribusyon ng JDK mula sa iba't ibang vendor (maliban sa Oracle): Amazon, Microsoft, Alibaba, Red Hat, Bellsoft (itinatag ng mga tao mula sa Oracle Development Center sa St. Petersburg) at iba pa. Ang buong hanay ng mga pamamahagi ay magagamit dito . Тренды Java в 2022 году: JDK 18 и 19, Project Loom и Data mesh - 3Palaging may mga alternatibo, ngunit natagpuan ng Java ang pinakamalaking paggamit nito sa backend sa pagpapaunlad ng negosyo. Pinipili ng karamihan sa malalaking kumpanya ang Java para sa kanilang malaki at kumplikadong mga sistema. Ang mga dahilan ay pareho: ang bilang ng mga developer at kadalubhasaan sa merkado, isang malaking ecosystem at isang malakas na platform ng JVM.

Ano ang mga prospect para sa iba pang mga wika ng jvm, sa partikular na Kotlin, kumpara sa Java?

Andrey Rodionov:

Upang maunawaan kung aling mga wika ng JVM ang sikat, buksan lamang ang dokumentasyon para sa Spring, Micronaut, Vert.x at tingnan kung aling mga wika ang ibinibigay na mga halimbawa ng code - ang Java at Kotlin ay magiging karaniwan. Hindi masasabi na mayroong napakalaking paglipat ng mga proyekto sa Kotlin, ngunit ang katanyagan nito para sa backend ay patuloy na lumalaki at maraming mga balangkas ang sumusubok na isama ito sa kanilang ecosystem. Tulad ng para sa Scala, inilalabas ang mga bagong bersyon, at mas aktibong ginagamit ito para sa ML, pagproseso ng data, at kung saan mas maginhawa ang functional programming paradigm.

Oleg Tsal-Tsalko:

Другие JVM-языки достаточно привлекательные и в наше время вполне нормально, когда на проекте используются несколько языков программирования. Мне кажется, причины того, почему новомодные JVM-языки не могут потеснить Java, такие:
  • Они не настолько круче, чтобы все прямо взяли и перешли на них.
  • Они используются в том же сегменте, что и Java.
  • Java понемногу берет все лучшее от других языков и становится лучше.

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

Олег Цаль-Цалько:

Думаю, что нет. По крайней мере, сейчас я могу выделить больше позитива от частых релизов. Мы видим, что новые клевые фичи появляются намного чаще. Теперь не надо ждать 5 лет, чтобы в языке появилось что-то новое. Само собой теперь не стоит ожидать таких грандиозных релизов, How Java 8, потому что фичи теперь появляются маленькими итерациями.

Есть ли фичи в новых versionх Java, которые особенно важны для разработчиков?

Олег Цаль-Цалько:

В последних versionх Java появилось несколько интересных фич, таких How Pattern Matching, Sealed Classes и Records. Я бы рекомендовал посмотреть на их возможности. Конечно, наиболее серьезные и ожидаемые фичи планируются в рамках Project Loom и Project Valhalla, но я думаю, что фичи в рамках этих проектов тоже будут релизиться постепенно.

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

Андрей Родионов:

What касается Spring Framework, то его разработка была сосредоточена на поддержке разных возможностей Spring Cloud и возможности компиляции Spring Boot в нативные бинарные файлы – проект Spring Native, который планируется в будущем сделать частью Spring Core. В этом плане Spring отставал от Micronaut и Quarkus из-за активного использования reflection и динамической codeогенерации. What касается Spring Framework 6, советую посмотреть доклад Spring 6 and Beyond What нового в Spring Framework 6? с конференции Joker (от Олега Докуки и Алексея Нестерова). Из ключевого – переход на JDK 17, отказ от XML Configuration и Autowire через сеттеры, дальнейшее развитие поддержки Kotlin и проекта Spring Fu.

Олег Цаль-Цалько:

Spring How самый популярный Java FW в наше время не хочет отдавать пальму первенства. Я уверен, что команда разработчиков будет прилагать все усorя к развитию Spring. Spring заполняет все новые и новые ниши. Например, Spring сделал очень много в области Reactive Streams / Reactive Programming со своим Project Reactor. Теперь они продвигают RSoket protocol, что тоже выглядит многообещающе.

Расскажите о проекте Loom: для чего нужен, Howие проблемы решает?

Андрей Родионов:

Project Loom – это, наверное, самое интересное новшество, которое может стать новым тектоническим сдвигом всей JVM-платформы и всех языков поверх JVM. Project Loom может не затронет так сильно обычных разработчиков, но точно повлияет на всю экосистему, библиотеки, фреймворки, другие JVM-языки использующие многопоточность. Project Loom вводит новую абстракцию потоков – virtual threads (аналог корутин). Если раньше Java thread был непосредственно привязан к потоку операционной системы (ОС), и создание нового потока в Java приводило к созданию нового потока ОС, то с virtual threads эта связь один-к-одному разрывается. При создании нового виртуального потока не будет создаваться новый потока ОС, а для выполнения непосредственных вычислений будет переиспользоваться один из так называемых carrier thread (некий аналог пула потоков ОС). Таким образом, поверх одного потока ОС может работать несколько виртуальных потоков. Для вычислительных задач такая модель виртуальных потоков не дает ниHowих преимуществ, и скорее замедляет speed вычислений, но для блокирующих операций, типа обработки HTTP-requestов, ожидания ответов от БД or от микросервисов данная модель будет существенным плюсом. Дело в том, что при теперешней модели потоков блокировка/ожидание Java thread приводила к простою потока ОС, – это было тратой ресурсов и требовало создавать больше потоков ОС. В модели с виртуальными потоками, блокировка/ожидание виртуального потока приведет к тому, что будет освобождаться carrier thread, поверх которого работал виртуальный поток, и на нем будет запускаться другой виртуальный поток. Таким образом, потоки ОС будут использоваться более оптимально, и потребуется их меньшее количество для выполнения аналогичных задач. Соответственно, производители библиотек, фреймворков и JVM-языков должны будут адаптировать code под виртуальные потоки. Поэтому для них грядет большое переписывание :) Кроме модели виртуальных потоков, также планируется привнести и новый API для упрощения оркестрации потоков – так называемый structured concurrency. Now, к примеру, structured concurrency активно используется в Kotlin-корутинах и Scala ZIO. К сожалению, version JDK и даже год выхода Project Loom пока неизвестны. На вопрос о дате выхода главный архитектор Java-платформы Брайан Гетц отвечает философской фразой: ”It will be ready, when it will be ready”. Поэтому ждем и можем пробовать экспериментальные сборки Project Loom.

Олег Цаль-Цалько:

Loom – это большой umbrella project, в рамках которого команда OpenJDK и Oracle работает над Concurrency нововведениями в Java и JVM: virtual threads, fibers и continuations. Скорее всего, релиз этих фичей будет постепенный. На данный момент есть только Early Access builds для Virtual threads supports. Если говорить конкретно о virtual threads, его основная цель – упрощение многопоточной модели разработки в Java с помощью использования миллиона легковесных потоков с той же семантикой, How и у обычных платформенных потоков. Под капотом эти потоки будут менеджиться внутри ForkJoinPool и переиспользовать платформенные потоки.

Какие прогнозы развития Java в мире глобальных трендов – микросервисов, облачной архитектуры, блокчейна, ИИ?

Андрей Родионов:

Если говорить, о глобальных трендах, то они не особо изменorсь. По-прежнему основным трендом продолжает оставаться Kubernetes и инфраструктура вокруг него в виде Service mesh. Набирает также популярность Data mesh, How некая абстракция для управления распределенными источниками и хранorщами данных.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION