From: Jari Williamsson Date: 2008-02-27T16:59:31+09:00 Subject: Re: open classes and language extensibility Martin DeMello wrote: > I was pondering the whole "monkeypatching" debate, and I realised that > disallowing modification of core classes removes an extremely > important property of the language - the ability to have extension > code you write be "on par" with the base language. This is often > touted as one of the big advantages of lisp and forth, and it would be > a shame to lose it in ruby. For instance, lets say your code relied > heavily on rot13. If you couldn't add a #rot13 method to String > because String was a core class, you'd be forced to say rot13(string), > or even worse, Util.rot13(string). You'd end up with expressions like > rot13(string.capitalize.squeeze), where it is very clear which methods > come from "base ruby" and which are yours. I think this statement is incorrect. You CAN create a string with a #rot13 method, without adding that method to the core class. Best regards, Jari Williamsson