Pencipta Ruby, Yukihiro Matsumoto (Matz), merilis versi publik pertama dari bahasa pemrograman tersebut pada bulan Desember 1995, membuat Ruby baru saja merayakan ulang tahunnya yang ke-30. Ini tersebar di grup berita Usenet berbahasa Jepang, cara yang populer untuk bertukar percakapan dan media sebelum adanya World Wide Web, dan kemudian menjangkau komunitas yang lebih luas sepanjang akhir tahun 1990an.
Hal ini berkat komunitas Ruby yang ramah dan, sebagian besar, berkat Matz. (Komunitas mempunyai moto, “Matz itu bagus, dan kami pun baik.”) Pada Konferenze Ruby Eropa tahunan – EuRoKu – di Sarajevo, Matz mengatakan dia menciptakan Ruby karena dia “malas dan penuh keangkuhan.”
Hal ini tidak terdengar seperti sebuah pembenaran untuk menciptakan dan memelihara bahasa pemrograman selama 30 tahun, namun hal ini merupakan sebuah tanda dari kerendahan hati Ruby yang membuat Ruby menjadi komunitas yang ramah selama beberapa dekade.
30 tahun sejarah Ruby
Bahasa pemrograman muncul ketika pesatnya pertumbuhan teknologi terkait web mencakup bahasa yang ringan, lebih mudah dipelajari, dan dijalankan seperti PHP dan Python. Meskipun ketiga bahasa tersebut memiliki banyak sekali kegunaan lain, waktu dan faktor eksternal sering kali mendorong ketiga bahasa tersebut menjadi lebih populer. Bagi Ruby, ini adalah kerangka kerja Rails pada tahun 2004 dan dua buku — Dave Thomas's Pragmatic Programmer pada tahun 1999 dan WHY'S (pedih) Guide to Ruby pada tahun 2005*.
Meskipun buku Thomas tidak membahas Ruby secara rinci, buku tersebut menyebutkannya, dan penulisnya terus mempromosikan bahasa tersebut selama bertahun-tahun setelah menerbitkannya. Buku tersebut, secara umum, telah sukses dalam jangka panjang, dan berkontribusi terhadap meningkatnya minat terhadap Ruby di awal kehidupannya.
Terkadang, Ruby on Rails terasa seperti sebuah berkah sekaligus kutukan bagi Ruby itu sendiri. Bagi banyak pengembang, mereka adalah satu dan sama. Acara Rails biasanya memiliki lebih banyak peserta. Banyak fitur dan perubahan terbaru di Ruby berasal dari Rails.
Terakhir, pencipta Rails dan pendiri 37Signals, David Heinemeier Hansson (DHH), adalah nama yang jauh lebih dikenal di komunitas pemrograman dan teknologi yang lebih luas dan sangat vokal hadir secara online. Salah satu peserta EuRoKu yang saya ajak bicara menyatakan bahwa meskipun masyarakat tidak mau mengakuinya, kedua proyek tersebut sangat terkait.
Banyak situs Web 2.0 yang muncul pada awal tahun 2000-an berjalan di Rails, dan banyak yang masih menggunakan Rails (setidaknya sebagian), termasuk Airbnb, GitHub, Twitter (sekarang X), Netflix, dan Shopify (kontributor dan sponsor utama Ruby lainnya). Rails memperkenalkan banyak fitur yang akan diingat oleh pengembang lama mana pun (seperti saya) betapa inovatifnya fitur tersebut, dan banyak pengembang muda kini akan menerima begitu saja. Sebagai pengembang Drupal PHP pada saat itu, saya ingat melihat fitur-fitur seperti pembuatan tabel database, manajemen, dan migrasi dengan rasa iri.
Meskipun pelacakan minat dan istilah penelusuran untuk Rails menunjukkan seperempat dari sebelumnya, penggunaan sebenarnya masih mendekati puncaknya. Hal ini menunjukkan bahwa banyak pengembang yang menggunakannya berada pada tingkat senior dan sebagian besar mengetahui apa yang mereka lakukan.
Survei Planet Argon tahun 2024 menegaskan hal ini: hampir 70% responden memiliki pengalaman lebih dari tujuh tahun dan telah menjalankan aplikasi mereka dalam jangka waktu yang hampir sama. Saya tidak tahu berapa banyak baru proyek memilih Rails, tetapi ada cukup banyak proyek yang sudah ada sebelumnya untuk mempertahankan minat yang sehat terhadap proyek berusia 20 tahun.
Jika Anda menghilangkan puncak minat Ruby selama beberapa tahun setelah rilis Rails, maka Ruby akan tetap sepopuler 30 tahun yang lalu. Menurut statistik Tiobe, ini sedikit lebih populer. Survei Stack Overflow tahun 2023 menempatkan popularitas Ruby di peringkat 16 dari 50 bahasa, dan survei IEEE dari tahun 2024 serta PYPL melaporkan hal yang sama.
Sangat mudah untuk menarik perbandingan statistik yang negatif atau tidak akurat terhadap perubahan yang belum pernah terjadi sebelumnya, namun mengabstraksikannya seiring berjalannya waktu, dan Anda akan melihat cerita yang berbeda.
Setiap bahasa yang telah berumur beberapa dekade memiliki tingkat teknis atau beban komunitas, dan saya merasakan kesan yang sama dengan Ruby secara umum dan di acara EuRuKo. Komunitasnya ramah dan bersahabat tetapi penuh dengan referensi dan nama yang tidak berarti apa-apa bagi saya. Memang benar, semua komunitas melakukan hal ini pada tingkat tertentu, dan mungkin acara lain mendukung pendatang baru, namun hanya ada sedikit pembicaraan di tingkat pemula.
30 tahun ke depan
Tapi cukup dengan masa lalu yang jauh. Apa yang baru-baru ini ditambahkan, diubah, atau direncanakan oleh Ruby agar pengembang saat ini tetap tertarik dan mungkin menarik pengembang baru?
Ruby adalah bahasa yang ditafsirkan, artinya Ruby diubah dari kode yang dapat dibaca manusia menjadi kode yang dapat dijalankan oleh mesin saat dijalankan, sering kali dalam mesin virtual yang dijalankan pada mesin fisik. Salah satu kritik modern terhadap Ruby, dan semua bahasa interpretasinya, adalah bahwa bahasa tersebut terlalu lambat untuk skala aplikasi modern.
Ruby memiliki penerjemah default, CRuby (sebelumnya “Matz's Ruby Interpreter”), yang menerjemahkan kode menjadi instruksi yang dijalankan oleh mesin virtual Ruby. Namun Ruby dan komunitasnya telah menambahkan penerjemah alternatif dan lebih berperforma tinggi, terutama dalam beberapa tahun terakhir, termasuk beberapa opsi kompiler “just in time” (JIT), yang merupakan teknik populer untuk menghadirkan kecepatan kode yang dikompilasi ke bahasa yang ditafsirkan.
Bahasa pemrograman lain, seperti C, C++, dan Rust, merupakan bahasa yang dikompilasi, mengubah kode yang dapat dibaca manusia menjadi kode yang dapat dibaca mesin sebelum dijalankan. Meskipun pada dasarnya tidak dirancang untuk dijalankan sebagai bahasa yang dikompilasi, opsi lain memungkinkannya dilakukan dengan Ruby.
Namun, mengkompilasi bahasa bukanlah hal baru, dan seperti yang saya sebutkan di ringkasan KubeCon EU, WebAssembly (WASM) adalah masa kini bagi sebagian orang dan masa depan bagi banyak orang. Pada prinsipnya, WASM memungkinkan Anda menjalankan bahasa yang didukung di browser (tetapi kini juga menawarkan lebih banyak lagi, mungkin itu postingan mendatang), menghadirkan aplikasi yang kompleks dan kuat ke browser. Sejak tahun 2022, Ruby sudah bisa dikompilasi ke WASM. Jika Anda pernah menggunakan Mastodon di browser, itu adalah aplikasi Ruby on Rails yang berjalan sebagai WASM.
Ketika Ruby mulai digunakan, monolit adalah pola arsitektur aplikasi yang umum — satu basis kode besar yang ditulis dalam satu bahasa yang menangani semua fungsi dan layanan. Dalam beberapa tahun terakhir, layanan mikro telah menjadi desain arsitektur yang lebih populer, setidaknya di dunia yang ideal.
Alih-alih satu basis kode monolingual yang besar dan multifungsi, sebuah aplikasi dipecah menjadi beragam basis kode dan bahasa yang berkomunikasi satu sama lain. Ruby tidak pernah benar-benar dirancang dengan arsitektur ini, dan Anda dapat melacak penurunannya seiring dengan peningkatan layanan mikro.
Dalam beberapa tahun terakhir, Ruby telah menambahkan fitur untuk mengikuti perubahan yang mungkin mengejutkan atau menggoda pengembang non-Ruby. Ini termasuk kode asinkron dan berulir, yang memungkinkan aplikasi berkomunikasi secara bersamaan dengan aplikasi dan layanan lain.
Banyak bahasa modern yang mendukung fitur ini, namun sintaks Ruby lebih sederhana daripada JavaScript. Pengembang di EuRuKo sangat antusias dengan beberapa fitur lain yang akan datang, yang semuanya terus menambahkan opsi kreatif untuk pengkodean dengan bahasa tersebut.
Meskipun banyak pengembang sekarang mungkin mengabaikan Ruby sebagai pilihan untuk memulai, Ruby juga telah menginspirasi banyak bahasa lain secara langsung dan tidak langsung yang mungkin cocok untuk pengembang kontemporer yang didukung oleh layanan mikro.
Elixir, pertama kali muncul 12 tahun lalu, mendapat inspirasi dari Ruby, dan penciptanya, José Valim, berasal dari komunitas Ruby. Elixir lebih dioptimalkan untuk konkurensi tinggi dan latensi rendah, sehingga cocok untuk industri keuangan dan telekomunikasi.
Crystal, yang dibuat sepuluh tahun lalu, juga memiliki anggota komunitas Ruby sebagai pengelolanya. Sintaksnya lebih terinspirasi oleh Ruby tetapi menambahkan fitur yang membuat bahasanya lebih stabil dan dapat diandalkan, termasuk berjalan sebagai yang dikompilasi, bukan diinterpretasikan.
Bermotivasi komunitas
Mengapa pengembang Ruby jangka panjang masih menggunakannya meskipun ada banyak opsi baru dan menarik yang dapat mereka pilih? Dave Thomas bercerita kepada saya tentang bagaimana dia menemukan Ruby di antara lusinan bahasa lain yang dia mainkan di forum Usenet pada tahun 1990an. “Saya terpesona. Saya bermain dengan Ruby selama sehari. Saya bermain dengannya keesokan harinya. Dan saya terus memainkannya setelah itu, dan itu menjadi bahasa pemrograman pilihan saya ketika saya punya pilihan.”
Dan mengapa Thomas terus menggunakan Ruby 30 tahun kemudian? “Ruby memungkinkan Anda menemukan cara untuk mengekspresikan diri tanpa terlalu banyak mendikte. Seperti saat Anda menulis prosa dan mencoba menemukan frasa dan struktur yang tepat untuk kata-kata Anda, Ruby memungkinkan Anda melakukan hal yang sama dengan kode. Anda dapat bereksperimen dengan cara-cara yang baik untuk mengekspresikan sesuatu, bukan hanya dengan satu cara.”
Saya tidak mungkin mengalihkan proyek saya saat ini ke Ruby, dan saya tidak yakin berapa banyak pengembang yang menggunakan bahasa lain yang juga akan melakukannya. Namun, satu sikap yang saya dengar berulang kali ketika berbicara dengan komunitas Ruby adalah “kebebasan memilih secara kreatif.”
Banyak komunitas bahasa pemrograman lain yang memberikan saran tentang “cara yang benar” dalam melakukan sesuatu, yang tentu saja berbeda-beda, bergantung pada siapa Anda berbicara. Komunitas Ruby mengikuti pendekatan yang berbeda, menyediakan alat dengan pendapat yang lembut agar Anda dapat menemukan jalan Anda sendiri.
Dunia teknis penuh dengan tren yang datang dan pergi dan orang-orang yang memberi tahu Anda bahwa Anda salah dalam mengambil keputusan. Jika komunitas Ruby adalah salah satu dari sedikit komunitas yang tidak menghakimi, maka tidak peduli tren atau persentase penggunaannya, hal tersebut mungkin akan bertahan lama.
_______
* Jika Anda belum membaca panduan MENGAPA, panduan ini tersedia gratis dan ada dalam buku pemrograman, komik, dan perjalanan nyata realisasi diri. Karena kombinasi yang aneh ini, terjadilah perpecahan. Beberapa orang mengatakan itu adalah satu-satunya buku yang pernah mereka pelajari tentang pemrograman. Yang lain menganggapnya sebagai kekacauan yang sangat membingungkan dan membingungkan. Namun, gayanya yang unik dan penulisnya yang misterius juga meningkatkan minat terhadap bahasa tersebut pada masa-masa awal bahasa tersebut.