From: Austin Ziegler Date: 2005-08-21T21:30:54+09:00 Subject: Re: Non-overridable and non-redefinable methods On 8/20/05, TRANS wrote: > On 8/20/05, Austin Ziegler wrote: >> On 8/20/05, TRANS wrote: >>> One could argue that no methods should be redefinable. That classes >>> ought to be subclassed if they are to change at all. I think there >>> is good support for this. Furthermore, if there is such a thing as a >>> proper means of class alternation it is surely AOP. >> But then one isn't arguing about Ruby, but something that I wouldn't >> want to use. > No, why would that be? If you can achieve the same things, where would > the difference lie? In other words, if you couldn't _redefine_ > methods, but you could _wrap_ them, the end effect would be the same. No, it wouldn't be. Some of what I do would go away if rdoc gained attribute notation, but you'll sometimes see me do: attr_accessor :foo # The ; is because of a vim limitation that I haven't bothered to # find and fix yet. remove_method :foo= ; def foo=(f) #:nodoc: ... end But the ability to change the meaning of a method after it's been initially defined *can* be useful, especially when you get to metaprogramming. Some of it might be solveable with AOP, but not all of it. The combination of AOP and subclassing is certainly insufficient to match the full power of method redefinition. > And remember you can still subclass and override. And if you really > have a lot of heavy changes to make, well, then its probably the right > time to get out the old Cut & Paste :-) That sounds like someone trying to defend their pet idea more than someone who is being pragmatic. -austin -- Austin Ziegler * halostatue@gmail.com * Alternate: austin@halostatue.ca