Trans
5/29/2009 3:05:00 PM
On May 26, 4:35=A0pm, "zimbatm ..." <zimb...@oree.ch> wrote:
> 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