On Monday, February 10, 2003, at 08:01 PM, Sean Chittenden wrote: > Which is a fundamental shift away from operators as methods and why > I'm kinda up in arms about this philosophical change. In an OO world, > I expect i=(f.b=(42)). > I've tasted the Kool-Aid and changed my mind about this (even though it bit me.) The new behavior is more consistent, prettier, and much easier to explain. * Assignment methods are already unlike other methods because they are treated with special syntactic sugar. (eg i = f.b = a) * Top level assignment operator is conceptually hard to map into a method call. * Neither technique guarantees: (f.b=a) == (f.b) * Most users are accustomed to right to left assignment and your eye tends to give = extra weight. * Might be confusing to count on assignment having side effects. Eg: this might be confusing to a new user. Requires you to know details of parser class. > root = XML::Parser.new.string = (str).root Maybe it's possible to automatically create or infer set_ aliases? root = XML::Parser.new.set_string( str ).root Automatic variant of string=() when no other set_string present?