On May 26, 4:35 ¨Âí¬ ¢úéíâáôí ®®®¢ ¼úéíâ®®®Àïòåå®ãè÷òïôåº > Michael Fellinger wrote: > > Hey zimbatm, > > > I'll dig into this more later, but this seems like a really nice piece > > of work, > > simple, yet powerful. > > Now we just gotta convince everybody to use it :) > > Hi Michael, > > long time no read! Yes, you spotted the weak point right-on, getting > adoption is critical. This is why I am trying to keep it as simple as > possible. Also, I believe nobody really wants to learn a new API in this > already overloaded technology world. This is why my next step is to > start converting real-world patches to show the was. Besides the issues you mention (new API and adoption), I see other reasons something like this isn't going to make much headway. 1. You can use -w ruby option to get warnings about methods that are redefined. 2. Raising an error on a method redefinition is too much. There are times when that's what you need to do, say to temporary patch a bug. 3. Using a standardized extension library like ActiveSupport or Facets is a fairly safe bet for the more common extensions. 4. Using a unique method name, eg. String#smith_to_s if your project is called Smith, is a fairly safe bet for more specialized extensions. Given all this I don't think this kind of API is worth the effort. The real solution is, of course, Selector Namespaces. That's a more worthy pursuit, IMO. But as far as I know, no one has yet been able to come up with a fully comprehensible and user-friendly design for that. I start to wonder if it is even possible. --Tom