[Zope3-dev] More name game suggestions

Guido van Rossum guido@python.org
Sun, 09 Dec 2001 17:03:17 -0500


> If this distinction is correct, we *definitely* need a very smooth path
> to turn a utility into a service. As in practice, we cannot design interfaces
> separate from actual use. We often abstract away when we see commonalities
> appear during the actual writing of application(s), not before that.
> In component lingo, this means we evolve a utility into a service by
> explicitizing and standardizing on an interface for a group of utilities
> that turn out to be related, and registering these utilities with a service
> registry together with the interface. And there we have a new service.

Assuming that services and utilities are both defined by interfaces, I
would think that once you have (a reference to) one in your hands,
using it goes the same way: you make method calls.  What might differ
is how you get one.  I think this is acceptable: interfaces don't
describe the constructor or the signature of a factory anyway.

> Though people want to implement local policies for the strangest things.
> That's one of the nice things about acquisition, in fact. It's trivial
> to turn a piece of code with a name into something more flexible and
> reusable.

Like a piece of rope with which you can do all sorts of useful things,
and hang yourself, too, it's also one of the dangers of acquisition. :-)

> I definitely learn from examples myself -- I think in fact most people
> tend to work that way, including the key Zope folks. It's just that they've
> already seen so many examples they've already gone through the abstraction
> process, and it's hard to articulate your reasons if your understanding
> has already turned into intuitions and gut sense..

Well, I wish we had a company-wide rule that all abstractions must be
accompanied by examples.  The lack of examples drives me mad at
times. :-( / :-)  I'm glad Jim wrote his tutorial, but I wish it was
more accessible on the web (rather than only in CVS).

--Guido van Rossum (home page: http://www.python.org/~guido/)