[Zope3-dev] More name game suggestions

Phillip J. Eby pje@telecommunity.com
Sun, 09 Dec 2001 01:32:47 -0500


At 12:50 AM 12/9/01 -0500, Shane Hathaway wrote:
>- Services are like the ground you stand on.  You can just assume they are 
>there.  Utilities are like your wristwatch.  You forget to put it on sometimes.
>
>- You can register components with a service.  You can not register 
>components with a utility.
>
>- Services can implement complex kinds of component registration, while 
>utilities are always registered in a simple way (that is, just the output 
>interface or a name).  For instance, presentation services allow you to 
>register components by the combination of input interface, output 
>interface, name, and layer.
>
>- Services are rarely application specific.  Utilities are often 
>application specific.  You should create an XML parser as a utility, not a 
>service.
>
>- There will be a lot of utilities and relatively few services.
>
>- In most cases, new developers want to create utilities, not services.
>
>- Most of the time, services don't do any real work.  They usually just 
>find a component or call a component.  Utilities usually do work.
>
>I think "utility" is a very fitting term.  "Application component" is too 
>general.


Wow, this all sounds pretty confusing to me.  Is a database connection a 
service or a utility?  If you'd asked me before this e-mail, I'd have been 
certain it was a service.  Now I haven't a clue.

Honestly, from what you've described, it sounds to me like the names are 
backwards, because to me a Service would be something you'd want to have a 
lot of, with relatively few Utilities (based on the names alone).  Also, if 
the purpose of a Service is to register components, then why isn't it 
called a Component Registry?  I'd think that a service was any component 
that could be looked up "placefully" by name or interface, and a Component 
Registry would be a specific kind of service dedicated to registering other 
components.

Personally, I think having such a narrow definition of "service" is going 
to be a bad idea, from a marketing perspective if nothing else.  What about 
"web services"?  You're basically saying "we want relatively few services", 
which sounds really bad in a marketing context.  :)  Now, if you say, "we 
want relatively few component registries to avoid confusion of where to 
look things up, but you can have all the other kinds of services you want," 
that sounds much better.  :)  Utility, meanwhile, just doesn't sound like 
it belongs at all.

Take it from the author of the infamous ZPatterns...  awkward terminology 
can really hinder the adoption of a technology.  :)