Eric Mahurin wrote:The biggest problem I have with being able to add/remove/modify methods of an object (using a meta class or directly in the object's class) is the future of optimization in Ruby. Adding methods may not cause too much of an issue, but modifying them sure could.
"Researchers seeking to improve performance should improve their compilers instead of compromising their languages."
-- An Efficient Implementation of SELF, a Dynamically-Typed Object-Oriented Language Based on Prototypes, July 1989
I love this reply! What a great quote. It ties in nicely with "premature optimization is the root of all evil." Amen, brother! Just remember, people used to think Lisp and Smalltalk were too slow as well. Virtual machines used to be a dirty word. Now, java and c# are two of the most popular corporate languages and they both run off VMs. I love the prototype parts of Ruby. They are especially great for debugging specific instances and other things. Let's make our languages more dynamic, not less. More is less.