JavaRush /Java blogi /Random-UZ /2022-yilda Java tendentsiyalari: JDK 18 va 19, Project Lo...

2022-yilda Java tendentsiyalari: JDK 18 va 19, Project Loom va Data mesh

Guruhda nashr etilgan
Xo'sh, 2022 yil boshlandi. Ko'pchilik hali ham shampan va Olivier bilan Yangi yil bayramlarida bo'lsa-da, biz Java dunyosidagi tendentsiyalar haqida gaplashamiz. Ehtimol, bu sizning martabangizni tahlil qilishga, yangi texnologiyani o'rganishga yoki kelgusi yil uchun rivojlanish rejasini ishlab chiqishga yordam beradi. 2022 yildagi Java tendentsiyalari: JDK 18 va 19, Project Loom va Data mesh - 1Java tili boʻyicha mutaxassis va oʻqituvchi Andrey Rodionov, shuningdek, EPAM yechim arxitektori va Devoxx Ukraina dastur qoʻmitasi rahbari Oleg Tsal-Tsalko 2022-yilda va yaqin kelajakda Java-ni nimalar kutayotgani haqida gapirdi.

2022 yilda Java uchun qanday istiqbollar bor?

2022 yildagi Java tendentsiyalari: JDK 18 va 19, Project Loom va Data mesh - 2Bu yil biz keyingi ikkita versiyaning chiqarilishini kutmoqdamiz: JDK 18 (martda) va JDK 19 (sentyabrda). JDK 18-dagi ko'pchilik Java dasturchilari uchun potentsial qiziqarli narsalar quyidagilarni o'z ichiga olishi mumkin:
  • Python, Ruby, PHP-dagi o'xshash mini veb-serverlarga o'xshash tezkor prototiplash va sinovdan o'tkazish uchun ishlatilishi mumkin bo'lgan servlet konteynerini qo'llab-quvvatlamaydigan o'rnatilgan Simple Web Server.
  • Shakl moslashuvi yaxshilanishda davom etmoqda.
JDK 19 ga kelsak, allaqachon Erta Access Build mavjud, ammo unga kiritilishi rejalashtirilgan narsalarning rasmiy ro'yxati hali ham yo'q. Men JDK 19 hech bo'lmaganda Project Loom ning birinchi barqaror prototipini o'z ichiga olishiga ishonmoqchiman, uning loyihasi spetsifikatsiyalari yaqinda paydo bo'lgan va so'nggi tuzilishi JDK 19 ga asoslangan. Biz quyida Project Loom haqida batafsilroq gaplashamiz.

Qaysi sohalar uchun Java yagona yechim bo'lib qolmoqda va qayerda afzalroq?

Andrey Rodionov:

Yaxshiyamki, biz biron bir soha uchun Java-ga alternativa yo'q deb ayta olmaymiz, lekin Java haqida korporativ ilovalar, backendlar va mikroservislarni ishlab chiqish uchun o'ziga xos oltin vosita sifatida gapirishimiz mumkin. Bundan tashqari, turli sotuvchilardan (Oracle'dan tashqari) turli xil JDK distributivlari soni ortib borayotganini ta'kidlash kerak: Amazon, Microsoft, Alibaba, Red Hat, Bellsoft (Sankt-Peterburgdagi Oracle Development Center odamlari tomonidan asos solingan) va boshqalar. To'liq tarqatish to'plami bu erda mavjud . 2022 yildagi Java tendentsiyalari: JDK 18 va 19, Project Loom va Data mesh - 3Har doim muqobil variantlar mavjud, ammo Java korporativ rivojlanishda eng ko'p foydalanishni topadi. Aksariyat yirik kompaniyalar katta va murakkab tizimlari uchun Java ni tanlaydilar. Sabablari bir xil: ishlab chiquvchilar soni va bozordagi tajriba, ulkan ekotizim va kuchli JVM platformasi.

Boshqa jvm tillari, xususan Kotlin, Java bilan solishtirganda qanday istiqbollarga ega?

Andrey Rodionov:

Qaysi JVM tillari mashhurligini tushunish uchun Spring, Micronaut, Vert.x uchun hujjatlarni oching va kod misollari qaysi tillarda berilganligini ko'ring - Java va Kotlin keng tarqalgan bo'ladi. Loyihalarning Kotlinga katta o'tishi bor deb aytish mumkin emas, lekin uning backend uchun mashhurligi o'sishda davom etmoqda va ko'plab ramkalar uni o'z ekotizimiga qo'shishga harakat qilmoqda. Scala-ga kelsak, yangi versiyalar chiqarilmoqda va u keyinchalik ML, ma'lumotlarni qayta ishlash va funktsional dasturlash paradigmasi qulayroq bo'lgan joylarda faol qo'llaniladi.

Oleg Tsal-Tsalko:

Boshqa JVM tillari juda jozibali va bugungi kunda loyiha uchun bir nechta dasturlash tillaridan foydalanish odatiy holdir. Menimcha, yangi paydo bo'lgan JVM tillari Java-ni almashtira olmasligining sabablari quyidagilar:
  • Ular shunchalik ajoyib emaski, hamma ularni olib, ularga o'tadi.
  • Ular Java bilan bir xil segmentda qo'llaniladi.
  • Java asta-sekin boshqa tillardan eng yaxshisini oladi va yaxshilanadi.

Qisqa vaqt oralig'i tufayli Java sifati pasayadimi?

Oleg Tsal-Tsalko:

Menimcha, yo'q. Hech bo'lmaganda endi men tez-tez chiqadigan narsalardan ko'proq ijobiy narsalarni aniqlay olaman. Biz yangi ajoyib xususiyatlar tez-tez paydo bo'lishini ko'ramiz. Endi tilda yangi narsa paydo bo'lishi uchun 5 yil kutishingiz shart emas. Albatta, endi siz Java 8 kabi ulkan nashrlarni kutmasligingiz kerak, chunki xususiyatlar endi kichik iteratsiyalarda paydo bo'ladi.

Java-ning yangi versiyalarida ishlab chiquvchilar uchun ayniqsa muhim bo'lgan xususiyatlar mavjudmi?

Oleg Tsal-Tsalko:

Java-ning so'nggi versiyalarida Pattern Matching, Sealed Classes va Records kabi bir nechta qiziqarli xususiyatlar taqdim etildi. Men ularning imkoniyatlarini ko'rib chiqishni tavsiya qilaman. Albatta, eng jiddiy va kutilgan xususiyatlar Project Loom va Project Valhalla doirasida rejalashtirilgan, ammo menimcha, bu loyihalar doirasidagi xususiyatlar ham asta-sekin chiqariladi.

Bahor doirasi: u o'z ekotizimini turli ehtiyojlarga mos ravishda kengaytirishda davom etadimi?

Andrey Rodionov:

Spring Framework-ga kelsak, uning rivojlanishi Spring Cloud-ning turli xususiyatlarini qo'llab-quvvatlashga va Spring Boot-ni mahalliy ikkiliklarga - Spring Native loyihasiga kompilyatsiya qilish qobiliyatiga qaratilgan bo'lib, kelajakda Spring Core-ning bir qismi bo'lishi rejalashtirilgan. Bu borada Spring, aks ettirish va dinamik kod ishlab chiqarishdan faol foydalanish tufayli Micronaut va Quarkusdan orqada qoldi. Spring Framework 6 haqida men sizga 6-bahor va undan keyingi hisobotni tomosha qilishingizni maslahat beraman Spring Framework 6-da nima yangiliklar? Joker konferensiyasidan (Oleg Dokuka va Aleksey Nesterovdan). Ularning asosiylari JDK 17 ga o'tish, XML konfiguratsiyasi va sozlash vositalari orqali Autowire-dan voz kechish, Kotlin qo'llab-quvvatlashini yanada rivojlantirish va Spring Fu loyihasidir.

Oleg Tsal-Tsalko:

Bahor, bugungi kunda eng mashhur Java FW sifatida, kaftdan voz kechishni istamaydi. Ishonchim komilki, ishlab chiqish jamoasi bahorgi rivojlanish uchun bor kuchini sarflaydi. Bahor tobora ko'proq bo'shliqlarni to'ldiradi. Misol uchun, Spring o'zining Reaktor loyihasi bilan Reaktiv oqimlar/Reaktiv dasturlash sohasida ko'p ishlarni amalga oshirdi. Endi ular RSoket protokolini targ'ib qilmoqdalar, bu ham istiqbolli ko'rinadi.

Loom loyihasi haqida gapirib bering: u nima uchun, u qanday muammolarni hal qiladi?

Andrey Rodionov:

Project Loom, ehtimol, eng qiziqarli yangilik bo'lib, u butun JVM platformasi va JVM ustidagi barcha tillar uchun yangi tektonik siljish bo'lishi mumkin. Project Loom oddiy ishlab chiquvchilarga unchalik ta'sir qilmasligi mumkin, ammo bu, albatta, butun ekotizimga, kutubxonalarga, ramkalarga va multithreadingdan foydalanadigan boshqa JVM tillariga ta'sir qiladi. Project Loom yangi ip abstraktsiyasini taqdim etadi - virtual iplar (koroutinlarga o'xshash). Agar ilgari Java ipi to'g'ridan-to'g'ri operatsion tizim (OT) ipiga bog'langan bo'lsa va Java-da yangi ipning yaratilishi yangi OS ipining yaratilishiga olib kelgan bo'lsa, virtual iplar bilan bu yakka-yakka munosabatlar buziladi. Yangi virtual ish zarrachasini yaratishda yangi operatsion tizim yaratilmaydi va to'g'ridan-to'g'ri hisob-kitoblarni amalga oshirish uchun tashuvchi deb ataladigan oqimlardan biri (OS iplar pulining qandaydir analogi) qayta ishlatiladi. Shunday qilib, bir OS ipi ustida bir nechta virtual oqimlar ishlashi mumkin. Hisoblash vazifalari uchun virtual iplarning ushbu modeli hech qanday afzalliklarni bermaydi va hisob-kitoblar tezligini sekinlashtiradi, ammo HTTP so'rovlarini qayta ishlash, ma'lumotlar bazasidan yoki mikroservislardan javoblarni kutish kabi operatsiyalarni blokirovka qilish uchun ushbu model bo'ladi. muhim afzallik. Haqiqat shundaki, joriy tirqish modelida Java ipini bloklash/kutish OS ishlamay qolishiga olib keldi - bu resurslarni behuda sarflash edi va ko'proq OS tishlarini yaratishni talab qildi. Virtual ip modelida virtual ish zarrachasini bloklash/kutish uning ustida virtual ishlayotgan tashuvchi ipning chiqarilishiga va uning ustida boshqa virtual ipning ishlashiga olib keladi. Shunday qilib, OS iplaridan optimalroq foydalaniladi va shunga o'xshash vazifalarni bajarish uchun ulardan kamroq talab qilinadi. Shunga ko'ra, kutubxonalar, ramkalar va JVM tillari ishlab chiqaruvchilari o'z kodlarini virtual oqimlar uchun moslashtirishlari kerak. Shuning uchun, ular uchun katta qayta yozish keladi :) Virtual ip modelidan tashqari, ip orkestrini soddalashtirish uchun yangi API-ni ham joriy etish rejalashtirilgan - tuzilgan koncurrency deb ataladi. Endi, masalan, Kotlin coroutines va Scala ZIO-da tuzilgan koncurrency faol qo'llaniladi. Afsuski, JDK versiyasi va hatto Project Loom-ning chiqarilgan yili hali ham noma'lum. Chiqarish sanasi haqida so'ralganda, Java platformasining bosh me'mori Brayan Gyotz falsafiy ibora bilan javob beradi: "U tayyor bo'lganda, tayyor bo'ladi." Shuning uchun biz kutmoqdamiz va Project Loom-ning eksperimental tuzilishini sinab ko'rishimiz mumkin .

Oleg Tsal-Tsalko:

Loom - bu katta soyabon loyihasi bo'lib, uning doirasida OpenJDK va Oracle jamoasi Java va JVM-dagi Concurrency innovatsiyalari: virtual iplar, tolalar va davomlar ustida ishlamoqda. Katta ehtimol bilan, ushbu xususiyatlarning chiqarilishi asta-sekin bo'ladi. Ayni paytda faqat Virtual ish zarralarini qo'llab-quvvatlash uchun erta kirish tuzilmalari mavjud. Xususan, virtual ish zarralari haqida gapiradigan bo'lsak, uning asosiy maqsadi oddiy platformalar bilan bir xil semantikaga ega bo'lgan millionlab engil iplardan foydalangan holda Java-da ko'p tarmoqli rivojlanish modelini soddalashtirishdir. Kaput ostida bu iplar ForkJoinPool ichida boshqariladi va platforma iplari tomonidan qayta ishlatiladi.

Global tendentsiyalar - mikroservislar, bulutli arxitektura, blokcheyn, sun'iy intellekt dunyosida Java rivojlanishi uchun qanday prognozlar mavjud?

Andrey Rodionov:

Agar global tendentsiyalar haqida gapiradigan bo'lsak, ular unchalik o'zgarmagan. Avvalgidek, asosiy tendentsiya Kubernetes va uning atrofidagi infratuzilma bo'lib qolmoqda Service mesh . Ma'lumotlar tarmog'i, shuningdek, tarqatilgan ma'lumotlar manbalari va saqlash joylarini boshqarish uchun o'ziga xos mavhumlik sifatida mashhurlik kasb etmoqda.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION