Episode ini menelusuri sejarah Groovy dari kelahirannya di awal 2000-an hingga menjadi bahasa scripting resmi di ekosistem JVM. Kalian juga membandingkan Groovy dengan Java, Kotlin, dan Scala, serta memahami keunggulan sintaks ringkas, metaprogramming, dan DSL.

Sebelum menulis kode lebih jauh, penting untuk memahami mengapa Groovy ada dan di mana posisinya di ekosistem JVM. Episode 1 ini membuka cerita di balik kelahiran Groovy, perbandingannya dengan bahasa JVM lain, dan alasan Groovy tetap relevan setelah dua dekade.
Kalian akan keluar dari episode ini dengan peta mental yang jelas: kapan memakai Groovy, kapan memakai Java, dan mengapa metaprogramming menjadi pembeda utama Groovy.
Groovy pertama kali dikembangkan oleh James Strachan pada 2003 dengan tujuan menghadirkan sintaks yang ringkas seperti Python dan Ruby, tetapi berjalan di atas JVM. Proyek ini kemudian menjadi bagian dari Apache Software Foundation dan dirilis sebagai Apache Groovy.
Kelahiran Groovy dipicu oleh frustrasi terhadap verbositas Java pada masa itu — sebelum Java 8, menulis fungsi sederhana membutuhkan banyak boilerplate. Groovy menawarkan alternatif: script singkat yang tetap bisa memanfaatkan seluruh library Java.
Seiring waktu, Groovy mendapatkan peran-peran strategis:
build.gradle.Jenkinsfile.Peran-peran ini membuat Groovy tidak sekadar bahasa pelengkap, melainkan infrastruktur nyata dalam toolchain pengembang JVM. Memahami posisi ini membantu kalian menentukan di mana Groovy bekerja paling baik.
Dua pengadopsi paling berpengaruh adalah Gradle dan Jenkins. Sebelum Kotlin DSL hadir, Gradle sepenuhnya memakai Groovy untuk file build.gradle. Jenkins, di sisi lain, menjadikan Groovy bahasa utama untuk menulis pipeline CI/CD dalam file Jenkinsfile. Karena keduanya dipakai di hampir semua perusahaan, skill Groovy otomatis menjadi skill infrastruktur yang bernilai.
Groovy sering dibandingkan dengan tiga bahasa JVM lain. Berikut ringkasannya:
Perbedaan paling terasa terlihat dari sintaks. Membuat list dan mencetak isinya di Java membutuhkan beberapa baris, sedangkan di Groovy cukup:
def daftar = [1, 2, 3, 4, 5]
daftar.each { cetak -> println cetak }Kode yang sama di Java membutuhkan iterasi eksplisit dengan for loop. daftar.each { cetak -> println cetak } menampilkan bagaimana closure menyederhanakan iterasi — topik yang akan kita bedah penuh di episode 4.
Untuk memudahkan perbandingan, berikut tabel posisi tiap bahasa:
Groovy menghapus banyak aturan Java yang tidak penting: semicolon bisa dihilangkan, nilai ekspresi terakhir di dalam method otomatis menjadi nilai balik, dan deklarasi variabel cukup dengan def. Hasilnya, kode menjadi jauh lebih ekspresif dan lebih sedikit baris yang harus dibaca.
Keunggulan terbesar Groovy adalah metaprogramming. Method yang belum didefinisikan bisa ditangkap saat runtime lewat methodMissing, dan kelas bisa diperluas dengan ExpandoMetaClass. Kemampuan ini menjadi fondasi pembuatan DSL — bahasa khusus domain seperti yang dipakai Gradle dan Jenkins.
Karena bisa dijalankan langsung tanpa kompilasi eksplisit, Groovy sangat cocok untuk script otomasi. File .groovy cukup dijalankan dengan perintah groovy, tanpa perlu menyusun project atau struktur direktori tertentu.
groovy skrip.groovyPerintah groovy skrip.groovy menerjemahkan dan mengeksekusi script dalam satu langkah, memanfaatkan model execution langsung yang akan kita bahas di episode 2.
Sebagai penutup bab sejarah, berikut panduan praktis:
Memahami posisi ini penting, karena episode 22 nanti akan membahas cara memigrasikan skill Groovy ke bahasa JVM lain.
Berikut contoh nyata yang mungkin sudah kalian temui tanpa sadar — sebuah Jenkinsfile yang ditulis dalam Groovy:
pipeline {
agent any
stages {
stage("Build") {
steps {
echo "Membangun project dengan Groovy"
}
}
}
}pipeline { stages { ... } } adalah DSL Groovy murni. Blok stage("Build") adalah pemanggilan method dengan nama stage, dan steps { echo "..." } adalah closure yang diteruskan sebagai argumen. Pola semacam ini hanya bisa dibuat karena Groovy mendukung DSL — topik episode 9.
Episode 1 membuka wawasan tentang asal-usul Groovy: lahir di 2003 sebagai bahasa scripting ringkas untuk JVM, diadopsi oleh Gradle dan Jenkins, dan bertahan sebagai pilihan utama untuk scripting dan DSL.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya kita akan membahas konsep dasar dan arsitektur bahasa — bagaimana script Groovy dikompilasi menjadi bytecode, model eksekusi di JVM, dan cara Groovy berinteraksi dengan aplikasi Java. Ini adalah landasan teknis sebelum kalian mulai menulis kode serius.