Pada tahun 2019, dunia open source dikejutkan oleh pengumuman bahwa Perl 6 secara resmi dinamai ulang menjadi Raku. Perubahan nama ini bukan sekadar keputusan pemasaran, melainkan pengakuan terhadap evolusi besar yang telah terjadi pada bahasa tersebut. Raku bukanlah sekadar versi baru dari Perl, melainkan bahasa pemrograman yang sepenuhnya independen dan modern, dirancang dari awal untuk mengatasi tantangan pengembangan perangkat lunak di abad ke-21.
Baca juga: Pelajaran dari Handlebars: Mengingat Kembali Kekuatan Template ‘Logic-less’ di Era Komponen Modern
Mitos dan Realitas: Perl 6 vs. Raku
Selama bertahun-tahun, proyek yang dikenal sebagai Perl 6 ini berjuang melawan ekspektasi bahwa ia akan menjadi upgrade langsung dari Perl 5, layaknya Python 3 dari Python 2. Namun, para pengembangnya sejak awal telah menjelaskan bahwa Perl 6 adalah proyek yang berbeda, sebuah bahasa yang membangun di atas filosofi Perl tetapi dengan sintaks dan model yang baru.
Perl 5 terkenal dengan "TIMTOWTDI" (There Is More Than One Way To Do It). Raku mengambil filosofi ini ke tingkat yang lebih tinggi, bukan hanya dalam sintaks tetapi juga dalam pendekatan fundamentalnya. Nama Raku dipilih untuk menekankan identitas uniknya: sebuah bahasa yang berdiri sendiri, menawarkan fitur yang tidak ditemukan di Perl 5, dan memiliki komunitas serta ekosistemnya sendiri. Raku adalah bukti bahwa inovasi yang signifikan terkadang memerlukan pemutusan hubungan dari masa lalu, bahkan jika itu berarti meninggalkan nama yang sudah mapan.
Fitur Revolusioner yang Membedakan Raku
Raku memperkenalkan sejumlah fitur yang menjadikannya bahasa modern yang kuat dan serbaguna, jauh melampaui kemampuan Perl 5.
1. Sistem Tipe yang Kuat dan Dinamis
Salah satu perbedaan paling mencolok adalah sistem tipe optional dan gradual Raku. Anda dapat menggunakan Raku sebagai bahasa dynamically typed seperti Python atau Ruby. Namun, Anda juga bisa menambahkan deklarasi tipe data untuk meningkatkan keamanan dan kejelasan kode. Contohnya:
Code snippet
sub faktorial(Int $n --> Int) {
return 1 if $n <= 1;
return $n * faktorial($n - 1);
}
Dalam contoh di atas, kita mendeklarasikan bahwa parameter $n harus berupa Int (integer) dan fungsi tersebut akan mengembalikan Int. Ini memungkinkan Raku untuk mendeteksi kesalahan tipe pada waktu kompilasi, mencegah bug yang sering terjadi pada bahasa dynamically typed murni.
2. Konkurensi dan Paralelisme Bawaan
Raku dirancang untuk era komputasi multi-core saat ini. Ia memiliki fitur konkurensi dan paralelisme yang terintegrasi secara fundamental, bukan sebagai library tambahan.
Supply/Promise: Raku menyediakan objekPromiseuntuk menangani operasi asynchronous danSupplyuntuk stream data asynchronous. Ini membuat penulisan kode untuk tugas paralel menjadi lebih intuitif dan mudah dibaca.- Channels: Anda bisa menggunakan channels untuk berkomunikasi antar thread tanpa harus khawatir tentang race conditions.
3. Sintaks yang Ekspresif dan Fleksibel
Raku memiliki sintaks yang sangat kaya dan ekspresif. Fitur regular expression yang ikonik dari Perl telah ditingkatkan menjadi Grammar, sebuah parser yang kuat untuk data terstruktur. Dengan Grammar, Anda bisa membuat parser yang dapat memahami bahasa pemrograman lain, file konfigurasi, atau format data apa pun.
Selain itu, Raku mendukung operator yang dapat di-override dan custom yang membuat kode lebih mudah dibaca dan diekspresikan. Operator ~~ misalnya, adalah smartmatch operator yang cerdas dan bisa disesuaikan dengan konteks.
4. Meta-objek dan Refleksi
Raku memiliki sistem meta-objek yang sangat kuat, memungkinkan Anda untuk memanipulasi struktur bahasa itu sendiri pada waktu runtime. Anda dapat memodifikasi kelas, metode, atau bahkan grammar dari program Anda saat berjalan. Ini membuka pintu untuk metaprogramming yang canggih dan domain-specific languages (DSL) yang sangat fleksibel.
Mengapa Raku Masih Relevan Hari Ini?
Meskipun Raku tidak memiliki basis pengguna sebesar Python atau JavaScript, ia tetap relevan karena menargetkan niche yang unik. Raku adalah pilihan ideal untuk:
- Pemrosesan Teks dan Data: Dengan
Grammardan kemampuan regular expression yang superior, Raku adalah alat yang sangat kuat untuk parsing data yang kompleks dan tidak terstruktur. - Penelitian dan Komputasi Ilmiah: Sistem tipe yang kuat, kemampuan konkurensi, dan sintaks ekspresif membuatnya cocok untuk prototyping dan scripting ilmiah.
- Pengembang yang Mencari Bahasa Modern yang Berbeda: Raku menawarkan kombinasi unik dari fitur-fitur terbaik dari bahasa lain (sistem objek seperti Perl, konkurensi seperti Go, dan sistem tipe seperti Rust) dalam satu paket yang kohesif.
Kesimpulan
Raku bukanlah sekadar Perl 6. Ia adalah bahasa pemrograman yang dirancang untuk masa depan, dengan pondasi yang kokoh untuk konkurensi, sistem tipe yang fleksibel, dan sintaks yang sangat ekspresif. Perubahan nama dari Perl 6 ke Raku adalah pernyataan yang berani, sebuah pengakuan bahwa bahasa ini telah melampaui bayang-bayang pendahulunya. Bagi pengembang yang mencari alat yang kuat dan inovatif untuk memecahkan masalah kompleks, Raku menawarkan solusi yang unik dan menarik yang layak untuk dieksplorasi.
Penulis: Dena Triana