* Jonathan Rockway <[EMAIL PROTECTED]> [2008-07-02 18:30]:
> * 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.

Fair enough.

We can reasonably disagree on whether Exception::Class::Functions
is a good name. That’s neither here nor there. Personally I don’t
like it a lot, just better than the other options on the table so
far.

> 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.

On this, I disagree.

Here’s litmus test: would you ever use the opposite adjective in
a description? If not, it’s not useful. I think you’ll agree that
no one would call a module Exception::Complicated except as a
joke. That means “easy” provides no useful differentiation in
practice. 

In fact, the “simplified” in “simplified interface” is largely
redundant. Using an interface by definition means you are looking
for simplification in doing or accessing the thing that the
interface provides.

Similar words that say something without communicating anything
are “fast” and “flexible.” No one would say that they are trying
to achieve slowness or inflexibility.

In all of these cases, there is a tradeoff that you are accepting
to gain, say, simplicity at the cost of inflexibility, or maybe
flexibility at the cost of simplicity, or flexibility and
simplicity both at the cost of performance, or whatever the
particular tradeoff happens to be.

> 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?

Because anyone who searches on “class” gets what they deserve.
:-)

> 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. 

I see a trend here… you are the person who argued loudly that in
the end, anyone who wants to know how Catalyst works needs to
read the code, regardless of the state of the docs…

> 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.

Whoohoo, let’s just call it NinjaCamp then (it produces functions
that throw fatal errors, geddit, geddit?). Naming is hard, let’s
go shopping. Maybe you want to (re-?)read Zen of Comprehensive
Archive Networks sometime.

Then again, you are the author of a Catalyst-based weblog app
called Angerwhale, which makes me wonder if you haven’t long
forfeited your right to take part in *any* discussion about
naming. :-P

Regards,
-- 
Aristotle Pagaltzis // <http://plasmasturm.org/>

Reply via email to