Panduan Cepat untuk Bahasa JVM

1. Perkenalan

Selain Java, bahasa lain dapat berjalan di Java Virtual Machine seperti Scala, Kotlin, Groovy, Clojure.

Di bagian berikut, kita akan melihat tingkat tinggi bahasa JVM paling populer.

Tentu saja, kami akan mulai dengan pelopor bahasa JVM - Java.

2. Jawa

2.1. Gambaran

Java adalah bahasa pemrograman tujuan umum yang menganut Paradigma Berorientasi Objek.

Fitur inti dari bahasa ini adalah portabilitas lintas platform , yang berarti bahwa program yang ditulis pada satu platform dapat dieksekusi pada kombinasi perangkat lunak dan perangkat keras apa pun dengan dukungan waktu proses yang memadai. Ini dicapai dengan mengompilasi kode ke dalam bytecode terlebih dahulu, bukan langsung ke kode mesin khusus platform.

Instruksi bytecode Java serupa dengan kode mesin, tetapi diinterpretasikan oleh Java Virtual Machine (JVM) khusus untuk sistem operasi host dan kombinasi perangkat keras.

Meskipun awalnya bahasa berorientasi objek, Java telah mulai mengadopsi konsep dari paradigma pemrograman lain seperti pemrograman fungsional.

Mari kita lihat sekilas beberapa fitur utama Java:

  • Berorientasi pada objek
  • Diketik dengan sangat statis
  • Platform-independen
  • Pengumpulan sampah
  • Multithread

2.2. Contoh

Mari kita lihat betapa sederhananya "Halo, Dunia!" contoh terlihat seperti:

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }

Dalam contoh ini, kami telah membuat kelas bernama HelloWorld dan menentukan metode utama yang mencetak pesan di konsol.

Selanjutnya, kita akan menggunakan perintah javac untuk menghasilkan bytecode yang dapat dieksekusi di JVM:

javac HelloWorld.java

Akhirnya, para java perintah mengeksekusi bytecode dihasilkan pada JVM:

java HelloWorld

Untuk lebih banyak contoh Java, lihat daftar tutorial kami.

3. Scala

3.1. Gambaran

Scala adalah singkatan dari "bahasa yang dapat diskalakan". Scala adalah bahasa yang diketik secara statis yang menggabungkan dua paradigma pemrograman penting, yaitu pemrograman berorientasi objek dan fungsional.

Bahasa ini berasal dari tahun 2004 tetapi menjadi lebih populer dalam beberapa tahun terakhir.

Scala adalah bahasa Berorientasi Objek murni karena tidak mendukung bahasa primitif . Scala menyediakan kemampuan untuk mendefinisikan kelas, objek, metode bersama dengan fitur pemrograman fungsional seperti sifat, tipe data aljabar, atau kelas tipe.

Beberapa fitur penting Scala adalah:

  • Fungsional, Berorientasi Objek
  • Diketik dengan sangat statis
  • Tipe Data Aljabar
  • Pencocokan Pola
  • Dukungan Kekekalan yang Ditingkatkan
  • Perhitungan Malas
  • Multithread

3.2. Contoh

Pertama, mari kita lihat halaman "Halo, Dunia!" Yang sama. Contoh seperti sebelumnya, kali ini di Scala:

object HelloWorld { def main(args: Array[String]): Unit = println("Hello, world!") }

Dalam contoh ini, kami telah membuat objek tunggal bernama HelloWorld dan metode utama .

Selanjutnya, untuk mengkompilasi ini, kita bisa menggunakan scalac :

scalac HelloWorld.scala

The scala perintah mengeksekusi bytecode dihasilkan pada JVM:

scala HelloWorld

4. Kotlin

4.1. Gambaran

Kotlin adalah bahasa sumber terbuka yang diketik secara statis, bertujuan umum, dan dikembangkan oleh tim JetBrains , yang menyatukan paradigma berorientasi objek dan fungsional.

Fokus utama saat mengembangkan Kotlin adalah interoperabilitas Java, keamanan (penanganan pengecualian), keringkasan, dan dukungan perkakas yang lebih baik.

Sejak Android Studio 3.0 dirilis, Kotlin adalah bahasa pemrograman yang didukung penuh oleh Google di Platform Android. Ini juga disertakan dalam paket Android Studio IDE sebagai alternatif dari compiler Java standar.

Beberapa fitur penting Kotlin:

  • Berorientasi objek + Fungsional
  • Diketik dengan sangat statis
  • Ringkas
  • Dapat dioperasikan dengan Java

Pengenalan kami ke Kotlin juga berisi lebih banyak spesifik tentang fitur.

4.2. Contoh

Mari kita lihat halaman "Halo, Dunia!" contoh di Kotlin:

fun main(args: Array) { println("Hello, World!") }

Kita dapat menulis kode di atas dalam file baru bernama helloWorld.kt.

Kemudian, kita akan menggunakan perintah kotlinc untuk mengkompilasi ini dan menghasilkan bytecode yang dapat dieksekusi pada JVM:

kotlinc helloWorld.kt -include-runtime -d helloWorld.jar

The -d opsi digunakan untuk menunjukkan file output untuk kelas file atau .jar nama file. Opsi -include-runtime membuat file .jar yang dihasilkan menjadi mandiri dan dapat dijalankan dengan menyertakan pustaka runtime Kotlin di dalamnya.

Kemudian, perintah java menjalankan bytecode yang dihasilkan di JVM:

java -jar helloWorld.jar

Mari juga melihat contoh lain dari mencetak daftar item menggunakan for loop:

fun main(args: Array) { val items = listOf(1, 2, 3, 4) for (i in items) println(i) }

5. Asyik

5.1. Gambaran

Groovy adalah bahasa khusus domain dinamis (DSL) yang berorientasi objek, diketik secara opsional , dengan dukungan untuk kemampuan pengetikan statis dan kompilasi statis. Ini bertujuan untuk meningkatkan produktivitas pengembang, dengan sintaks yang mudah dipelajari.

Groovy terintegrasi dengan mudah dengan program Java apa pun dan segera menambahkan fitur-fitur canggih, seperti kemampuan pembuatan skrip, runtime dan waktu kompilasi meta-pemrograman dan fitur pemrograman fungsional.

Mari kita soroti beberapa fitur penting:

  • Berorientasi objek dengan fitur fungsional seperti Fungsi tingkat tinggi, kari, penutupan
  • Mengetik - Dinamis, Statis, Kuat, Bebek
  • Bahasa Khusus Domain
  • Interoperabilitas dengan Java
  • Produktivitas dengan ringkas
  • Operator kelebihan beban

5.2. Contoh

Pertama, mari kita lihat "Halo, Dunia!" contoh di Groovy:

println("Hello world")

Kami menulis kode di atas dalam file baru bernama HelloWorld.groovy . Sekarang kita dapat menjalankan kode ini dengan dua cara: dengan mengkompilasi kemudian mengeksekusi atau dengan hanya menjalankan kode yang tidak dikompilasi.

Kita dapat mengkompilasi file .groovy menggunakan perintah groovyc sebagai berikut:

groovyc HelloWorld.groovy

Kemudian, kami akan menggunakan perintah java untuk menjalankan kode groovy:

java -cp \embeddable\groovy-all-.jar;. HelloWorld

Misalnya, perintah di atas akan terlihat seperti:

java -cp C:\utils\groovy-1.8.1\embeddable\groovy-all-1.8.1.jar;. HelloWorld

Mari kita lihat juga bagaimana kita dapat menggunakan perintah groovy untuk mengeksekusi file .groovy tanpa kompilasi:

groovy HelloWorld.groovy

Terakhir, inilah contoh lain untuk mencetak daftar item dengan indeks:

list = [1, 2, 3, 4, 5, 6, 7, 8, 9] list.eachWithIndex { it, i -> println "$i: $it"}

Lihat lebih banyak contoh Groovy di artikel pengantar kami.

6. Clojure

6.1. Gambaran

Clojure adalah bahasa pemrograman fungsional tujuan umum. Bahasa ini berjalan di JVM serta Microsoft's Common Language Runtime. Clojure masih merupakan bahasa terkompilasi, tetap dinamis, karena fiturnya didukung pada waktu proses.

Para desainer Clojure ingin mendesain Lisp modern yang dapat berjalan di JVM. Itu sebabnya ia juga dikenal sebagai dialek dari bahasa pemrograman Lisp. Mirip dengan Lisps, Clojure memperlakukan kode sebagai data dan memiliki sistem makro juga.

Beberapa fitur penting Clojure:

  • Fungsional
  • Mengetik - Dinamis, Kuat, baru-baru ini mulai mendukung pengetikan bertahap
  • Didesain untuk konkurensi
  • Polimorfisme runtime

6.2. Contoh

Tidak seperti bahasa JVM lainnya, tidak sesederhana itu membuat "Hello, World!" program di Clojure.

Kami akan menggunakan alat Leiningen untuk menjalankan contoh kami.

Pertama, kami akan membuat proyek sederhana dengan templat default menggunakan perintah berikut:

lein new hello-world

Proyek akan dibuat dengan struktur file berikut:

./project.clj ./src ./src/hello-world ./src/hello-world/core.clj

Sekarang kita perlu memperbarui file ./project.ctj dengan konten berikut untuk menyetel file sumber utama:

(defproject hello-world "0.1.0-SNAPSHOT" :main hello-world.core :dependencies [[org.clojure/clojure "1.5.1"]])

Sekarang kami siap untuk memperbarui kode kami untuk mencetak "Halo, Dunia!" di ./src/hello-world/core. file clj:

(ns hello-world.core) (defn -main [& args] (println "Hello, World!"))

Terakhir, kami akan menggunakan perintah lein untuk menjalankan kode di atas, setelah pindah ke direktori root proyek:

cd hello-world lein run

7. Bahasa JVM lainnya

7.1. Jython

Jython adalah implementasi platform Java dari Python yang berjalan di JVM.

Bahasa ini awalnya dirancang untuk memungkinkan penulisan aplikasi berkinerja tinggi tanpa mengorbankan interaktivitas. Jython berorientasi objek, multi-utas dan menggunakan pengumpul sampah Java untuk membersihkan memori secara efisien.

Jython menyertakan sebagian besar modul yang merupakan bagian dari bahasa Python. Itu juga dapat mengimpor dan menggunakan kelas apa pun dari perpustakaan Java.

Mari kita lihat "Halo Dunia!" contoh:

print "Hello, world!"

7.2. JRuby

JRuby adalah implementasi bahasa pemrograman Ruby untuk dijalankan di Java Virtual Machine.

Bahasa JRuby berkinerja tinggi dan multi-threaded, dengan beragam pustaka yang tersedia dari Java dan Ruby. Selain itu, ini menggabungkan fitur dari kedua bahasa seperti pemrograman berorientasi objek dan pengetikan bebek.

Ayo cetak “Halo, Dunia!” di JRuby:

require "java" stringHello= "Hello World" puts "#{stringHello.to_s}"

8. Kesimpulan

Pada artikel ini, kami telah mempelajari banyak bahasa JVM populer bersama dengan contoh kode dasar. Bahasa-bahasa ini menerapkan berbagai paradigma pemrograman seperti pengetikan berorientasi objek, fungsional, pengetikan statis, pengetikan dinamis.

Sejauh ini, ini menunjukkan bahwa bahkan dengan JVM yang berasal dari tahun 1995, JVM masih berdiri sebagai platform yang sangat relevan dan menarik untuk bahasa pemrograman modern.