The Myth of Descriptive Module Names

I get constant grief for the way I name my modules. While some people enjoy the whimsical, often childish names, many others complain that the names are counterproductive. I strongly disagree. Descriptive module names are an anti-pattern.

Descriptive names are the exception

Modules are products. They are something we create and present to the world in hope of finding an audience. You don’t buy “car”, you buy a BMW, or a Toyota, or a Cooper. Not a single module on the npm most downloaded list has a descriptive name.

Descriptive names are anti-democratic

What do you think is the chance of anyone producing a successful competing WebSocket plugin for hapi if I named my module hapi-websocket? A descriptive name from someone with authority means no one else gets to play and offer their own vision. I would like to think I get a lot of things right but I will never get everything right. A healthy environment means keeping a level playing field.

Describe names are anti-competitive

The problem with descriptive names and the reason people like them is they make life easier. It’s the lazy way out. You search for “websocket”, you find the websocket module. Done. Of course, the fact someone claimed the name has absolutely nothing to do with that module being the best one. The exact same outcome can be accomplish with keywords and a smarter search. Being the first person to grab a descriptive name should not give you an unfair advantage. Also, since good descriptive names are a finite commodity, you end up with a mouthful names with lots of hyphens which are a turn off for many people.

Descriptive names are boring

npm install poop.

There.

Made you smile.