Ruby mencakup metaprogramming (refleksi, introspeksi), pemrograman multi-paradigma, dan dinamika pada tingkat yang tidak biasa. Mudah menembak diri sendiri di kaki dengan kekuatan dan fleksibilitas.
Sulit? Ruby memiliki kemampuan untuk menjadi sangat mudah dibaca atau tidak rusak. Saya telah melihat kode yang sepertinya milik skrip Bash.
Praktik Buruk? Beberapa Rubyist menghargai kepintaran daripada kebijaksanaan. Mereka menulis dan berbagi trik yang menunjukkan kepintaran mereka, tetapi ini menciptakan kode yang tidak dapat dibaca dan rapuh.
Sebagai tambahan: Javascript adalah bencana karena desain, dan buku "The Good Parts" mencoba mengekstrak keindahan tersembunyi itu. Perl, sebuah bahasa yang mempopulerkan "Ada Lebih Dari Satu Cara Untuk Melakukannya" (yaitu, fleksibilitas), memiliki buku serupa dalam "Perl, Best Practices". Sejarah Perl adalah salah satu eksperimen dan pengalaman yang sulit didapat, "Praktik Terbaik" mewakili pengetahuannya. Perl 6 akan, saya pikir itu adil untuk mengatakan, reboot bahasa berdasarkan pengetahuan itu dan banyak lagi. Ruby mungkin menderita masalah serupa.
@James dan untuk loop ... Ketika Anda melakukan loop for di ruby, itu kemudian memanggil ".each". Oleh karena itu, "untuk" adalah gula sintaksis untuk orang yang lebih nyaman dengan loop gaya C. Tetapi sebagai seorang Rubyist, Anda akan menggunakan iterator seperti .map, .inject, .each_with_object, sepanjang waktu. Anda tidak perlu menulis for for loop dengan sesuatu seperti "i = 0; i> 6; i ++" di ruby, dan akhirnya Anda menghentikan kebiasaan itu. @ andrew ... rubi fasih tidak mendukung loop.