* On Tue, Jul 01 2008, Aristotle Pagaltzis wrote:
> If I see a module called Exception::Easy in a list of modules,
> I have *absolutely no idea* what it does. In contrast, if it was
> Exception::Class::Functions, I could immediately guess pretty
> well at what it does, even if I didn’t know exactly.

I take it the opposite way.  Exception::Class::Functions makes no sense
to me.  Class?  Functions?  What?  In the end, I will have to click
through and read the docs.  The name is meaningless and hard to type.

As for Exception::Easy, I think that makes a lot of sense.  "Oh hey, a
simplified interface for dealing with exceptions."  I will still have to
click through and read the docs, though.

Additionally, Exception::Easy will only show up when searching for
"exception", while Exception::Class::Functions will show up when
searching for "class" and "function" in addition to "exception".
Exception is really the only relevant keyword, so why contaminate the
already-busy "Class" search with something that's not relevant?

In the end, I can't think of any module names that make sense without
knowing what they are.  A few words aren't enough to describe a module
in detail.  If you are faced with 10 search results that sound relevant,
you will just have to click through and skim the docs.  Even if the
module does what you want, the interface might not be what you want, or
you might dislike the implementation.  

For example, compare Moose to Class::Builder.  Both are class builders,
but the better-named one is *not* the one you want to use.

I think Shakespeare said it best:

      What's in a name? that which we call a rose
      By any other name would smell as sweet;

The converse is also true.

Regards,
Jonathan Rockway

-- 
print just => another => perl => hacker => if $,=$"

Reply via email to