Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

petdance (2468)

AOL IM: petdance (Add Buddy, Send Message)
Yahoo! ID: petdance (Add User, Send Message)

I'm Andy Lester, and I like to test stuff. I also write for the Perl Journal, and do tech edits on books. Sometimes I write code, too.

Journal of petdance (2468)

Sunday February 15, 2004
10:56 PM

On the importance of names

[ #17431 ]
I have a reputation as a pain in the ass when starting a project. Whether it's the Phalanx project or WWW::Mechanize, or the data-transfer system we're setting up at work that we called "Moto", I think naming projects is critical to their continued success. I'll literally spend hours before the project starts, working to find the perfect name. I'm glad I'm not alone.

Simon has started a new project. Like most of Simon's projects, it is not modest: It's a generic MVC-based web application framework that pulls together disparate parts such as web server and database interfaces.

What to call it? From Simon's weblog:

Let me start by saying that the plan was always for Apache::MVC to be abstracted into a more general MVC web application framework, and so Apache::MVC would eventually become the Apache-based subclass of this more general project. And such projects need a name - Struts, Brazil, Quixote, Wafer, and so on.

Also, having a name like that allows the project to have a decent web presence, show up on people's CVs, and so on. I really do see [the project] as being Struts for Perl programmers.

Simon understands the importance that naming holds, that this entity will forever be tied to a few syllables. He could have called it something techie and uninspiring, like AppFrame or WebGirders, that tried to tie into what the actual product is, but leaving it completely bland.

No, he called it Maypole.

So why Maypole? I wanted a name which reflected the fact that the framework was a focal point for various different "strands"; that in a sense it tied everything together. I got thinking about knots and anchors and things but that wasn't helpful.

In the same way that a maypole is nothing special by itself, but needs dancers around it, Maypole isn't really very interesting on its own but works wonderfully when combined with a data source library, a view layer and a presentation mechanism. Equally, though, you can't have a maypole dance without the maypole.

It's brilliant as a name, and it evokes an instant image. One other parallel that he didn't mention is the interleaving of the various threads, combining to make the specific look of the maypole.

If only all projects were named so evocatively...

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Several years ago I assembled what I thought were the cool sounding names from the set of all Crayola colors, and these are what I use for larger-project codenames. Still, within that set I try to obey the old hacker traditions in naming: multiple levels of meaning, and whenever possible, really horrific puns.
    • I've recently decided to name all my machines after the fight "sounds" (onomatopoeia) superimposed on the fight scenes of the old Batman [] serial.

      And now I own:

      • splatt (the firewall)
      • klonk (the old laptop)
      • zowie (the machine hosted by an ISP)

      I can't wait to get new machines to name! ;-) I might even rename machines named after another scheme...

      Here's a page that list them all []. And here's a oneliner to fetch those names:

      links -dump
      | grep -E

      • I've recently decided to name all my machines after the fight "sounds" (onomatopoeia) superimposed on the fight scenes of the old Batman serial.

        Very cool. I spent an hour or so trying to think of a naming scheme for our computers at work. I ended up using hobbit names for Macs and orc names for the Wintel boxes. :-) IIRC, frodo was the most common host name in a survey done a few years ago.
      • All our boxes were named /^flr[1-6]$/, and I demanded that the sysadmin come up with something new going forward. He's a sports guy, so I said "all sports names, please." So now we have blitz, divot, dinger and pigskin.


  • I have to say I'm torn on this one. On the one hand, I see projects like Apache, and for that matter Perl, which have catchy names that don't aim to be descriptive and it's worked well for them. On the other hand if someone was looking for say an OO to RDBMS mapping framework they'd be far more likely to stumble across Class::DBI than Alzabo. I'm not suggesting the CPAN namespace hierarchy is as good as we can get, but there's certainly plenty of value in it.

    • Have you ever tried finding a Ruby library to do X? This convention of cute and clever (rather than obvious) names seems much more common on the RAA, and it causes nothing but pain.
  • when they named Ponie? :)
  • I'm real big on naming, too. Although I'm not often in a position to name a project or product, I obsess over the name of each report or program I write at work and over the names of variables in my programs. Why? Because when the thing you are working with is ineffable, you often have a vaguer idea than you should about what it is. If you think long and hard about what it is and name it so, you'll usually have a clearer idea of what you're doing. I've seen enough counterexamples in my own and other pe

    J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
  • I was asked to work on a new project. When I got the specs I said "hey, this looks a lot like Apache with special configurations, I don't want to rewrite Apache, and a few Apache modules, with Perl since there's.. well, Apache. Let's just use Apache!" But no, I was to forge on. Then, every week new specs/features came to me. I always said "Hey, this is also in Apache.. I keep rewriting more and more of a wheel which is already very round. Let's just use Apache!" Anyways... I named it CrApache. Not because t