> > Method combination is another feature that's very specific to CLOS, > > and I would argue that 99% of programs don't use it, and of the 1% > > that do, at least half are probably using it wrong (or just using it > > for the sake of saying they're using a non-standard method > > combination).
> Not really.
> One example - I was doing an optimization system. I wanted users to > construct optimizations simply. One of the trickier areas was optimization > terminations. You can decide to terminate an optimization on many criteria > - timeout, failure to progress, "good enough" solution found, etc., or a > combination of these items.
I appreciate your testimony of an application of method combination. I personally endorse using method combination in situations where you want define a function based on all of the information about the arguments.
Let's take a scenario where we use not only method combination, but multi-methods. Then you have:
If it's clear that your OPTIMIZE function wants to see the complete class graph of X and Y, and the corresponding methods defined on those class combinations, then all the power to you; you have demonstrated a capability that CL has for an interesting and unique situation. Bravo! (I'm clapping for you.)
What about the situation of needing an LDAP interface? Try implementing a (Tight)VNC viewer in CL. Do you know what you're up against?