Pendahuluan

Yang penasaran dengan versi release dari Java JDK, bisa dilihat di sini

Sekarang akan muncul pertanyaan lain..

Bagaimana menentukan fitur-fitur apa saja yang akan direlease di JDK version x ?

Siapa yang menentukan dan bagaimana prosesnya ?


Proses pemilihan fitur yang akan direlease untuk Java x

Proses nya dinamakan JCP (Java Community Process) Program.

dikutip dari official websitenya, di sini, maka :

JCP program adalah mekanisme untuk membangun spesifikasi teknis dari teknologi Java.

Didalam program JCP ini, Java Developer dari seluruh dunia bergabung untuk berkontribusi dalam merancang, membuat, mengimplementasikan spesifikasi standar dan API untuk teknologi Java.

Anggotanya terdiri dari anggota aktif dari perusahaan-perusahaan yang berpartisipasi, individu, atau publik yang tertarik dalam mendefinisikan dan mengimplementasikan fitur teknologi Java.

Anggota-anggota ini nantinya akan bergabung dalam apa yang namanya Group Expert. Dari sana kemudian akan muncul lagi istilahnya Executive Committe, Specification Lead, Maintenance Lead.

Proses JCP ini sendiri sudah dimulai semenjak 8 Desember 1998, dan semenjak itu sudah mengalami banyak perbaikan dan perubahan proses dalam mendefinisikan dan mengimplementasikan apa saja yang akan direlease di version Java x.


Bagaimana alur prosesnya JCP ?

Alur proses nya sebenarnya cukup kompleks, seperti di gambar berikut ini :

Alur Program JCP

(gambar diambil dari : https://jcp.org/en/introduction/timeline)

Mari kita telusuri satu persatu :

  • fitur yang akan direlease harus didahului dengan dokumen JSR (Java Specification Request), yaitu dokumen teknis berisikan fitur baru yang akan diimplementasi di release berikutnya.
    JSR ini bisa datang dari Group Expert atau Project, atau dari JEP (Java Enhancement Proposal), atau juga dari anggota individu JCP. Tapi ujung-ujungnya diformulasi dalam sebuah JSR.

  • JSR yang ada akan dipilih oleh Executive Committe melalui voting.

  • Setelah JSR dipilih, maka akan ada pembentukan Expert Group dan juga Specification Lead. Expert group akan menginformasikan Final Release dari Specification, dan Reference Implementation dari Final Specification, dan juga Technology Compatibility Kit (TCK). TCK ini dipergunakan sebagai alat verifikasi bagi implementasi JSR tersebut. Spesification Lead akan memimpin proses dari spesifikasi dan implementasinya.

  • Kemudian ada proses review, feedback, vote lagi sampai terakhir Final Spec nya completed.

  • Terakhir JSR terpilih akan direlease menjadi Java xx RELEASE.

  • JSR tersebut masuk ke tahapan Maintenance, yang akan dipimpin oleh Maintenance Lead.

Demikian alur sederhana dari sebuah Release dari Java xx.


Siapa saja yang terlibat dalam proses JCP ini ?

Ada beberapa kelompok yang terlibat dalam proses JCP ini, yaitu :

  • Program Management Office (PMO), yaitu grup dari Oracle yang tugasnya lebih kepada administrasi proses yang ada di Java Community Process (JCP) dan proses pemilihan Executive Committe (EC).

  • Group, yaitu individu dan organisasi yang mempunyai ketertarikan atau kepentingan yang spesifik terhadap sebuah teknologi. Misalnya individu dan organisasi yang fokus ke Security, Jaringan, Memori, dll.

  • Executive Committe (EC), yaitu sekitar 18 orang yang dipilih dalam proses approval dan voting dalam penentuan Teknologi Java yang mau dispesifikasi di Release xx di proses JCP. Orang-orangnya terdiri dari representasi :

    • vendor Java seperti IBM, Redhat
    • “end user” seperti SAP, Credit Suisse
    • IDE vendor seperti Eclipse, JetBrains
    • cloud provider seperti Alibaba
    • Java User Group, yaitu group Java tertentu di negara/kota, seperti London Java Community.
    • Dan tentunya ada 1 kursi permanent untuk Oracle :).

  • Expert Group, yaitu anggota dari JCP yang membuat, merevisi, mendevelop spesifikasi dari JSR.

  • Specification Lead, yaitu individu atau representasi dari group/perusahaan yang memimpin sebuah Expert Group dan bertanggung jawab biasanya dalam memastikan deliverable misalnya untuk sebuah JSR.

  • Contributor, yaitu anggota dari JCP yang bukan anggota dari Expert Group dari sebuah JSR, tapi berdasarkan pertimbangan Specification Lead, dianggap berkontribusi terhadap sebuah JSR.

Kesimpulan

Demikianlah proses release di Java xx.

Banyak proses yang dilakukan agar sebuah release Java terjadi.

Didalamnya juga terdapat banyak kelompok dan pikiran yang mempunyai kepentingan masing-masing.

Oleh karenanya proses JCP (Java Community Process) ini harus dijalani agar platform yang direlease tetap bisa mempunyai standar kualitas yang baik.

Memang diperlukan kompromi mengenai alur yang dibutuhkan antara kecepatan dengan tetap mempertahankan kualitas dari release yang dilakukan. Apalagi mengingat sejak java 9, release dari Java menjadi terjadwal setiap 6 bulan sekali.

Tapi begitulah, itulah namanya proses dan evolusi dalam software engineering.

Thats it. !