From: Joel VanderWerf Date: 2008-02-27T16:45:51+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. Fully agree. Also, a method like Util.rot13(string) is defined in a pretty bland namespace, so it is really almost as "global" as String#rot13. How qualified would it have to be to be safe? -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407