Monthly Archives: March 2012

We, software developers are incredibly bad at naming things. We try to make every new software sound stylish – which in turn means ending up with names that have no relation to their meaning.

Take for example the following names and what they mean

Smarty = A very silly class developed in PHP that is used to separate the
business logic from the presentation logic. They could have named it
something simpler like PHP Template Class. But no, they must choose a smart
name. The result? anybody who does not know Smarty thinks its difficult and
tries to avoid it – and those who know this silly Class, wonder what’s so
Smart about it

Ajax = Asynchronous JavaScript and XML.
I know experienced web developers who avoided this for years because it sounded
so complicated and perplexing. Good name, sounds stylish.
I know ajax inside out, and believe me, it is a very easy, simple topic that you
can master in a day or two. In short, it is just a good JS class.

Magento = Any guess from the name what this means? Surprise, it is a readymade customizable shopping cart script built in PHP.

The problem with these names is that it makes easy things hard to remember. Also, many times, to people who are new, these names mislead them into understanding the meaning. For example, take the name Python. It happens to be a general purpose programming language. What naming convention is that? What coding standard is that? What business logic is that? Maybe they expected it to gobble up C,C++ and Java. At least James Gosling named Java so because he consumed a lot of Java Coffee while creating it.

Bad nomenclature, small life of technologies ( a dog born today will live way longer than an OS or programming language born today), and shifting domains ( Desktop->Network->Web->Mobile->Cloud-????) make things more difficult for us than they should be.

Versions: As if the name itself were not bad enough, now they do it with versions. For example, Eclipse IDE is not a program to help astrologers but an IDE to write programs. Their version (not in order), are Helios, Europa, Ganymede, Galileo. And hey, Google jumps in too. So now Android versions 1,2,3,4 etc sound too boring, so they call it Donut, Froyo, Cupcake, Gingerbread, Ice Cream (not in order). Guess what they will name their last versions? Android Yeti and Android Zebra.

When I was in college, I used to think – people with strong Memory should become Doctors. And people with strong Analytic skills, problem solving skills should become programmers. Now, I realize things are changing. You need to mug up to be a software developer too. And they Copy+Paste. Alas. I feel sad.

I’ll close my laptop and go watch some movie today. Any idea what Scala, Clojure, Groovy, Eucalyptus could mean???? They sound like movie names to me.