JavaRush /Java блогы /Random-KK /2022 жылғы Java трендтері: JDK 18 және 19, Project Loom ж...

2022 жылғы Java трендтері: JDK 18 және 19, Project Loom және деректер торы

Топта жарияланған
Міне, 2022 жыл басталды. Көптеген адамдар шампан және Оливье жаңа жылдық мерекелерде әлі де болса, біз Java әлеміндегі трендтер туралы сөйлесетін боламыз. Мүмкін бұл сіздің мансабыңызды талдауға, жаңа технологияны үйренуге немесе алдағы жылға даму жоспарын жасауға көмектеседі. 2022 жылғы Java трендтері: JDK 18 және 19, Project Loom және деректер торы - 1Java тілінің маманы және оқытушысы Андрей Родионов, сондай-ақ EPAM шешім сәулетшісі және Devoxx Украина бағдарламасы комитетінің жетекшісі Олег Цаль-Цалько 2022 жылы және жақын болашақта Java-ны не күтіп тұрғаны туралы айтты.

2022 жылы Java-ның болашағы қандай?

2022 жылғы Java трендтері: JDK 18 және 19, Project Loom және деректер торы - 2Биылғы жылы біз келесі екі нұсқаның шығарылуын күтеміз: JDK 18 (наурызда) және JDK 19 (қыркүйекте). JDK 18-дегі Java әзірлеушілерінің көпшілігі үшін ықтимал қызықты болуы мүмкін:
  • Python, Ruby, PHP-дегі ұқсас шағын веб-serverлерге ұқсас, жылдам прототиптеу және тестілеу үшін пайдаланылуы мүмкін сервлет контейнерін қолдаусыз кірістірілген қарапайым веб-server.
  • Үлгі сәйкестігі жақсара береді.
JDK 19-ға келетін болсақ, қазірдің өзінде ерте қол жетімділік құрастыру бар, бірақ оған енгізу жоспарланған нәрселердің ресми тізімі әлі жоқ. Мен JDK 19 кем дегенде жобалық спецификациялары жақында пайда болған және соңғы құрастыруы JDK 19 негізінде жасалған Project Loom бағдарламасының бірінші тұрақты прототипін қамтитынына сенгім келеді. Төменде Project Loom туралы толығырақ айтатын боламыз.

Java қай аймақтар үшін жалғыз шешім болып қала береді және қай жерде ол жақсырақ?

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

Бақытымызға орай, біз Java-ға ешқандай сала үшін балама жоқ деп айта алмаймыз, бірақ Java туралы кәсіпорын қосымшаларын, бэкендтерді және микросервистерді әзірлеуге арналған алтын құрал ретінде айтуға болады. Сондай-ақ, әртүрлі жеткізушілерден (Oracle-дан басқа) әртүрлі JDK дистрибутивтерінің көбеюін атап өткен жөн: Amazon, Microsoft, Alibaba, Red Hat, Bellsoft (Санкт-Петербургтегі Oracle Даму Орталығының адамдары негізін қалаған) және т.б. Дистрибуциялардың толық жиынтығы осында қол жетімді . 2022 жылғы Java трендтері: JDK 18 және 19, Project Loom және деректер торы - 3Әрқашан балама нұсқалар бар, бірақ Java корпорациясын дамытуда өзінің ең көп қолданылуын serverде табады. Көптеген ірі компаниялардың үлкен және күрделі жүйелері үшін Java таңдайды. Себептер бірдей: әзірлеушілер саны мен нарықтағы тәжірибе, үлкен экожүйе және қуатты JVM платформасы.

Java-мен салыстырғанда басқа jvm тілдерінің, атап айтқанда Котлиннің болашағы қандай?

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

JVM тілдерінің қайсысы танымал екенін түсіну үшін Spring, Micronaut, Vert.x құжаттамасын ашып, code мысалдары қай тілдерде берілгенін көріңіз - Java және Kotlin ортақ болады. Жобалардың Котлинге жаппай ауысуы бар деп айту мүмкін емес, бірақ оның бэкенд үшін танымалдығы артып келеді және көптеген фреймворктар оны өз экожүйесіне қосуға тырысуда. Scala-ға келетін болсақ, жаңа нұсқалар шығарылуда және ол одан әрі ML, деректерді өңдеу және функционалдық бағдарламалау парадигмасы ыңғайлы жерде белсенді түрде қолданылады.

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

Басқа JVM тілдері өте тартымды және қазіргі уақытта жобаның бірнеше бағдарламалау тілдерін пайдалануы қалыпты жағдай. Менің ойымша, жаңа JVM тілдерінің Java-ны ығыстырмауының себептері келесідей:
  • Олар соншалықты керемет емес, бәрі оларды алып, оларға ауысады.
  • Олар Java тілімен бір сегментте қолданылады.
  • Java бірте-бірте басқа тілдердің ең жақсысын алады және жақсарады.

Шығару аралықтарының қысқаруына байланысты Java сапасының төмендеуі мүмкін бе?

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

Жоқ деп ойлаймын. Кем дегенде, қазір мен жиі шығарылымдардан жағымды нәрселерді анықтай аламын. Жаңа керемет мүмкіндіктер әлдеқайда жиі пайда болатынын көреміз. Енді тілде жаңа нәрсе пайда болуы үшін 5 жыл күтудің қажеті жоқ. Әрине, қазір Java 8 сияқты үлкен шығарылымдарды күтудің қажеті жоқ, өйткені мүмкіндіктер енді шағын итерацияларда пайда болады.

Жаңа Java нұсқаларында әзірлеушілер үшін ерекше маңызды мүмкіндіктер бар ма?

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

Java-ның соңғы нұсқалары үлгіні сәйкестендіру, мөрленген сыныптар және жазбалар сияқты бірнеше қызықты мүмкіндіктерді енгізді. Мен олардың мүмкіндіктерін қарауды ұсынамын. Әрине, ең маңызды және күтілетін мүмкіндіктер Project Loom және Project Valhalla аясында жоспарланған, бірақ менің ойымша, бұл жобалардағы мүмкіндіктер де біртіндеп шығарылады.

Көктемгі шеңбер: ол әр түрлі қажеттіліктерді қанағаттандыру үшін өзінің экожүйесін кеңейтуді жалғастыра ма?

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

Spring Framework-ке келетін болсақ, оның дамуы Spring Cloud-тың әртүрлі мүмкіндіктерін қолдауға және Spring Boot-ті жергілікті екілік файлдарға - Spring Native жобасына жинақтау мүмкіндігіне бағытталған, ол болашақта Spring Core бөлігі болады. Осыған байланысты көктемгі рефлексия мен динамикалық codeты генерациялаудың белсенді қолданылуына байланысты Micronaut және Quarkus-тан артта қалды. Spring Framework 6-ға қатысты мен сізге 6 көктем және одан кейінгі баяндаманы қарауға кеңес беремін 6 Spring Framework-те қандай жаңалықтар бар? Джокер конференциясынан (Олег Докука мен Алексей Нестеровтен). Олардың негізгілері JDK 17-ге көшу, XML конфигурациясынан және орнатушылар арқылы Autowire-дан бас тарту, Kotlin қолдауын әрі қарай дамыту және Spring Fu жобасы.

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

Көктем, қазіргі уақытта ең танымал Java FW ретінде, алақаннан бас тартқысы келмейді. Әзірлеу тобы көктемгі дамуға бар күш-жігерін салатынына сенімдімін. Көктем көбірек тауашаларды толтырады. Мысалы, Spring Реактивті ағындар/Реактивті бағдарламалау аймағында жобалық реакторымен көп нәрсе жасады. Енді олар RSoket протоколын алға жылжытуда, ол да перспективалы болып көрінеді.

Loom жобасы туралы айтып беріңізші: ол не үшін қажет, ол қандай мәселелерді шешеді?

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

Project Loom бүкіл JVM платформасы және JVM үстіндегі барлық тілдер үшін жаңа тектоникалық ауысымға айналуы мүмкін ең қызықты инновация болуы мүмкін. Project Loom қарапайым әзірлеушілерге соншалықты әсер етпеуі мүмкін, бірақ ол бүкіл экожүйеге, кітапханаларға, фреймворктарға және көп ағынды пайдаланатын басқа JVM тілдеріне әсер етеді. Project Loom жаңа ағынды абстракцияны - виртуалды ағындарды (корутиндерге ұқсас) ұсынады. Егер бұрын Java ағыны операциялық жүйенің (OS) ағынымен тікелей байланыстырылған болса және Java-да жаңа ағынның жасалуы жаңа ОЖ ағынының жасалуына әкелсе, онда виртуалды ағындармен бұл бір-бірден байланыс үзіледі. Жаңа виртуалды ағынды жасау кезінде жаңа ОЖ ағыны жасалмайды және тікелей есептеулерді орындау үшін тасымалдаушы ағындардың бірі (ОЖ ағыны пулының қандай да бір аналогы) қайта пайдаланылады. Осылайша, бір ОЖ ағынының үстінде бірнеше виртуалды ағындар жұмыс істей алады. Есептеу тапсырмалары үшін виртуалды ағындардың бұл моделі ешқандай артықшылық бермейді, керісінше есептеулер жылдамдығын төмендетеді, бірақ HTTP сұрауларын өңдеу, дерекқордан немесе микросервистерден жауаптарды күту сияқты операцияларды блоктау үшін бұл модель елеулі артықшылық. Ағымдағы ағын үлгісімен Java ағынын блоктау/күту операциялық жүйенің бос ағындарына әкелді - бұл ресурстарды ысырап етті және қосымша ОЖ ағындарын жасауды талап етті. Виртуалды ағын үлгісінде виртуалды ағынды блоктау/күту оның үстінде виртуалды ағын жұмыс істеп тұрған тасымалдаушы ағынның босатылуына және оған басқа виртуалды ағынның іске қосылуына әкеледі. Осылайша, ОЖ ағындары тиімдірек пайдаланылады және ұқсас тапсырмаларды орындау үшін олардың азы қажет болады. Тиісінше, кітапханаларды, фреймворктарды және JVM тілдерін өндірушілер өздерінің codeын виртуалды ағындарға бейімдеуге мәжбүр болады. Сондықтан, олар үшін үлкен қайта жазу келе жатыр :) Виртуалды ағын үлгісінен басқа, ағынды ұйымдастыруды жеңілдету үшін жаңа API - құрылымдық параллельдік деп аталатын енгізу жоспарлануда. Енді, мысалы, құрылымдық параллельдік Kotlin coroutines және Scala ZIO-да белсенді қолданылады. Өкінішке орай, JDK нұсқасы және тіпті Project Loom шығарылымы әлі белгісіз. Шығару күні туралы сұраққа Java платформасының бас сәулетшісі Брайан Гетц философиялық фразамен жауап береді: «Ол дайын болады, қашан дайын болады». Сондықтан біз күтеміз және Project Loom эксперименттік құрастыруларын көре аламыз .

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

Loom – бұл OpenJDK және Oracle тобы Java және JVM жүйелеріндегі Concurrency инновацияларымен жұмыс істейтін үлкен қолшатыр жоба: виртуалды ағындар, талшықтар және жалғастар. Сірә, бұл мүмкіндіктерді шығару біртіндеп болады. Қазіргі уақытта Виртуалды ағындарды қолдау үшін тек ерте қол жеткізу құрастырулары бар. Атап айтқанда, виртуалды ағындар туралы айтатын болсақ, оның негізгі мақсаты - кәдімгі платформалық ағындар сияқты семантикасы бар миллиондаған жеңіл ағындарды пайдалану арқылы Java-дағы көп ағынды әзірлеу моделін жеңілдету. Сорғыштың астында бұл ағындар ForkJoinPool ішінде басқарылады және платформа ағындары арқылы қайта пайдаланылады.

Жаһандық трендтер әлемінде Java-ны дамытудың болжамдары қандай - микросервистер, бұлттық архитектура, блокчейн, AI?

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

Жаһандық үрдістер туралы айтатын болсақ, олар көп өзгерген жоқ. Бұрынғыдай, негізгі тенденция Kubernetes және оның айналасындағы инфрақұрылым болып табылады Service mesh . Деректер торы таратылған деректер көздері мен қоймаларды басқаруға арналған абстракция түрі ретінде де танымал болуда .
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION