Re: Name space: throwing exceptions easily

2008-07-02 Thread Aristotle Pagaltzis
* 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/


Re: Name space: throwing exceptions easily

2008-07-02 Thread Aristotle Pagaltzis
* Aristotle Pagaltzis [EMAIL PROTECTED] [2008-07-03 00:25]:
 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.

Err, I forgot to finish my argument.

Where I was going with this is that it is this tradeoff that is
meaningful, and that is what you want to describe in a summary
such as the name of a module.

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


Re: Name space: throwing exceptions easily

2008-07-02 Thread Eric Wilhelm
# from Aristotle Pagaltzis
# on Wednesday 02 July 2008 15:21:

no one would call a module Exception::Complicated except as a
joke. 

Well, you're going to have a hard time predicting what a gaggle of zany 
programmers might do, especially if you dare them like that ;-)

I, for one, am seriously looking forward to the opportunity to publish 
Exception::Complicated::Er.

That means “easy” provides no useful differentiation in practice.

That much is true.  Except it does imply that the author thought 
something about the problem space was overly difficult, which might 
resonate with the audience.

Whoohoo, let’s just call it NinjaCamp then

That's a snazzy name, but doesn't really fit since ninjas might conjure 
up associations such as sneaky assassins for hire -- I would like my 
exceptions to be more straightforward and loyal.  Possibly 
Samurai::Picnic or Berserker::Expedition.

Or just Grenadier.

--Eric
-- 
Don't worry about what anybody else is going to do. The best way to
predict the future is to invent it.
--Alan Kay
---
http://scratchcomputing.com
---


Re: Name space: throwing exceptions easily

2008-07-02 Thread Aristotle Pagaltzis
* Eric Wilhelm [EMAIL PROTECTED] [2008-07-03 02:00]:
 # from Aristotle Pagaltzis
 # on Wednesday 02 July 2008 15:21:

 no one would call a module Exception::Complicated except as a
 joke. 

 Well, you're going to have a hard time predicting what a gaggle
 of zany programmers might do, especially if you dare them like
 that ;-)

 I, for one, am seriously looking forward to the opportunity to
 publish Exception::Complicated::Er.

That’s the “as a joke” clause. I made very sure not to forget
that qualification. ;-)

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


Re: Name space: throwing exceptions easily

2008-07-02 Thread David Nicol
On Wed, Jul 2, 2008 at 5:44 PM, Aristotle Pagaltzis [EMAIL PROTECTED] wrote:
 * Aristotle Pagaltzis [EMAIL PROTECTED] [2008-07-03 00:25]:
  No one would say that they are
 trying to achieve slowness or inflexibility.

Drafted any mission-critical change control policies recently?