JavaRush /Java блогу /Random-KY /Java тенденциялары 2022: JDK 18 жана 19, Project Loom жан...

Java тенденциялары 2022: JDK 18 жана 19, Project Loom жана Data сеткасы

Группада жарыяланган
2022-жыл башталды. Көпчүлүк адамдар шампан жана Оливье менен жаңы жылдык майрамдарда дагы эле болсо, биз Java дүйнөсүндөгү тенденциялар жөнүндө сүйлөшөбүз. Балким, бул сизге карьераңызды анализдөөгө, жаңы технологияны үйрөнүүгө же келерки жылга өнүгүү планын түзүүгө жардам берет. 2022-жылдагы Java тенденциялары: JDK 18 жана 19, Project Loom жана Data сеткасы - 1Java тor боюнча адис жана окутуучу Андрей Родионов, ошондой эле EPAMдагы чечимдердин архитектору жана Devoxx Украинанын программалык комитетинин башчысы Олег Цал-Цалько 2022-жылы жана жакынкы келечекте Javaны эмне күтүп жатканы тууралуу айтып беришти.

2022-жылы Java үчүн кандай перспективалар бар?

2022-жылдагы Java тенденциялары: JDK 18 жана 19, Project Loom жана Data сеткасы - 2Бул жылы биз кийинки эки versionнын чыгышын күтөбүз: JDK 18 (март айында) жана JDK 19 (сентябрда). JDK 18деги көпчүлүк Java иштеп чыгуучулары үчүн потенциалдуу кызыктуу болушу мүмкүн:
  • Python, Ruby, PHP сыяктуу мини веб-serverлерге окшош, тез прототиптөө жана тестирлөө үчүн колдонула турган сервлет контейнеринин колдоосу жок орнотулган Simple Web Server.
  • Үлгү дал келүүсүн жакшыртууну улантууда.
JDK 19га келсек, буга чейин эле Эрте мүмкүндүк алуу бар, бирок ага эмнени киргизүү пландаштырылганынын расмий тизмеси дагы деле жок. Мен JDK 19 жок дегенде Project Loom биринчи туруктуу прототибин камтыйт деп ишенгим келет, анын долбоору спецификациялары жакында пайда болгон жана анын акыркы түзүлүшү JDK 19га негизделген. Биз төмөндө Токмок долбоору жөнүндө кененирээк сүйлөшөбүз.

Кайсы аймактар ​​үчүн Java жалгыз чечим бойдон калууда жана ал кайсы жерде артыкчылыктуу?

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

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

Башка jvm тилдеринин, атап айтканда Котлиндин Java менен салыштырганда кандай перспективалары бар?

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

Кайсы JVM тилдери популярдуу экенин түшүнүү үчүн Spring, Micronaut, Vert.x documentтерин ачып, code мисалдары кайсы тилдерде берилгенин көрүңүз - Java жана Kotlin жалпы болот. Долбоорлордун Котлинге массалык түрдө өтүүсү бар деп айтууга болбойт, бирок анын бэкенд үчүн популярдуулугу өсүүдө жана көптөгөн алHowтар ​​аны өзүнүн экосистемасына кошууга аракет кылып жатышат. Scalaга келсек, жаңы versionлары чыгарылып жатат жана ал андан ары ML, маалыматтарды иштетүү жана функционалдык программалоо парадигмасы ыңгайлуураак жерде активдүү колдонулат.

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

Башка JVM тилдери абдан жагымдуу жана бүгүнкү күндө долбоор үчүн бир нече программалоо тилдерин колдонуу нормалдуу көрүнүш. Менимче, жаңы JVM тилдеринин Java тorн алмаштыра албастыгынын себептери төмөнкүдөй:
  • Алар ушунчалык сонун эмес, баары аларды алып, аларга которулат.
  • Алар Java менен бир сегментте колдонулат.
  • Java акырындык менен башка тилдердин эң жакшысын алып, жакшырып баратат.

Чыгаруу аралыгы кыскаргандыктан Java сапатынын төмөндөшү болобу?

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

Жок деп ойлойм. Жок дегенде азыр мен тез-тез чыгуулардан жакшы нерселерди аныктай алам. Жаңы сонун функциялар көп пайда болуп жатканын көрүп жатабыз. Эми тилде жаңы нерсе пайда болушу үчүн 5 жыл күтүүнүн кереги жок. Албетте, азыр Java 8 сыяктуу чоң релиздерди күтпөш керек, анткени функциялар азыр кичинекей итерацияларда пайда болот.

Javaнын жаңы versionларында иштеп чыгуучулар үчүн өзгөчө маанилүү функциялар барбы?

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

Javaнын акыркы versionларында үлгүлөрдү далдаштыруу, мөөр басылган класстар жана жазуулар сыяктуу бир нече кызыктуу функциялар киргизилген. Мен алардын мүмкүнчүлүктөрүн карап чыгууну сунуштайт элем. Албетте, эң олуттуу жана күтүлгөн өзгөчөлүктөр Project Loom жана Project Valhalla алкагында пландаштырылууда, бирок мен бул долбоорлордун ичиндеги функциялар да акырындык менен чыгарылат деп ойлойм.

Жазгы алHow: ал ар түрдүү муктаждыктарга жооп берүү үчүн өзүнүн экосистемасын кеңейтүүнү улантабы?

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

Жазгы алHowтарга келсек, аны иштеп чыгуу Spring Cloud'тун ар кандай өзгөчөлүктөрүн колдоого жана Spring Bootту түпкү бинардык системага - Spring Native долбооруна компиляциялоо мүмкүнчүлүгүнө багытталган, ал келечекте Spring Coreдун бир бөлүгү болуу пландаштырылган. Бул жагынан алганда, жазгы чагылдыруу жана динамикалык code генерациялоону жигердүү колдонуу менен Micronaut жана Quarkus артта калган. Жазгы алHow 6 боюнча, мен сизге 6-жаз жана андан кийинки отчетту көрүүнү сунуштайм. Жазгы алHow 6да эмне жаңылык бар? Джокер конференциясынан (Олег Докука менен Алексей Нестеровдон). Негизгилери JDK 17ге өтүү, XML конфигурациясынан жана орнотуучулар аркылуу Autowireден баш тартуу, Котлин колдоосун жана Spring Fu долбоорун андан ары өнүктүрүү.

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

Жаз, бүгүнкү күндө эң популярдуу Java FW катары, алакандан баш тарткысы келбейт. Өнүктүрүү тобу жазгы өнүгүүгө бардык күч-аракетин жумшаарына ишенем. Жаз уламдан-улам көбөйөт. Мисалы, Spring өзүнүн Долбоордук Реактору менен Реактивдүү Агымдар/Реактивдүү Программалоо чөйрөсүндө көп иштерди жасады. Азыр алар RSoket протоколун алдыга жылдырып жатышат, ал дагы келечектүү көрүнөт.

Loom долбоору жөнүндө айтып берсеңиз: ал эмне үчүн, ал кандай көйгөйлөрдү чечет?

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

Project Loom бул, балким, эң кызыктуу инновация, ал бүт JVM платформасы жана JVMдин үстүндөгү бардык тилдер үчүн жаңы тектоникалык жылыш болуп калышы мүмкүн. Project Loom жөнөкөй иштеп чыгуучуларга анчалык таасир этпеши мүмкүн, бирок ал бүтүндөй экосистемага, китепканаларга, фреймворкторго жана multithreading колдонгон башка JVM тилдерине таасир этет. Project Loom жаңы жиптин абстракциясын сунуштайт - виртуалдык жиптер (корутиндерге окшош). Эгерде мурда Java жипти операциялык системанын (OS) жипине түздөн-түз байланган болсо жана Java-да жаңы жиптин жаралышы жаңы OS жипинин түзүлүшүнө алып келген болсо, виртуалдык жиптер менен бул бирден-бир байланыш бузулат. Жаңы виртуалдык жипти түзүүдө жаңы OS жип түзүлбөйт жана алып жүрүүчү жиптердин бири (OS жип пулунун кандайдыр бир аналогу) түз эсептөөлөрдү жүргүзүү үчүн кайра колдонулат. Ошентип, бир OS жипинин үстүндө бир нече виртуалдык жиптер иштей алат. Эсептөө тапшырмалары үчүн виртуалдык жиптердин бул модели эч кандай артыкчылыктарды бербейт, тескерисинче, эсептөөлөрдүн ылдамдыгын жайлатат, бирок HTTP сурамдарын иштетүү, маалымат базасынан же микросервистерден жоопторду күтүү сыяктуу операцияларды бөгөттөө үчүн бул модель олуттуу артыкчылык. Чындыгында, учурдагы жип модели менен Java жипинде бөгөт коюу/күтүү OS жиптеринин иштебей калышына алып келди - бул ресурстарды текке кетирди жана көбүрөөк OS жиптерин түзүүнү талап кылды. Виртуалдык жип моделинде виртуалдык жипти бөгөттөө/күтүү анын үстүндө виртуалдык жип иштеп жаткан алып жүрүүчү жиптин бошотулушуна жана ага башка виртуалдык жиптин иштешине алып келет. Ошентип, OS жиптери оптималдуураак колдонулат жана окшош тапшырмаларды аткаруу үчүн алардын азыраактары керектелет. Демек, китепканалардын, фреймворктордун жана JVM тилдеринин өндүрүүчүлөрү өздөрүнүн codeун виртуалдык жиптерге ылайыкташтырышы керек. Ошондуктан, алар үчүн чоң кайра жазуу келе жатат :) Виртуалдык жип моделинен тышкары, жиптерди башкарууну жөнөкөйлөштүрүү үчүн жаңы API - структураланган параллелдүүлүк деп аталганды киргизүү пландаштырылууда. Азыр, мисалы, структураланган параллелдүүлүк Kotlin coroutines жана Scala ZIOдо активдүү колдонулат. Тилекке каршы, JDK versionсы жана ал тургай Project Loom чыгарган жылы дагы белгисиз. Java платформасынын башкы архитектору Брайан Гетц релиз датасы тууралуу суроого: "Ал даяр болот, качан даяр болот" деген философиялык сөз айкашы менен жооп берет. Ошондуктан, биз күтүп жатабыз жана Project Loom эксперименталдык түзүлүшүн сынап көрүшүбүз мүмкүн .

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

Loom бул чоң чатыр долбоору, анын алкагында OpenJDK жана Oracle командасы Java жана JVMдеги Concurrency инновацияларынын үстүндө иштеп жатат: виртуалдык жиптер, жиптер жана улантуулар. Кыязы, бул өзгөчөлүктөрдү чыгаруу акырындык менен болот. Учурда Виртуалдык жиптерди колдоо үчүн Эрте мүмкүндүк түзүмдөрү гана бар. Тактап айтканда, виртуалдык жиптер жөнүндө айтсак, анын негизги максаты кадимки платформа жиптери сыяктуу семантикасы бар миллиондогон жеңил жиптерди колдонуу менен Javaдагы көп жиптүү өнүктүрүү моделин жөнөкөйлөтүү. Капоттун астында бул жиптер ForkJoinPool ичинде башкарылат жана платформа жиптери тарабынан кайра колдонулат.

Дүйнөлүк тенденциялар – микросервистер, булут архитектурасы, блокчейн, AI дүйнөсүндө Java-нын өнүгүүсү боюнча кандай божомолдор бар?

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

Эгерде дүйнөлүк тенденциялар жөнүндө айта турган болсок, алар көп деле өзгөргөн жок. Мурдагыдай эле, негизги тенденция Kubernetes жана анын тегерегиндеги инфраструктура болуп калууда . Маалымат торлору бөлүштүрүлгөн маалымат булактарын жана сактагычтарды башкаруу үчүн абстракциянын бир түрү катары популярдуулукка ээ болууда .
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION