8 poin oleh GN⁺ 2023-12-19 | 1 komentar | Bagikan ke WhatsApp

Mengejar kebahagiaan programmer

  • Ruby adalah bahasa yang mengejar kebahagiaan programmer, dan karena itu kadang menjadi sasaran ejekan dari komunitas lain.
  • Menggunakan Ruby itu menyenangkan, dan ini adalah nilai yang tertanam di seluruh bahasa, ekosistem gem, dan komunitasnya.
  • Saat menulis kode Ruby, bahkan pada bagian yang buruk sekalipun, tetap terasa menyenangkan.

Mendorong ekspresivitas

  • Ruby mungkin adalah bahasa pemrograman yang paling ekspresif di muka bumi.
  • Melalui fitur metaprogramming dan idiom budaya, programmer dapat menulis kode yang dengan jelas mengekspresikan niat mereka.
  • Sebagai contoh, DSL milik RSpec membuat apa yang ingin diuji terbaca seolah-olah seperti cara manusia berbicara.

Bahasa yang terasa dibuat khusus untuk saya

  • Banyak developer Ruby merasa bahwa Ruby dan Rails sangat pas dengan cara kerja otak mereka.
  • Nama method dan signature-nya bisa ditebak secara intuitif, dan saat salah, Anda bisa mencoba menukar urutan argumennya.
  • Mereka cepat belajar untuk mencoba sesuatu berdasarkan intuisi sebelum membaca dokumentasi.

Komunitas dan nilai

  • Komunitas Ruby memainkan peran penting dalam membentuk apa itu bahasa ini dan bagaimana rasanya menggunakannya.
  • Kent Beck pernah berkata, "desain perangkat lunak adalah latihan dalam hubungan antarmanusia", dan ini juga berlaku untuk komunitas dan nilai.
  • Komunitas Ruby adalah kelompok yang luar biasa: ramah, baik hati, dan saling mendukung.
  • Ruby memiliki dua ciri utama, yaitu kegembiraan dan komunitas, dan itu adalah keunggulan yang luar biasa.

Opini GN⁺

  • Karakteristik paling penting dari bahasa Ruby adalah fokusnya pada kebahagiaan programmer dan kemampuannya memungkinkan penulisan kode yang ekspresif.
  • Ikatan yang kuat dalam komunitas Ruby dan budaya saling mendukung memberikan kebanggaan dan kepuasan besar bagi developer yang menggunakan bahasa ini.
  • Tulisan ini menarik dan memikat karena menyampaikan pesona Ruby dari sudut pandang developer yang mencintainya, sekaligus menunjukkan bahwa bahasa pemrograman dapat membentuk komunitas dan budaya, melampaui perannya sebagai sekadar alat.

1 komentar

 
GN⁺ 2023-12-19
Komentar Hacker News
  • Ada berbagai pendapat tentang daya ekspresif bahasa Ruby

    Ruby sangat bagus saat digunakan di dalam ekosistemnya atau untuk pekerjaan yang memang diharapkan oleh ekosistemnya, tetapi menjadi sangat merepotkan ketika mencoba melakukan hal-hal yang tidak standar. Method pendukung bisa saja didefinisikan di suatu tempat dalam abstraksi sedalam lima lapis, dan kadang itu bahkan merupakan bagian dari metaprogramming sebuah library sehingga LSP pun tidak bisa menunjukkannya. Ruby adalah ekosistem yang merayakan hal-hal implisit, dan itu kadang terasa gila. Walaupun kode akhirnya bisa terlihat indah dan enak dibaca, itu tidak otomatis menyelesaikan semua masalah.

  • Pendapat yang mengakui pentingnya developer experience, tetapi menilai Ruby bukan yang terbaik

    Saya setuju bahwa developer experience diremehkan dalam banyak bahasa pemrograman atau framework, tetapi saya tidak menganggap Ruby sebagai yang terbaik di bidang ini. Sintaksnya mungkin terlihat bagus pada awalnya, tetapi ketiadaan informasi tipe dan metaprogramming membuat Ruby sulit digunakan. Selain itu, ada faktor lain yang perlu dipertimbangkan saat memilih bahasa pemrograman, misalnya performa runtime. Karena tidak adanya static typing dan alasan-alasan ini, Ruby tampaknya mulai ditinggalkan tren. Secara pribadi, saya menganggap Kotlin sebagai titik ideal dalam bahasa pemrograman. Kotlin adalah bahasa yang ringkas dan mudah dibaca, dengan dukungan tooling kelas dunia, static typing, performa unggul dari JVM, serta semua yang ditawarkan ekosistem Java.

  • Pendapat yang menyatakan kecintaan pada Ruby sambil menjelaskan alasan tetap lebih memilih Python

    Saya suka Ruby, dan saya lebih menyukainya daripada Python. Terutama rantai operasi fungsionalnya yang sangat rapi dan ekspresif. Saya juga menyukai kemiripannya dengan Java Stream. Ekosistem library-nya juga hebat, dan seperti Python, library-librarynya sangat praktis. Tetapi untuk pekerjaan yang perlu dirawat dalam jangka panjang, saya memilih Python, dan ketika performa sedikit saja perlu diperhatikan, saya memilih Java. Di antara Ruby dan Python, saya terus memilih Python karena pendekatan mereka yang berbeda terhadap gradual typing. Python 3 memungkinkan tipe dimasukkan sebagai bagian dari program, sedangkan Ruby cenderung menempatkan tipe di file terpisah. Ini tampaknya terutama untuk library, mirip seperti library JavaScript yang menyediakan file tipe TypeScript. Namun, secara pribadi saya ingin memakai tipe secara langsung. Memang ada Sorbet, tetapi saya tidak suka karena itu adalah gem dan bukan bagian dari sintaks, melainkan sesuatu yang bekerja di dalam bahasa. Saya melihatnya berjalan baik di Stripe, tetapi saya pribadi tidak menyukainya, dan saya merasa Python 3 dengan type hinting bawaan membuat tipe lebih mudah diterapkan daripada Ruby. Saya sangat menyukai Ruby, tetapi berharap bagian type hinting-nya bisa diperbaiki.

  • Pendapat yang membagikan pengalaman dengan berbagai bahasa dan menyatakan tingkat kesukaan yang rendah terhadap Ruby

    Saya sudah mencoba berbagai bahasa, dan pernah sangat mendalami Ruby ketika dulu banyak menggunakan Rails. Namun, Ruby mungkin adalah bahasa yang paling tidak saya sukai. Sebagian besar fitur yang membuat Ruby unik justru mendorong saya untuk mencari kesenangan fungsional di F#, memakai C++ ketika ingin merasa sedang berpetualang, atau menggunakan Scheme/Racket saat menginginkan bahasa dinamis. Saya penasaran apakah ada definisi kuantitatif yang secara umum diterima untuk daya ekspresif bahasa pemrograman. Penulis di sini tampaknya menyamakan ekspresivitas dengan kedekatan pada bahasa alami. Dari pengalaman saya, kode Ruby mudah ditulis, tetapi sulit diikuti jika Anda belum akrab dengan codebase dan idiomnya. Banyak informasi yang dibutuhkan untuk memahaminya disampaikan lewat konteks implisit.

  • Pendapat yang mengungkapkan antipati kuat terhadap Ruby, sambil menyatakan bahwa itu tetap bahasa utama yang digunakan saat ini

    Saya sangat membenci Ruby, tetapi saat ini itu adalah bahasa utama yang saya gunakan. Masalahnya bukan pada Ruby sebagai bahasa yang tidak masuk akal, melainkan pada pola-pola yang umum di ekosistemnya. Penggunaan inheritance untuk berbagi kode, maraknya global mutable state, dan penyalahgunaan metaprogramming disebut sebagai masalah. Masalah-masalah ini bukan sesuatu yang dipaksakan oleh bahasanya, melainkan kebiasaan yang justru jarang dipertanyakan di komunitas.

  • Pendapat yang mengeluhkan sulitnya pemeliharaan Ruby dan mencoba beralih ke bahasa lain

    Saya merasa maintenance Ruby itu mimpi buruk dan sedang mencoba keluar dari neraka itu. Saya suka Ruby untuk proyek pribadi, tetapi ketika bekerja bersama orang lain, segalanya lebih cepat berantakan, dan akibatnya kelebihan Ruby yang katanya "tidak menghalangi jalan Anda" jadi hilang. Masalah yang disorot adalah rusaknya kemampuan untuk melakukan penalaran lokal terhadap kode.

  • Pendapat yang membagikan pengalaman beralih dari Ruby ke Rust sambil tetap mengekspresikan kecintaan pada Ruby

    Setelah memakai Ruby selama 10 tahun, saya beralih ke Rust 4 tahun lalu dan tidak berniat menoleh ke belakang. Meskipun begitu, saya tetap punya rasa sayang pada Ruby. Saya merasa tidak bisa lagi bekerja tanpa sistem tipe yang baik, dan tampaknya saya sudah terbiasa dengan Rust. Namun, saya merindukan kemampuan refleksi Ruby yang sangat kuat.

  • Pendapat yang menyoroti ironi bahwa bahasa pemrograman yang menyenangkan sering kali memiliki pasar kerja yang kecil

    Salah satu ironi dalam pemrograman adalah bahwa bahasa pemrograman yang paling menyenangkan sering kali justru memiliki pasar kerja paling kecil. Jika saya bisa memrogram dengan Elixir sepanjang hari, hidup saya sebagai programmer akan jauh lebih baik, tetapi lowongan Elixir hampir tidak ada dibandingkan TypeScript, Python, dan Java. Ruby dulu merupakan pengecualian untuk hal ini, tetapi sekarang hampir tidak ada lagi orang yang berbasis pada Rails, dan sebagai gantinya jauh lebih banyak yang berbasis pada React dan NextJS. Ini lebih merupakan cerita tentang pasar aplikasi full-stack; bagi pengguna Rust untuk sistem atau pengguna Python untuk data/AI, situasinya mungkin berbeda.

  • Pendapat yang menekankan pengaruh ekosistem dan budaya Ruby terhadap pemrograman

    Ada banyak pembahasan tentang bahasanya sendiri, tetapi ekosistem Ruby dan budaya yang dibangunnya adalah alasan saya terus bertahan di Ruby. Artikel ini juga menyinggung poin itu. Saya belum pernah melihat komunitas pemrograman di sekitar Ruby yang setulus memberi semangat dan seramah itu.

  • Pendapat yang memberikan respons positif terhadap penulis yang menikmati Ruby dan membagikan pengalaman pribadi

    Saya senang penulis menikmati Ruby, dan sebagai seseorang yang punya pengalaman terbatas dengan Ruby, kutipan-kutipan ini menonjol bagi saya. Penting bahwa sebuah bahasa terasa menyenangkan untuk digunakan, bahwa kode Ruby yang ditulis dengan baik bisa dibaca seperti bahasa alami, dan bahwa ada kekuatan besar dalam merasa diakui oleh bahasa yang Anda pakai untuk memrogram. Saya juga setuju dengan ucapan Kent Beck bahwa desain perangkat lunak adalah latihan dalam hubungan antarmanusia. Semua komponen yang mendukung sebuah bahasa—compiler, dokumentasi, standard library, library pihak ketiga, package manager, framework, formatter, profiler, dan sebagainya—juga sangat penting.