New Programming Jargon

by Joey deVilla on May 9, 2010

Every field comes up with its own jargon, and oftentimes subgroups within a field come up with their own specific words or phrases (those of you familiar with Microsoft Canada’s Developer and Platform Evangelism Team know that we have our own term for “broken”, named after one of our teammates who is notorious for killing all sorts of tech gear).

A question recently posted on Stack Overflow asked for people to submit programming terms that they or their team have coined and have come into regular use in their own circles. I took a number of the submissions and compiled them into the alphabetically ordered list below for your education and entertainment.

Have you come up with your own jargon? Tell us in the comments!

Banana Banana Banana

 "Bluth's Frozen Banana" stand from "Arrested Development"

Placeholder text indicating that documentation is in progress or yet to be completed. Mostly used because FxCop complains when a public function lacks documentation.

Example:


/// <summary>
/// banana banana banana
/// </summary>
public CustomerValidationResponse Validate(CustomerValidationRequest request, bool ...

Barack Obama

A project management account to which the most aspirational tickets – stuff you’d really like to do but will pobably never get approval for – gets assigned.

Bicrement

Adding 2 to a variable.

Bloombug

A bug that accidentally generates money. [Joey’s note: I have never written one of these.]

Bugfoot

Bigfoot

A bug that isn’t reproducible and has been sighted by only one person. See Loch Ness Monster Bug.

Chunky Salsa

A single critical error or bug that renders an entire system unusable, especially in a production environment.

Based on the chunky salsa rule from TVTropes: Any situation that would reduce a character’s head to the consistency of chunky salsa dip is fatal, regardless of other rules.

Configuration Programming / Programmer

Someone that says they are a programmer but only knows how to hack at configuration files of some other pieces of software configuration to make them do what they want.

Counterbug

A defensive move useful for code reviews. If someone reviewing your code presents you with a bug that’s your fault, you counter with a counterbug: a bug caused by the reviewer.

DOCTYPE Decoration

When web designers add a proper DOCTYPE declaration at the beginning of an HTML document, but then don’t bother to write valid markup for the rest of it.

Drug Report

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.

Duck

Rubber "Devil Duckies" surrounding a lone rubber "Angel Duckie"

A feature added for no other reason than to draw management attention and be removed, thus avoiding unnecessary changes in other aspects of the product.

This started as a piece of Interplay corporate lore. It was well known that producers (a game industry position, roughly equivalent to PMs) had to make a change to everything that was done. The assumption was that subconsciously they felt that if they didn’t, they weren’t adding value.

The artist working on the queen animations for Battle Chess was aware of this tendency, and came up with an innovative solution. He did the animations for the queen the way that he felt would be best, with one addition: he gave the queen a pet duck. He animated this duck through all of the queen’s animations, had it flapping around the corners. He also took great care to make sure that it never overlapped the "actual" animation.

Eventually, it came time for the producer to review the animation set for the queen. The producer sat down and watched all of the animations. When they were done, he turned to the artist and said, "That looks great. Just one thing – get rid of the duck."

Fear-Driven Development

When project management adds more pressure, such as by firing a member of the team.

Ghetto Code

Ceiling fan kludged by hanging a box fan from the ceiling

A particularly inelegant and obviously suboptimal section of code that still meets the requirements. [Joey’s note: I’ve written ghetto code before, but that’s because I’m street, yo!]

Hindenbug

A catastrophic data-destroying bug. Oh, the humanity!

Hocus Focus Problem

Unexpected behavior caused by changes in focus, or incorrect setting of focus. Could also be used to describe an app stealing your focus.

Hot Potato / Hot Potatoes

A fun way to pronounce http:// and https://.

IRQed

Annoyed by interruptions. Pronounced like and has a similar meaning to “irked”.

Jimmy

"Opie" from "Family Guy"

A generalized name for the clueless/new developer. The submitter at Stack Overflow writes:

We found as we were developing a framework component that required minimal knowledge of how it worked for the other developers. We would always phrase our questions as: "What if Jimmy forgets to update the attribute?"

This led to the term "Jimmy-proof" when referring to well designed framework code.

It’s probably best not to use this term around IronRuby developer Jimmy Schementi.

Loch Ness Monster Bug

A bug that isn’t reproducible and has been sighted by only one person. See Bugfoot.

Megamoth

MEGA MOnolithic meTHod. Usually stretches over two screens in height and often contained inside a God Object (an object that knows or does too much).

.NET Sandwich

When .NET code called native code which calls other .NET code and makes the poorly designed application crash.

n-gleton

A class that only allows a fixed number of instances of itself.

NOPping

Not napping, but simply zoning out. Comes from the assembly language instruction NOP, for No OPeration, which does nothing.

Pokemon Exception Handling

For when you just gotta catch ’em all!

Reality 101 Failure

Solar-powered flashlight

The program (or more likely feature of a program) does exactly what was asked for, but when it’s deployed it turns out that the problem was misunderstood and the program is basically useless.

Refuctoring

The process of taking a well-designed piece of code and, through a series of small, reversible changes, making it completely unmaintainable by anyone except yourself. It’s job security!

The Sheath

The isolating interface between your team’s (good) code, and the brain-dead code contributed by some other group. The sheath prevents horrible things (badly named constants, incorrect types, etc.) in their code from infecting your code.

[Joey’s note: I’ve heard the term “shim” used for this sort of construct. I’ve used the term “transmogrifier” for this sort of thing.]

Shrug Report

A bug report with no error message or “how to reproduce” steps and only a vague description of the problem. Usually contains the phrase "doesn’t work."

Smug Report

A bug report 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.

Stringly-Typed

i can has string

A riff on strongly-typed. Used to describe an implementation that needlessly relies on strings when programmer- and refactor-friendly options are available.

Examples:

  • Method parameters that take strings when other more appropriate types should be used
  • On the occasion that a string is required in a method call (e.g. network service), the string is then passed and used throughout the rest of the call graph without first converting it to a more suitable internal representation (e.g. parse it and create an enum, then you have strong typing throughout the rest of your codebase)
  • Message passing without using typed messages etc.

Excessively stringly typed code is usually a pain to understand and detonates at runtime with errors that the compiler would normally find.

Unicorny

An adjective to describe a feature that’s so early in the planning stages that it might as well be imaginary. This one comes from Rails Core Team member Yehuda Katz, who used it in his closing keynote at last year’s Windy City Rails to describe some of Rails’ upcoming features.

Yoda Conditions

Yoda: "if (5 == count)"

The act of using

if (constant == variable)

instead of

if (variable == constant)

It’s like saying “If blue is the sky”.

This article also appears in Canadian Developer Connection.

{ 287 comments… read them below or add one }

201 Keith Rome May 11, 2010 at 9:45 pm

Gonkulate.

Generally describes the process of coming up with estimates for a complicated project (typically waterfall, but by no means does waterfall have a monopoly on gonkulation). Gonkulated estimates are rarely accurate.

On one project years ago, the whole team rolled their estimates up into a single master spreadsheet – named the “Gonkulator”. This term was even used by project management when presenting cost estimates to upper management “well, we have a high degree of confidence in these numbers, because they came from the Gonkulator”.

202 Josh May 11, 2010 at 10:20 pm

We have a lot of “Trooleans” (tri-state Boolean). You can recognize a troolean when you see a class that has a Boolean field where null is used to indicate something. Typically, trooleans are used to indicate a yes/no choice that the user has (or has NOT) made. Trooleans lead to confusion and NPEs.

203 gus andrews May 11, 2010 at 10:58 pm

Shouldn’t all this be absorbed into the Jargon File? Or are we assuming Eric Raymond won’t be interested in adding it?

204 BJ Black May 11, 2010 at 11:47 pm

Don’t forget the Heisenbug: A bug that disappears as soon as you put any kind of instrumentation or debug code in place.

205 Chris Oakley May 12, 2010 at 5:02 am

1. Why is there no way of scrolling forward through comments as well as back? Who wrote the software here?

2. Some people don’t read the earlier comments: the same comment has been made about Yoda conditions and Heisenbugs many times.

3. I agree with Aaron, who suggested “Sherlock Comment” here. Let’s hope it catches on:

> >I am not aware of a term for this, but it needs one. I am talking about
> >comments that point out something that is completely obvious from
> >the code anyway, e.g. this:
> >
> > a++; // add one to a
>
> I’d call that the Sherlock comment. As in…. NO SH*T, SHERLOCK.
>
> ;-)

4. I propose “retardumentation” as a term for documentation that serves no purpose as the level at which is pitched is so low that the only people who might find it useful are those who would in any case be unable to read and write. Printed guides that come in the box with most new computers I would mostly classify as retardumentation.

206 Jens Rydholm May 12, 2010 at 5:39 am

Yoda conditions are actually a good habit, at least when using changeable variables. Consider the difference between “if(count == 5)” and “if(count = 5). Always writing Yoda conditions will make the compiler catch this typo for you, since “if(5 = count)” will generate an error.

207 Kaeru Gaman May 12, 2010 at 7:07 am

I really like the Heisenbug.

… makes me ponder what Schroedinger’s Bug could be …

208 Simon May 12, 2010 at 7:39 am

Firedbug – a js bug which dissapears as soon as firebug is opened

209 Mike Hawes May 12, 2010 at 8:58 am

You could argue that all programming is simply configuration.

Now I feel depressed…..

210 Tyler Durden May 12, 2010 at 9:37 am

I have no idea where the Heisenbug is but I know exactly how fast it is moving.

211 Jim May 12, 2010 at 9:43 am

I write Yoda Conditions because one of the languages I use is C, where it makes sense to eliminate one more source of error. But, I write Yoda Conditions in EVERY language I use so that I will be in the habit of doing so. I use VBA which uses a single “=” in comparisons, so writing “==” is not as second nature as it would be otherwise. Frankly, those condemning the practice probably don’t have as much experience as those who use it.

212 Alex May 12, 2010 at 10:04 am

A Schrödinger bug is a bug that could appear as a feature and you would need to look at the code to determine whether it is a bug or a feature? :)

213 Neil Glenister May 12, 2010 at 10:11 am

Death Star – A company that destroys everything you create and will turn your Jimmy proof concepts into a never completed, fundamentally floored, catastrophic mess.

214 Sam Boyer May 12, 2010 at 10:51 am

@Kaeru Gaman – Schroedinbug and Heisenbug are both already in the jargon file, as well as Mandelbug and Bohr bug.

http://catb.org/jargon/html/S/schroedinbug.html

I relish every chance I get to roll out one of those words :)

215 Gerusz May 12, 2010 at 10:56 am

@Kaeru Gaman: A bug that DOES exist, and can be reproduced, but it doesn’t always occur when you do the procedure which usually causes it to occur?

216 Gby May 12, 2010 at 11:09 am

This list is just uber awesome!

217 Gerusz May 12, 2010 at 11:12 am

“Beer comment”
If you have to document your code extremely densely (full of Sherlock-comments), and you suspect no one on Earth will read it, you add:

void OneSeriousMegamoth(…){
…some hundred lines of code
/*Ohh, and if you read this, send an e-mail with “B33r c0d3 f0und” as subject to my.name@company.com, and I’ll buy you a beer */
…another lengthy piece of code
}

No one sent me an e-mail to date :)

218 andsens May 12, 2010 at 11:27 am

Truck count:
The amount of people that can be run over by a truck before a project can no longer be maintained.

219 Neil Glenister May 12, 2010 at 11:36 am

Griffin: (from H.G.Wells The Invisible Man) – referring to when someone removes the first Keyframe in a Flash MovieClip so you get an invisible mc on the stage. Impossible to find and made even worse when ActionScript is buried in it!

220 Anders Ingemann May 12, 2010 at 12:01 pm

> Yoda conditions are actually a good habit.
No they’re not, it’s you writing bad code at the expense of readability, only to catch a typo you never should have written in the first place.

221 SvOlli May 12, 2010 at 1:11 pm

I think the Yoda comparison was good back then, but now it’s obsolete, at least for me.

When compiling ‘if( a = 2 )’ gcc throws a warning:
warning: suggest parentheses around assignment used as truth value
Using ‘-Wall -Werror’ is a much better practise then using Yoda, since it catches much more bad stuff.

It makes Yoda obsolete, and dropping Yoda makes the code much better to read for the human, which is a much better benefit than making it better readable for a machine. It’s not the machine that debugs the code, it’s the human!

222 Mark May 12, 2010 at 1:55 pm

“Cockpit Error” – When there’s something screwed up with the build but the code is fine. Something went wrong with how it was compiled, it was linked with the wrong thing, there’s a missing resource, debug code was left in, etc.

223 bharat khiani May 12, 2010 at 2:09 pm

i just love this post…its awesome…
some terms i’m going to use henceforth: potatoes, ghetto, unicorny…thanks a lot ppl.. :)

224 bharat khiani May 12, 2010 at 2:15 pm

must add… Watson code (Dr. Watson i mean) code that is present but apparently of No Use to the program…. usually left out during maintenance..or debugging…e.g

its execution is just a waste of cpu resources.

e.g.
a=5;
b=5;

a=b; // Dr. Watson code

print “a is ” + a + ” and b is ” + b ;

=====

225 Doe Nadu May 12, 2010 at 10:08 pm

We used FCD.

It stands for Format C Drive. e.g.- “That patch you installed FCD’d the entire server environment!”. “Geez, Senthil, you got formatted by management – again!”

226 vera May 12, 2010 at 10:39 pm

WON-DER-FUL.

227 Charles Edmonds May 13, 2010 at 2:08 am

How about ‘Peacock’:

A troll who targets professional online communities and
therefore can’t use his or her real name…

228 Dave Moyer May 13, 2010 at 11:20 am

How about a Mehxception? A try/catch block with no exception processing
try
{ some code }
catch ()
{ // just don’t crash }

229 Hiroki T May 13, 2010 at 1:47 pm

Coffee-driven development.

230 Chris Bordeman May 13, 2010 at 2:08 pm

I second ‘Peacock!’

231 erkaer May 13, 2010 at 3:14 pm

It’s not like saying ‘if blue is the sky’, it’s like saying ‘if blue is the color of the sky’. Which makes more sense, if only a bit.

232 me May 13, 2010 at 5:59 pm

Yoda conditions make additional sense in languages with operator overloading and multiargument method dispatching – the order of the parameters for the operator/method named ‘==’ is crucial. 5==zomg fires different method than zomg==5 (respectively – int::op== and Zomg::op==)
Adding more to it, in some languages there are functions/methods called ‘eq/equals/..’ that sometimes performs different comparison that ==. If on that platfom the method needs nonnull instances (->most languages), it may be completely sane to write a code like: 5.equals(zomg) instead of zomg.equals(5), as the former DOESNT THROW when some Jimmy passes null, and the latter WILL THROW. Assuming you dont want an exception but just result of “false/notequal”, Yoda condition gives you simplier code, and “normal” condition requires you to write a sanity check for null and to only then perform the invocation of equals.. Please, just don’t came up now with arguments that “but for yoda be useful thou must knoweth the language masterly” — if you don’t know the language, learn it, so you can use it properly and so you will not impose restrictions on a normal code constructs just because you dont understand/cannorread/cannotthink about them for some reason. If logic/grammar/constructs/language/assumptions/etc is too hard – you should be a hairdresser.

233 Suresh-Jean Taymil May 13, 2010 at 9:50 pm

The “FCD” abbreviation in comment 25 is classic. We also use the term “formatted” when referring to something which has gone wrong.

234 David Condrau May 14, 2010 at 8:42 am

We use IF-Tower a lot. If you code an IF-Tower you should redesign and get rid of it.

if foo
if bar
if foobar
if foo & bar
if ….
end
end
end
end

235 Connor May 14, 2010 at 10:07 am

We have been using “stash” and “unstash” to denote curly braces: { }
Because they look like little mustaches.

“It’s not compiling because you forgot to unstash your ‘if’ statement!”

236 Lee Christie May 14, 2010 at 10:30 am

A form of Yoda Condition to guard against NPEs is common in Java as in:

if (“yes”.equals(myString)) …

I always feal a bit weird writing them and am tempted to write:

if (myString != null && myString.equals(“yes”)) …

237 Jason Henson May 14, 2010 at 2:48 pm

MalformedThinkingException. An exception that occurs in the code when the programmer mis-understood the requirements. Also can be used when some one wants to have fun and catch another exception and throw a new MalformedThinkingException.

238 Band-aid programming May 14, 2010 at 7:34 pm

Development model where programmers don’t have time to really fix design or architectural problems and instead they continue to make small changes just to keep things running…

239 Thomas Weiler May 14, 2010 at 11:04 pm

“Code Burger”: When you sandwich your algorithm in layer upon layer of function calls in order to save on variables, but sacrificing readability and maintainability in the progress.
a = foo(bar(foobar(foofoo(barfoo(b)))));
I do that a lot…

240 Viktor Oravec May 15, 2010 at 6:04 am

You should never use Yoda condition, it is source of error and it reduces the readability of the code.

241 Carl Sumner May 15, 2010 at 2:59 pm

If you can’t read the Yoda conditions, then practice by using only an HP calculator that has RPN. Programmers should be able to think in both directions…

242 Patrick P May 15, 2010 at 11:22 pm

“Batman Update”

We use this phrase to describe any developer who (under cover of darkness) deploys fixes without changing the version number of the software or notifying anyone. Batman developers are considered harmful by the rule enforcers and other upstanding members of society.

A related term is “Casper Update.” This is after a thorough investigation, nothing was found to have changed, but for some inexplicable reason an ongoing problem has disappeared.

243 Dave Bradshaw May 18, 2010 at 9:22 am

Development-Driven Testing (DDT)

When a developer does not really get TDD and writes their unit tests after they write their code. We also like to point out that DDT is a pesticide or poison.

244 Bruce May 18, 2010 at 10:26 am

I’m pretty sure Yoda would have said, “If blue the sky is.” In terms of programming, that would be more like:

if (CONSTANT $a ===)

Which I’m sure many programmers would think was the ONE TRUE WAY, if it compiled.

245 gautch May 18, 2010 at 11:29 pm

We us “sloading”. As in this code is loading slow.

246 A P May 19, 2010 at 12:55 pm

Agreed with Carl Sumner and “me” here: if the symmetry of the == operator blows your mind, consider hairdressing or wedding planning.

247 altvali May 20, 2010 at 10:37 am

shamelessly pasted from that msdn blog which shamelessly pasted from http://stackoverflow.com/questions/2349378/new-programming-jargon-you-coined

248 Captain Peacock May 21, 2010 at 8:49 am

I came across this really wierd and bizarre piece of C# code the other day and I really don’t get it:

if (value == variable)
{

}

It really freaked me out because I would have expected to see:

if (variable == value)
{

}

Has anyone got any explaination for why someone would code like this? It would be great to give it a name.

249 Ari Sargent May 26, 2010 at 5:34 am

we use the term “beetil” a lot to refer to incidents or change requests to our IT system, named after the ITIL SaaS product developed by our IT development partner.

eg usage: “The network pricing is foobar. I’ll raise a BEETIL”.

250 Alistair May 26, 2010 at 11:23 am

Two terms:

Noddy program (a silly little program needed to fix a minor problem or produce a quickie report).

Frig – from File RIG – as in to fix a file. Also a rude English word

Leave a Comment

{ 55 trackbacks }

Previous post:

Next post: