Ruby охватывает метапрограммирование (рефлексия, самоанализ), многопарадигмальное программирование и динамизм на необычном уровне. Легко выстрелить себе в ногу с силой и гибкостью.
Неудобные? Рубин обладает способностью быть чрезвычайно читабельным или непостижимым. Я видел код, который выглядит так, как будто он принадлежит скрипту Bash.
Плохие практики? Некоторые рубиисты ценят ум за мудрость. Они пишут и делятся трюками, которые демонстрируют их ум, но это создает нечитаемый и хрупкий код.
В дополнение: Javascript был катастрофой по замыслу, и книга «Хорошие детали» пытается раскрыть его скрытую красоту. Perl, язык, который популяризировал «Есть больше, чем один способ сделать это» (то есть гибкость), имеет похожую книгу «Perl, Best Practices». История Perl - это опыт экспериментов и с трудом завоеванный опыт, «Best Practices» представляет его знания. Perl 6 будет, я думаю, справедливо сказать, перезагрузкой языка, основанного на этих знаниях и многом другом. Ruby может страдать от подобных проблем.
@James и for loop ... Когда вы делаете цикл for в ruby, он вызывает ".each". Следовательно, «для» - это синтаксический сахар для людей, которым более комфортно работать с петлями в стиле C. Но как Rubyist вы будете использовать итераторы, такие как .map, .inject, .each_with_object, все время. Вам никогда не придется писать цикл for с чем-то вроде «i = 0; i> 6; i ++» в ruby, и в итоге вы избавитесь от привычки. @andrew ... красноречивый рубин не поддерживает циклы.