Beyond Java: Bahasa pengaturcaraan di JVM

Sekiranya ada bahasa yang merupakan kuantiti yang diketahui dan terbukti untuk pembangun, itu adalah Java. Pembangun perusahaan, pembangun web, pembangun mudah alih, dan banyak lagi selainnya, telah membuat Java di mana-mana dan menyumbang kepada budaya sokongan besar di sekitar Jawa.

Lebih-lebih lagi, Java runtime, atau Java Virtual Machine (JVM), telah menjadi ekosistem perisian sendiri. Selain Java, banyak bahasa lain telah memanfaatkan Java Virtual Machine untuk menjadi alat pengembangan perisian yang kuat dan berharga dengan sendirinya.

Menggunakan JVM sebagai jangka masa membawa beberapa faedah. JVM telah disempurnakan selama beberapa dekad, dan dapat menghasilkan prestasi tinggi ketika digunakan dengan baik. Aplikasi yang ditulis dalam bahasa yang berbeza di JVM dapat berkongsi perpustakaan dan beroperasi pada struktur data yang sama, sementara pengaturcara memanfaatkan ciri bahasa yang berbeza.

Di bawah ini kami memaparkan beberapa bahasa pengaturcaraan paling penting yang dibuat untuk JVM. Dari Kotlin dan Scala hingga Jython dan JRuby, bahasa-bahasa ini menawarkan cara yang lebih mudah dan fleksibel untuk melengkapkan Java, atau alternatif kuat yang dirancang untuk menggantikannya.

Kotlin

Dibuat oleh JetBrains pada tahun 2010 dan bersumber terbuka pada tahun 2012, Kotlin lebih ringkas dan lebih selamat daripada Java. Anda boleh menganggap Kotlin sebagai "Java, tetapi lebih sederhana." Sintaksnya kurang verbose daripada Java, dan sering menyusun lebih cepat daripada kod Java. Kotlin juga membenarkan gaya pengaturcaraan fungsional yang saat ini tidak tersedia di Java, dan mempunyai cara yang lebih selamat dan elegan untuk menangani nilai nol. Pembangun Android semakin memilih Kotlin daripada Java untuk pengembangan aplikasi di platform tersebut.

Rancangan masa depan untuk Kotlin melampaui JVM. Satu projek melibatkan penyusunan Kotlin ke kod asli mesin melalui kerangka LLVM.

Untuk maklumat lanjut mengenai Kotlin, lihat gambaran keseluruhan Martin Heller mengenai bahasa tersebut.

Scala

Seperti Kotlin, Scala diciptakan untuk membuat pemaju Java lebih produktif. Scala menggabungkan pengaturcaraan fungsional dan berorientasikan objek dalam bahasa yang sama, menjadikan paradigma fungsional dapat diakses dan berguna bagi pengguna ekosistem Java. Selain itu, sintaks Scala lebih dekat ke Java daripada Clojure alternatif fungsional, yang sintaksnya seperti Lisp dapat membingungkan orang yang belum tahu. Campuran paradigma berorientasikan fungsi dan objek adalah sebahagian besar dari daya tarikan Scala.

Pada masa ini dalam karya adalah Scala Native, varian Scala yang berjalan di luar JVM pada logam telanjang, dengan cara LLVM. Tetapi masih terlalu awal untuk digunakan untuk pengeluaran.

Clojure

Pembangun Rich Hickey ingin membina bahasa yang berfungsi dalam keluarga Lisp untuk JVM, dan dia membuat Clojure untuk menggaru gatal itu. Clojure dimaksudkan untuk membuatnya mudah untuk menulis aplikasi berkinerja tinggi yang serentak, berguna di mana sahaja Java berjalan, tetapi memungkinkan set gaya pemrograman yang berbeza daripada yang disokong secara tradisional oleh Java. Salah satu kisah kejayaan ialah Puppet Server, yang dipindahkan dari Ruby ke Clojure.

Groovy

Mula-mula dikembangkan oleh Pivotal, tetapi sekarang di bawah pengawasan Yayasan Perisian Apache, Groovy memanfaatkan pengalaman yang ada dengan Java sambil menawarkan ciri-ciri yang diilhami oleh bahasa dinamik seperti Python dan Ruby. Groovy adalah salah satu bahasa yang disokong secara langsung oleh pelayan integrasi berterusan Jenkins yang popular, dan satu kerangka web utama, Grails, dibina dengannya.

Versi Groovy yang akan datang akan merangkumi ciri-ciri dalam versi Java dan JVM yang lebih baru, seperti sintaks lambda Java 8.

Jython dan JRuby

Jython dan JRuby adalah pelaksanaan Python dan Ruby, masing-masing, untuk JVM. Jython serasi dengan cawangan 2.x Python. JRuby serasi dengan Ruby 2.3 yang agak baru-baru ini. Kedua-duanya menyusun secara dinamis ke Java bytecode dan dapat beroperasi secara bebas dengan bahasa JVM lain, khususnya Java.

Bahasa JVM lain

  • Ceylon : Dikembangkan oleh Red Hat, Ceylon dirancang untuk mengatasi beberapa masalah Java, seperti keterlaluan dan hubungannya dengan beberapa mekanisme yang mendasari dalam JVM. Ceylon dapat disusun untuk dijalankan di JVM, di Dart VM, atau di Node.js.
  • Frege : Versi bahasa berfungsi Haskell untuk JVM. Kod frege dikompilasi ke kelas Java dan saling beroperasi dengan Java pada umumnya, tetapi dapat memanfaatkan ketidakstabilan gaya Haskell dan paradigma berfungsi.
  • Eta : Satu lagi varian Haskell untuk JVM. Kelebihannya ialah ia dapat menggunakan pakej dari repositori pakej Haskell, Hackage, untuk keserasian maksimum dengan ekosistem Haskell.
  • Haxe : Haxe menyusun JVM sebagai salah satu daripada banyak kemungkinan sasaran, termasuk web, peranti mudah alih, dan logam kosong. Sintaksnya mengingatkan pada Java, dan dapat berfungsi dengan perpustakaan Java lain jika diperlukan ketika disusun untuk JVM.
  • Fantom : Bahasa dengan implementasi untuk kedua-dua JVM dan .Net CLR, Fantom menyediakan API yang menghilangkan perbezaan antara kedua-dua platform. Fantom juga dapat dikompilasi ke JavaScript, dan secara teori dapat digunakan ke sejumlah sasaran lain.