Ruby obejmuje metaprogramowanie (refleksja, introspekcja), programowanie z wieloma paradygmatami i dynamikę na niespotykanym poziomie. Łatwo jest strzelać w stopę dzięki sile i elastyczności.
Kłopotliwy? Ruby może być wyjątkowo czytelny lub niezniszczalny. Widziałem kod, który wygląda, jakby należał do skryptu Bash.
Złe praktyki? Niektórzy rubiści cenią spryt nad mądrością. Piszą i dzielą się sztuczkami, które pokazują ich spryt, ale tworzy to nieczytelny i delikatny kod.
Nawiasem mówiąc: Javascript był z założenia katastrofą, a książka „The Good Parts” próbuje wydobyć ukryte piękno. Perl, język, który spopularyzował „Jest więcej niż jeden sposób na to” (czyli elastyczność), ma podobną książkę w „Perl, Best Practices”. Historia Perla to historia eksperymentów i ciężko zdobytych doświadczeń. „Najlepsze praktyki” reprezentują jej wiedzę. Perl 6 będzie, jak sądzę, uczciwym powiedzeniem, restartem języka opartym na tej wiedzy i nie tylko. Ruby może cierpieć z powodu podobnych problemów.
@James i pętle ... Kiedy robisz pętlę for w ruby, wówczas wywołuje „.each”. Dlatego „for” to cukier składniowy dla osób bardziej komfortowych z pętlami w stylu C. Ale jako Rubyista będziesz przez cały czas używać iteratorów takich jak .map, .inject, .each_with_object. Nigdy nie będziesz musiał pisać pętli for z czymś takim jak „i = 0; i> 6; i ++” w ruby, więc w końcu porzucisz nawyk. @ andrew ... elokwentny rubin nie popiera pętli.