On the importance of names

petdance on 2004-02-16T03:56:14

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


Naming

mdxi on 2004-02-16T04:17:29

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.

Re:Naming

BooK on 2004-02-16T13:53:57

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 http://www.usfamily.net/web/wpattinson/otr/batman/batfight.htm
| grep -E '^\|  '
| cut -d'|' -f3
| perl -lne 'print join$/,split/ +/'
| sort -u

Re:Naming

nkuitse on 2004-02-16T18:49:37

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.

Re:Naming

petdance on 2004-02-16T19:40:35

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.

Maybe, maybe not

grantm on 2004-02-16T06:38:52

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.

Maybe not.

educated_foo on 2004-02-16T15:27:38

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.

so where were you...

hfb on 2004-02-16T16:23:05

when they named Ponie? :)

Naming nazi

jdavidb on 2004-02-16T21:16:57

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 people's work to convince me of that forever. :)

After realizing I held this philosophy and mentioning it to my coworkers, I was gratified to hear in one of my software engineering classes that some OO-heavy development philosophies really emphasize naming. Apparently others have noticed that if you can't say what it is, you probably shouldn't be working with it. :)

One time.. at band camp

KM on 2004-02-19T23:08:12

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 the code was crappy (because it wasn't) but because it was pretty crappy to be rewriting Apache (and it was also a semi-subtle way to voice my opinion of the project).

Ultimately, when I was on vacation someone else said at a meeting "Hey, what Kevin is doing is already done with Apache. We should use Apache!" I returned from vacation, and 2 weeks later* I figured out my original proposal for using Apache was being done and someone else was touting they had an epiphany.

* I put my notice in about 3 weeks later