Names are important in computing. Really Important. I'm not talking about calling classes sensible things like UpdateUserDetailsCommand in preference to UpdUDetsCd. I mean the names of products themselves. A great name tells us lots about a piece of software: it tells us that the creater has some imagination, a sense of style even. It tells us that this person is serious about the success of the product, that they understand that there is more to making great software than writing great code.
Java
is a fantastic name for just about anything. I love the ambiguity; coffee, or the largest island of the Indonesian archipeligo? There is no way I could hear the name Java
and not wonder what it is a name for. C# (pronounced cee-hash by those in the know) is twee and derivative. Its pathetic enough trying to impress girls with the fact that I am a Java developer
. Imagine if I had to say I was a cee sharp
or dot net
programmer? Ugggh. But from this we can learn something of the mindset that created these two languages - C# /is/ actually more derivative than Java.
So, if we have eliminated C# as the next step forward in languages, what about the other two possible Java-replacements: Python and Ruby. Well, Python
is great, of course. There's that ambiguity once again: funny Englishmen, or snakes. Snakes are cool. Actually, naming things after animals is /always/ cool, even Ants. Ruby grows on me. I don't /love/ it, but as an English name given by a non-native English speaker, I'm happy to give it a pass. I've noticed that non-native speakers tend to name their projects by horrible acronyms.
The Apache project gives us some great examples of both good and bad. Tapestry
is a beautiful, evocative name, just perfect for a web presentation framework. Struts
is a good (perhaps a little too obvious) pun on framework
. Lucene
and Avalon
are nice enough. Ant
we mentioned already. commons-lang
is an abomination, being the concatenation of commons
(ugh) with that incredibly romantic English word lang
. Worse, the concatenation is performed with a hyphen. Names don't have hyphens in them, guys! (Well, apart from Mike's ). Commons
could evoke either typical
or communal
or both; neither interpretation is inspiring in this age. Actually, commons
seems to be Jakarta's moniker for stuff we don't have proper names for
or, perhaps, stuff that doesn't really deserve to be a real project
. Similarly, commons-primitives
could /almost/ conjure up some kind of vision of neolithic tribal society, uncorrupted by modern notions of private property .... but it doesn't. To me this indicates something about the respective quality of the projects. Would any truly committed developer, bulding something they love and believe in, possibly call their project commons-lang
? Nope. They would call it Tapestry
. If they had Howard's sense of theater, that is.
In the realm of distributed computing, we have been given CORBA
- a nice, easily pronouncable acronym that sounds like a real English word and even better reminds us of snakes - and the ridiculous WSDL (pronounced whizz-dull
, which is an oxymoron). I guess this means that Web Services are just another dead end - surely, nothing useful could ever be named WSDL?
Being a contrarian, I named our project with a verb. Hibernate isn't a thing - it's not even a state of mind; it's something you /do/.
disclaimer: this post is meant in good humour, please don't take offense