Ruby adopta la metaprogramación (reflexión, introspección), programación de paradigmas múltiples y dinamismo a un nivel poco común. Es fácil dispararse en el pie con potencia y flexibilidad.
¿Molesto? Ruby tiene la capacidad de ser extremadamente legible o inescrutable. He visto código que parece pertenecer a un script Bash.
Malas prácticas? Algunos rubíes valoran la inteligencia sobre la sabiduría. Escriben y comparten trucos que muestran su inteligencia, pero esto crea un código ilegible y frágil.
Por otro lado: Javascript fue un desastre por diseño, y el libro "The Good Parts" trata de extraer su belleza oculta. Perl, un lenguaje que popularizó "Hay más de una forma de hacerlo" (es decir, flexibilidad), tiene un libro similar en "Perl, mejores prácticas". La historia de Perl es de experimentación y experiencia ganada con esfuerzo, "Best Practices" representa su conocimiento. Perl 6 será, creo que es justo decir, un reinicio del lenguaje basado en ese conocimiento y más. Ruby puede sufrir problemas similares.
@James y bucles for ... Cuando haces un bucle for en ruby, llama ".each". Por lo tanto, "for" es azúcar sintáctico para personas más cómodas con bucles estilo C. Pero como Rubyist, vas a usar iteradores como .map, .inject, .each_with_object, todo el tiempo. Nunca tendrá que escribir un bucle for con algo como "i = 0; i> 6; i ++" en ruby, por lo que terminará abandonando el hábito. @andrew ... el elocuente rubí no respalda los bucles.