My first impression, sorry, is that "Forest" is trying to be too cute.

Well, it is actually trying to be "more general", but it is kind of cute too :) Our module is not just tree data structures, but a framework for working with all different kinds of trees, including event handling and (for the most part) transparent persistence. So in a way it is a kind of digital forestry if you will, hence the name ;)

Who's going to search for a "Forest" module when they're looking for a tree data structure? And when I see "Forest::Tree", I think of forestry and the environment, not data structures.

A search for Tree will surely turn up Forest::Tree, but a search for "Tree Persistence" will likely bring up Forest::Tree::Persistence. This, along with some well written descriptions should give us sufficient enough rankings. But regardless of all this, I think it is wrong to cater to the current less-than-perfect/accurate search(.cpan.org) mechanism, and not assume that it will eventually improve.

The idea behind the name, and the reason we are choosing to create a top-level namespace is that this module is not really a module, so much as it is a framework. A framework cannot be easily boxed into a generic TLN like Tree:: or Data:: or some other such thing. It makes sense to have a more original namespace, and (to take a que from ingy) it doesn't hurt to be cute or witty either, as people will remember it.

The fact that you're thinking about aliasing is a sign that it's flawed in the first place.

I disagree with this very much. Packaging a set of components together under a well organized namespace is (IMO) the Right Thing to Do. However, sometimes in order to do this right, you end up with long drawn out names which are a pain to type. Aliasing allows the user of your module to shorten the names to a more managable size, and at the same time allows the maintainer to keep their module namespace neat and tidy.

(And I know how you probably feel -- development names are tough to let go, it's easy to get attached to them through repeated exposure.)

Actually, we are not that tied to it yet. We are building this in anticipation of a particular $work project, so it is still a fairly localized change if we have to make it.

Personally, I liked the name "Tree::Simple" -- it immediately stood out among all the tree modules

Thanks, I really wanted to call it plain old "Tree" (which is what it was when it was only used internally at $work). My biggest problem with the name Tree::Simple is that when I first wrote it,.. it was fairly "Simple". It has now grown into much more (Tree::Simple::VisitorFactory, Tree::Simple::Manager, Tree::Simple::View, etc.) and so the name doesn't fit so well anymore.

This is part of the reason why we are leaning towards a name like Forest. It has lots of room to grow ;)

-stvn

In reply to Re^2: Module naming issues by stvn
in thread Module naming issues by dragonchild

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.