On 11/26/2009 10:48 AM, Martijn Faassen wrote:
Thomas Lotze wrote:
Martijn Faassen wrote:
Thomas Lotze wrote: [snip]
What about a simple and consistent API for all components including utilities, adapters and multiadapters:
IFoo() IFoo(x) IFoo(x, y)
I like the interface being called to be the motion of doing "anything" with the CA that doesn't expose the CA mechanics to application developers as much.
The last one won't work if we want to maintain backwards compatibility. The second argument is the default.
Technically, that's obvious. I guess I meant to say "How about..." then. You didn't explicitly mention the subject of backwards compatibility in your original message, so let's make it explicit now: Is backwards compatibility a goal in this discussion?
True. It's indeed a goal, as I'd like to be able to use this sooner rather than later. If we break backwards compatibility then we'd have to go through all the IFoo() calls everywhere in all our code to see whether a default argument is in use.
Another option would be to provide a backwards-compatibility mode of our code which can be switched on and off. Your notion of bringing the component lookup mechanics closer to being a "language feature" is very intriguing and I like it a lot. However, if we do so, I'd like us to not having to resort to second-best spelling/implementation due to backwards compatbility. I'd like to work pretty hard on doing the implementation we want because it's a good implementation and then make backwards compatibility work. (I know, I'm a dreamer ...) Christian -- Christian Theune · ct@gocept.com gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany http://gocept.com · tel +49 345 1229889 0 · fax +49 345 1229889 1 Zope and Plone consulting and development