How to Talk Like a Programmer
As the profession of computer programming continues to evolve, so does the jargon that typifies the daily life of a coder.
Programming is alternately referred to as coding, hacking, developing and software engineering, among other things. And the age old debate over whether software development should be considered a creative endeavor or simply a rote, technical one. Whatever the case, it's clear that among the legions of folks who are professional programmers are some of the most intelligent and creative people in our society. That creativity is not lost on nifty mobile apps or money-making enterprise apps or complex technical computing apps, or even on catchy code names whose significance to the program might be three layers deep. Often the creativity of the modern programmer lies in the jargon of the day. Programming has lent several terms to the lexicon of popular speak, including spaghetti code, Easter eggs, bugs, wizards, widgets and a lot more.
However, today in 2010, a whole new crop of programmer slang has emerged. Thanks to the folks at Stack Overflow, who prompted developers to share their programming terminology, and Joey Devilla at the Global Nerdly blog (who was good enough to package it and help popularize it), we have a slew of new terms, such as "Unicorny," which is used as an adjective to describe a feature that is so early in the planning stages that it might as well be imaginary. Or Bugfoot, which refers to a bug that is not reproducible and has been sighted by only one person. This is similar to the Loch Ness Monster Bug.
Meanwhile, the concept of a bug report has spawned several new terms. There is the Drug Report, used to describe a bug report so utterly incomprehensible that whoever submitted it must have been smoking crack. The lesser version is a Chug Report, where the submitter is thought have had one too many. And then there is the Smug Report, which describes a bug submitted by a user who thinks he knows a lot more about the system's design than he really does. Filled with irrelevant technical details and one or more suggestions (always wrong) about what he thinks is causing the problem and how we should fix it. Finally, there's the Shrug Report, which is a bug report with no error message or repro steps and only a vague description of the problem. Usually contains the phrase "doesn't work."
Other interesting programming terms originate in relationships. For instance, there is the Common Law Feature: A bug in the application that has existed so long that it is now part of the expected functionality, and user support is required to actually fix it. And there also is the Mad Girlfriend Bug, which occurs when a developer sees something strange happening, but when he inquires about it it will just say that everything is fine.
Another term that is indicative of the way many programmers work is Code Slush, as opposed to Code Freeze, Code Slush is a term for the date after which no changes will be accepted, except, of course, all the changes that management will ask for at the last minute. It is like Code Freeze, but accepting of the fact that some changes will still get in.
Meanwhile, I'm sure my friend Rod Johnson and the folks over at the SpringSource division of VMware would like this one: Lethal Dependency Injection, when a programmer uses too much Spring XML wiring to configure a handful of classes.
Mostly, you don't want to be considered an Impediphile - Someone who codes in such a manner as to constantly cause impediments to others work.
Are you a nerd? What are some of the unique programming terms in your shop?