Mengenali Perbedaan OpenJDK dan JDK
Banyak programmer java, dari dasar hingga bahkan yang sudah berpengalaman berapa tahun sering kebingungan jika jika ditanya, apa perbedaan OpenJDK dengan JDK. Kebanyakan mereka pasti akan menjawab OpenJDK adalah JDK yang bersifat open source (karena merujuk dari namanya) sedangkan JDK adalah yang berbayar dari Oracle. Jawaban yang sebenarnya menurut saya tidak begitu pas. Pada artikel kali ini, saya akan coba jelaskan tentang apa itu OpenJDK, lalu kita akan coba bandingkan dengan JDK. Pembahasan terkait ini juga saya ulas pada course saya yang berjudul Membangun Aplikasi Java Cloud Native dengan Quarkus dan GraalVM
- OpenJDK
Definisi dari OpenJDK sendiri kurang lebih sebenarnya adalah, implementasi yang bersifat open source dari JavaSE. Jika anda membaca tulisan saya sebelumnya tentang beragam edisi yang ada pada Java. Harusnya kita sudah mengetahui, bahwa beragam edisi tersebut hanyalah sebuah spesifikasi, dan sebuah spesifikasi tidak akan dapat dijalankan, tanpa implementasi. Nah, OpenJDK inilah yang merupakan implementasi versi open source dari JavaSE. Source code dari OpenJDK sendiri dapat anda temui di Github.
Karena sifatnya yang open source, maka banyak vendor yang kemudian membangun OpenJDK-nya sendiri sesuai kebutuhan masing – masing perusahaan dengan berbagai jenis lisensi dan dukungan. Misalnya yang paling populer adalah Temurin, merupakan OpenJDK yang di-build oleh Eclipse Adoptium. Lalu ada Azul Zulu, IBM, RedHat, Microsoft dan berbagai Vendor Cloud dan distro Linux juga biasanya merilis yang di-build oleh mereka sendiri.
- JDK
Lalu JDK di sini memiliki dua artian, JDK sebagai merek ataukah JDK sebagai bagian dari Platform Java? Jika yang dimaksud adalah sebagai merek, maka JDK ini adalah menjadi milik Oracle, dan bersifat closed source. Ada beberapa fitur yang ditambahkan pada JDK Oracle, dan lisensi yang dikenaipun bisa beragam dan bisa berubah dari satu versi ke versi yang lain.
- Manakan Yang Sebaiknya Digunakan
Secara teknis antara OpenJDK dan JDK (Build dari Oracle) tidak memiliki perbedaan, karena aplikasi java, anda akan tetap dapat dijalankan dengan hasil yang sama. Karena baik pada OpenJDK atau JDK telah diuji menggunakan TCK (Technical Compatibility Kit), yang memastikan bahwa setiap build dari OpenJDK (dan juga JDK) telah sesuai dengan spesifikasi JavaSE. Perbedaannya bisa jadi pada performa, atau size memori yang digunakan untuk menjalankan aplikasi java, dan fitur – fitur lainnya yang ditambahkan sebagai added value oleh masing – masing perusahaan yang merilisnya.
Sedangkan jika dari sisi update versi, baik itu berupa bug fixing ataupun patch security, selalu dilakukan terlebih dahulu pada OpenJDK, lalu kemudian perubahan tersebut akan didistribusikan oleh masing – masing vendor yang mempublikasikan JDK tersebut.