JavaRush /Java Blog /Random-ID /Tren Java pada tahun 2022: JDK 18 dan 19, Project Loom da...

Tren Java pada tahun 2022: JDK 18 dan 19, Project Loom dan Data mesh

Dipublikasikan di grup Random-ID
Nah, tahun 2022 telah dimulai. Saat kebanyakan orang masih menikmati liburan Tahun Baru dengan sampanye dan Olivier, kita akan membahas tren di dunia Jawa. Mungkin ini akan membantu Anda menganalisis karier Anda, mempelajari teknologi baru, atau membuat rencana pengembangan untuk tahun mendatang. Tren Java pada tahun 2022: JDK 18 dan 19, Project Loom dan Data mesh - 1Pakar dan dosen bahasa Java Andrey Rodionov, serta arsitek solusi di EPAM dan ketua komite program Devoxx Ukraina Oleg Tsal-Tsalko berbicara tentang apa yang menanti Java pada tahun 2022 dan waktu dekat.

Bagaimana prospek Java pada tahun 2022?

Tren Java pada tahun 2022: JDK 18 dan 19, Project Loom dan Data mesh - 2Tahun ini kami mengharapkan rilis dua versi berikutnya: JDK 18 (pada bulan Maret) dan JDK 19 (pada bulan September). Hal-hal yang berpotensi menarik bagi sebagian besar pengembang Java di JDK 18 mungkin termasuk:
  • Server Web Sederhana bawaan, tanpa dukungan untuk wadah servlet, yang dapat digunakan untuk pembuatan prototipe dan pengujian cepat, mirip dengan server web mini serupa di Python, Ruby, PHP.
  • Pencocokan pola terus meningkat.
Sedangkan untuk JDK 19 sudah ada Early-Access Build, namun belum ada daftar resmi apa saja yang rencananya akan dimasukkan ke dalamnya. Saya percaya bahwa JDK 19 setidaknya akan menyertakan prototipe stabil pertama dari Project Loom, yang rancangan spesifikasinya baru-baru ini muncul dan versi terbarunya didasarkan pada JDK 19. Kita akan membicarakan Project Loom lebih detail di bawah.

Di bidang apa saja Java masih menjadi satu-satunya solusi, dan di bidang mana solusi yang lebih baik?

Andrey Rodionov:

Untungnya, kita tidak bisa mengatakan bahwa tidak ada alternatif selain Java untuk area mana pun, namun kita bisa membicarakan Java sebagai semacam sarana emas untuk mengembangkan aplikasi perusahaan, backend, dan layanan mikro. Perlu juga dicatat meningkatnya jumlah distribusi JDK yang berbeda dari vendor yang berbeda (kecuali Oracle): Amazon, Microsoft, Alibaba, Red Hat, Bellsoft (didirikan oleh orang-orang dari Oracle Development Center di St. Petersburg) dan lain-lain. Distribusi lengkap tersedia di sini . Tren Java pada tahun 2022: JDK 18 dan 19, Project Loom dan Data mesh - 3Selalu ada alternatif, namun Java paling banyak digunakan pada backend pengembangan perusahaan. Sebagian besar perusahaan besar memilih Java karena sistemnya yang besar dan kompleks. Alasannya sama: jumlah pengembang dan keahlian di pasar, ekosistem yang besar, dan platform JVM yang kuat.

Bagaimana prospek bahasa jvm lainnya, khususnya Kotlin, dibandingkan dengan Java?

Andrey Rodionov:

Untuk memahami bahasa JVM mana yang populer, cukup buka dokumentasi untuk Spring, Micronaut, Vert.x dan lihat bahasa apa yang contoh kodenya diberikan - Java dan Kotlin akan umum. Tidak dapat dikatakan bahwa ada transisi besar-besaran proyek ke Kotlin, namun popularitasnya untuk backend terus tumbuh dan banyak framework mencoba memasukkannya ke dalam ekosistem mereka. Sedangkan untuk Scala, versi baru sedang dirilis, dan selanjutnya digunakan secara aktif untuk ML, pemrosesan data, dan paradigma pemrograman fungsional yang lebih nyaman.

Oleg Tsal-Tsalko:

Bahasa JVM lainnya cukup menarik dan saat ini sudah menjadi hal yang lumrah jika sebuah proyek menggunakan beberapa bahasa pemrograman. Menurut saya alasan mengapa bahasa JVM bermodel baru tidak dapat menggantikan Java adalah sebagai berikut:
  • Mereka tidak begitu keren sehingga semua orang akan mengambilnya dan beralih ke sana.
  • Mereka digunakan di segmen yang sama dengan Java.
  • Java sedikit demi sedikit mengambil yang terbaik dari bahasa lain dan menjadi lebih baik.

Apakah akan ada penurunan kualitas Java karena interval rilis yang lebih pendek?

Oleg Tsal-Tsalko:

Saya pikir tidak. Setidaknya sekarang saya dapat mengidentifikasi lebih banyak hal positif dari rilis yang sering dilakukan. Kami melihat fitur-fitur baru yang keren lebih sering muncul. Kini Anda tidak perlu menunggu 5 tahun hingga sesuatu yang baru muncul dalam bahasa tersebut. Tentu saja, sekarang Anda tidak boleh mengharapkan rilis sebesar Java 8, karena fitur-fiturnya kini muncul dalam iterasi kecil.

Apakah ada fitur di Java versi baru yang sangat penting bagi pengembang?

Oleg Tsal-Tsalko:

Versi terbaru Java telah memperkenalkan beberapa fitur menarik seperti Pencocokan Pola, Kelas Tertutup, dan Catatan. Saya akan merekomendasikan untuk melihat kemampuan mereka. Tentu saja, fitur-fitur yang paling serius dan diharapkan direncanakan dalam Project Loom dan Project Valhalla, tetapi menurut saya fitur-fitur dalam proyek-proyek ini juga akan dirilis secara bertahap.

Kerangka kerja musim semi: apakah perusahaan akan terus memperluas ekosistemnya untuk memenuhi beragam kebutuhan?

Andrey Rodionov:

Sedangkan untuk Spring Framework, pengembangannya difokuskan pada dukungan berbagai fitur Spring Cloud dan kemampuan untuk mengkompilasi Spring Boot menjadi binari asli - proyek Spring Native, yang rencananya akan menjadi bagian dari Spring Core di masa mendatang. Dalam hal ini, Spring tertinggal dari Micronaut dan Quarkus karena penggunaan aktif refleksi dan pembuatan kode dinamis. Mengenai Spring Framework 6, saya menyarankan Anda untuk menonton laporan Spring 6 and Beyond. Apa yang baru di Spring Framework 6? dari konferensi Joker (dari Oleg Dokuka dan Alexei Nesterov). Kuncinya adalah transisi ke JDK 17, ditinggalkannya Konfigurasi XML dan Autowire melalui setter, pengembangan lebih lanjut dari dukungan Kotlin dan proyek Spring Fu.

Oleg Tsal-Tsalko:

Spring sebagai Java FW terpopuler saat ini tak mau menyerah begitu saja. Saya yakin tim pengembangan akan berupaya sebaik mungkin dalam pengembangan Spring. Musim semi mengisi lebih banyak ceruk. Misalnya, Spring telah melakukan banyak hal di area Aliran Reaktif/Pemrograman Reaktif dengan Reaktor Proyeknya. Sekarang mereka mempromosikan protokol RSoket, yang juga terlihat menjanjikan.

Ceritakan kepada kami tentang proyek Loom: untuk apa, masalah apa yang dipecahkannya?

Andrey Rodionov:

Project Loom mungkin merupakan inovasi paling menarik yang dapat menjadi perubahan tektonik baru untuk seluruh platform JVM dan semua bahasa di atas JVM. Project Loom mungkin tidak terlalu mempengaruhi pengembang biasa, tetapi pasti akan mempengaruhi seluruh ekosistem, perpustakaan, kerangka kerja, dan bahasa JVM lainnya yang menggunakan multithreading. Project Loom memperkenalkan abstraksi thread baru - thread virtual (analog dengan coroutine). Jika sebelumnya thread Java terikat langsung ke thread sistem operasi (OS), dan pembuatan thread baru di Java menyebabkan pembuatan thread OS baru, maka dengan thread virtual hubungan satu-ke-satu ini terputus. Saat membuat thread virtual baru, thread OS baru tidak akan dibuat, dan salah satu yang disebut thread pembawa (semacam analog dari kumpulan thread OS) akan digunakan kembali untuk melakukan perhitungan langsung. Dengan demikian, beberapa thread virtual dapat berjalan di atas satu thread OS. Untuk tugas komputasi, model thread virtual ini tidak memberikan keuntungan apa pun, malah memperlambat kecepatan penghitungan, namun untuk operasi pemblokiran, seperti memproses permintaan HTTP, menunggu respons dari database atau dari layanan mikro, model ini akan menjadi a keuntungan yang signifikan. Faktanya adalah bahwa dengan model threading saat ini, memblokir/menunggu pada thread Java menyebabkan thread OS menganggur - ini adalah pemborosan sumber daya dan memerlukan pembuatan lebih banyak thread OS. Dalam model thread virtual, memblokir/menunggu pada thread virtual akan menyebabkan thread pembawa di atas thread virtual tersebut berjalan dilepaskan dan thread virtual lain berjalan di atasnya. Dengan cara ini, thread OS akan digunakan lebih optimal dan lebih sedikit thread yang diperlukan untuk melakukan tugas serupa. Oleh karena itu, produsen perpustakaan, kerangka kerja, dan bahasa JVM harus mengadaptasi kode mereka untuk thread virtual. Oleh karena itu, penulisan ulang besar-besaran akan terjadi pada mereka :) Selain model thread virtual, direncanakan juga untuk memperkenalkan API baru untuk menyederhanakan orkestrasi thread - yang disebut konkurensi terstruktur. Sekarang, misalnya, konkurensi terstruktur secara aktif digunakan di coroutine Kotlin dan Scala ZIO. Sayangnya, versi JDK dan bahkan tahun rilis Project Loom masih belum diketahui. Ketika ditanya tentang tanggal rilis, kepala arsitek platform Java, Brian Goetz, menjawab dengan kalimat filosofis: “Ini akan siap, kapan akan siap.” Oleh karena itu, kami menunggu dan dapat mencoba versi eksperimental Project Loom .

Oleg Tsal-Tsalko:

Loom adalah proyek payung besar, di mana tim OpenJDK dan Oracle mengerjakan inovasi Konkurensi di Java dan JVM: thread virtual, fiber, dan kelanjutan. Kemungkinan besar, perilisan fitur-fitur tersebut akan dilakukan secara bertahap. Saat ini hanya ada build Akses Awal untuk dukungan thread Virtual. Secara khusus berbicara tentang thread virtual, tujuan utamanya adalah untuk menyederhanakan model pengembangan multi-thread di Java dengan menggunakan jutaan thread ringan dengan semantik yang sama dengan thread platform biasa. Di bawah tenda, thread ini akan dikelola di dalam ForkJoinPool dan digunakan kembali oleh thread platform.

Apa perkiraan perkembangan Java di dunia tren global - layanan mikro, arsitektur cloud, blockchain, AI?

Andrey Rodionov:

Jika kita berbicara tentang tren global, tidak banyak yang berubah. Seperti sebelumnya, tren utama terus berlanjut pada Kubernetes dan infrastruktur di sekitarnya dalam bentuk Service mesh . Data mesh juga mendapatkan popularitas sebagai semacam abstraksi untuk mengelola sumber dan penyimpanan data terdistribusi.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION