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