3 ms·
> Ruby Ruby has some of the best meta-programming facilities out there. Yes you can't manipulate syntax in the same way as lisp, but the fact that all methods
by bbatha 9y ago
> Ruby
Ruby has some of the best meta-programming facilities out there. Yes you can't manipulate syntax in the same way as lisp, but the fact that all methods are message passing and first class blocks make tons of very powerful meta programming possible. Basic features that look otherwise first class are based on Ruby's meta programming facilities like `attr_reader` and friends. Funnily enough, the meta programming facilities of Ruby are precisely what turns a lot of people off. The wtfs per minute of using something like ActiveRecord is super high for people with only passing familiarity because there's so much that that's defined through Ruby's meta programming facilities.
- jaggederest 9y agoI say this as someone that has used and loved Ruby for more than ten years now: Smalltalk has worlds better dynamic and metaprogramming. That said, ruby does have a lot of power, but it's not of the same order as self/smalltalk etc.
- flavio81 9y ago>Ruby has some of the best meta-programming facilities out there. Ruby has meta-programming facilities, but they pale compared to the easiness of doing meta-programming in Common Lisp. In Ruby, meta-programming is an advanced topic (see for example the implementation of the RoR ActiveRecord). In Lisp, meta-programming is your everyday bread&butter, and one of the first things a beginner learns. Because it isn't too different from regular programming!! [The same comment applies, mostly, also to Clojure, Racket, Scheme, and the other Lisps]