Beyond Java: Bahasa pemrograman di JVM

Jika ada bahasa yang dikenal dan terbukti kuantitasnya bagi pengembang, itu adalah Java. Pengembang perusahaan, pengembang web, pengembang seluler, dan banyak lagi lainnya, telah membuat Java ada di mana-mana dan berkontribusi pada budaya dukungan yang sangat besar di sekitar Java.

Terlebih lagi, Java runtime, atau Java Virtual Machine (JVM), telah menjadi ekosistem perangkat lunaknya sendiri. Selain Java, banyak bahasa lain yang telah memanfaatkan Java Virtual Machine untuk menjadi alat pengembangan perangkat lunak yang kuat dan berharga dengan sendirinya.

Menggunakan JVM sebagai runtime membawa serta beberapa keuntungan. JVM telah disempurnakan selama beberapa dekade, dan dapat menghasilkan kinerja tinggi jika digunakan dengan baik. Aplikasi yang ditulis dalam bahasa berbeda di JVM dapat berbagi pustaka dan beroperasi pada struktur data yang sama, sementara pemrogram memanfaatkan fitur bahasa yang berbeda.

Di bawah ini kami menampilkan beberapa bahasa pemrograman paling signifikan yang dibuat untuk JVM. Dari Kotlin dan Scala hingga Jython dan JRuby, bahasa-bahasa ini menawarkan cara yang lebih sederhana dan fleksibel untuk melengkapi Java, atau alternatif hebat yang dirancang untuk menggantikannya.

Kotlin

Dibuat oleh JetBrains pada tahun 2010 dan bersumber terbuka pada tahun 2012, Kotlin lebih ringkas dan lebih aman daripada Java. Anda dapat menganggap Kotlin sebagai "Java, tetapi lebih sederhana". Sintaksnya kurang bertele-tele daripada Java, dan sering kali dikompilasi lebih cepat daripada kode Java. Kotlin juga mengizinkan gaya pemrograman fungsional yang saat ini tidak tersedia di Java, dan memiliki cara yang lebih aman dan elegan untuk menangani nilai null. Pengembang Android semakin memilih Kotlin daripada Java untuk pengembangan aplikasi di platform itu.

Rencana masa depan untuk Kotlin melampaui JVM. Satu proyek melibatkan kompilasi Kotlin ke kode asli mesin melalui kerangka kerja LLVM.

Untuk informasi lebih lanjut tentang Kotlin, lihat gambaran umum bahasa Martin Heller.

Scala

Seperti Kotlin, Scala dibuat untuk membuat pengembang Java lebih produktif. Scala menggabungkan pemrograman fungsional dan berorientasi objek dalam bahasa yang sama, membuat paradigma fungsional dapat diakses dan berguna bagi pengguna ekosistem Java. Plus, sintaks Scala lebih dekat ke Java daripada alternatif fungsional Clojure, yang sintaks mirip Lisp-nya dapat membingungkan bagi yang belum tahu. Perpaduan antara paradigma fungsional dan berorientasi objek adalah bagian besar dari daya tarik Scala.

Saat ini yang sedang dikerjakan adalah Scala Native, varian dari Scala yang beroperasi di luar JVM pada bare metal, melalui LLVM. Tapi masih terlalu dini untuk digunakan untuk produksi.

Clojure

Pengembang Rich Hickey ingin membangun bahasa fungsional dalam keluarga Lisp untuk JVM, dan dia membuat Clojure untuk menggaruknya. Clojure dimaksudkan untuk memudahkan penulisan aplikasi berkinerja tinggi secara bersamaan, berguna di mana pun Java dijalankan, tetapi memungkinkan serangkaian gaya pemrograman yang berbeda dari yang biasanya didukung oleh Java. Salah satu kisah sukses yang perlu diperhatikan adalah Puppet Server, yang dipindahkan dari Ruby ke Clojure.

Groovy

Awalnya dikembangkan oleh Pivotal, tetapi sekarang di bawah pengawasan Apache Software Foundation, Groovy sangat mengandalkan pengalaman yang ada dengan Java sambil menawarkan fitur yang terinspirasi oleh bahasa dinamis seperti Python dan Ruby. Groovy adalah salah satu bahasa yang didukung langsung oleh server integrasi berkelanjutan Jenkins yang populer, dan satu kerangka web utama, Grails, dibuat dengannya.

Versi Groovy yang akan datang akan merangkul fitur-fitur di versi Java dan JVM yang lebih baru, seperti sintaks lambda Java 8.

Jython dan JRuby

Jython dan JRuby masing-masing adalah implementasi dari Python dan Ruby untuk JVM. Jython kompatibel dengan cabang 2.x Python. JRuby kompatibel dengan Ruby 2.3 yang relatif baru. Keduanya secara dinamis dikompilasi ke bytecode Java dan dapat beroperasi secara bebas dengan bahasa JVM lainnya, khususnya Java.

Bahasa JVM lainnya

  • Ceylon : Dikembangkan oleh Red Hat, Ceylon dirancang untuk mengatasi beberapa masalah Java, seperti verbositasnya dan hubungannya dengan beberapa mekanisme yang mendasari JVM. Ceylon dapat dikompilasi untuk dijalankan di JVM, di VM Dart, atau di Node.js.
  • Frege : Versi bahasa fungsional Haskell untuk JVM. Kode Frege dikompilasi ke kelas Java dan beroperasi secara umum dengan Java, tetapi dapat memanfaatkan kekekalan gaya Haskell dan paradigma fungsional.
  • Eta : Varian Haskell lain untuk JVM. Keuntungan yang dipuji-puji adalah ia dapat menggunakan paket dari repositori paket Haskell, Hackage, untuk kompatibilitas maksimum dengan ekosistem Haskell.
  • Haxe : Haxe mengkompilasi ke JVM sebagai salah satu dari banyak kemungkinan target, termasuk web, perangkat seluler, dan bare metal. Sintaksnya mengingatkan pada Java, dan dapat beroperasi dengan pustaka Java lainnya jika diperlukan saat dikompilasi untuk JVM.
  • Fantom : Bahasa dengan implementasi untuk JVM dan .Net CLR, Fantom menyediakan API yang mengabstraksi perbedaan antara kedua platform. Fantom juga dapat dikompilasi ke JavaScript, dan secara teori dapat diterapkan ke sejumlah target lain.