New Programming Jargon

We’ve started using “Jenga Stack” for the mental model you have to build up to work on complex code. This leads to statements like “Don’t interrupt me right now… I’ve got a huge Jenga Stack built.”

As far as Yoda Conditions, I hate them. Increased cognitive load (at least for english speakers, this is now how you normally think) to get around a quick of the language design and the compiler. C compilers have thrown warnings for assignments in if statements for YEARS.

Kinda funny…almost the same post on another blog (from about a year ago) using a lot of the same exact images…

22. Protoduction

Where I work we call that ‘prodvelopment’.

Used to be an infestation of such.

“It’s only for the short term” “It’s not important enough to rate the full prod-dev stack” “We’ll replace it with the real system next quarter”

For a while the senior management in our IT shop were all ex-consultant. But you could probably guess that.

I actually invented one at my workplace, for puzzle solving rather than programming—“piano”: I had been stewing over the problem a while, then decided to take a break and go down the hall to get a cup of coffee, and while pouring the coffee, the solution just dropped on me like a cartoon piano would on Sylvester—sprung into my mind fully formed when I wasn’t even thinking about it. After telling this to others, using the metaphor to explain what it felt like to me, suddenly the workplace is full of people having piano moments when they solve problems like that.

Not to be confused with “viola”, where the solution is really simple–you solve it as soon as you see the problem, and using bad French, you announce, “Viola!”

Why is “Heisenbug” included in a list of the top 30 “most likely candidates for actual new programming jargon”? It’s in the bloody Jargon File. It has a wikipedia entry, which you even linked to.

Our “hooker code” is “George Michael”, as in “that [feature, app, block, whatever] goes down more often than George Michael in a public restroom”.

I coined it, AFWIW I actually think George is kinda cool, but still…

I think your description of the Smurf bug is wrong. It’s not a problem that a whole bunch of objects share the same prefix, e.g. SmurfUser, SmurfUserOption, SmurfUserHistory… but when the prefix is the same as the classes’ namespace… and you end up doing this:


etc etc.

Classic. I like your choice of illustrations.

Some time ago, I came up with “feral code”, i.e. code that’s gotten so wild it doesn’t obey you anymore. Don’t ever try taming it, even approaching it, don’t try to predict its behaviour… In short, the only viable path out of the problem is to get rid of the feral code for good.

function Inc(x) {
  globalspace->something->completlydifferent = 'not so good';
  return +x;

Program an interface not an implementation.

‘Duck’ is from Robert Venturi’s architectural theory book Learning from Las Vegas, 1977

Great list. We have a few we use around the office that are related to code and others related to working at a large organization. I challenge you to guess what a “pressed fruit basket” is as regards a manager’s office. I use “duck”, but I don’t think I’d ever use “mad girlfriend bug” in front of my business unit given the preponderance of women. Or at all, given it’s sort of rude to many programmers I respect. I see Interfect Prime thought the same thing.

One of the few things I don’t love about StackExchange is the occasional drool slurping knowledge-elitist pretending that the site is some kind of library of congress or ivory tower to be kept innocent of things not perfectly fitting to the Q/A format. It’s particularly bad when people use an acronym to refer to the person asking the question - WTF, seriously?

StackOverflow is one of the best things I’ve seen for the software development community in my 13 years in the field. It’s great because it not only has what I need when I need it but it also has the occasional spirit-lifting humor like this.

I’ll take HUMOR over HUBRIS any day – don’t throw the baby (above) out with the bathwater.

(And this list of 30 is hilarious!)

To all of you who got annoyed at the question being deleted, you can all just make your own stack exchange site, or propose for a new one on So I figured I would just go ahead and do it. Hopefully enough people will like the idea to actually make it come to life.

Oh, and the Yoda condition example isn’t the classic one; the real reason Yoda notation sprung up is because of the idiomatic usage of

in Java, especially with Strings but also wrapped primitives like Integer, so that if the variable reference is null you don’t get a NullPointerException. Using Yoda notation for primitives is generally not done as it doesn’t read well.
  1. Nopping

In the 90s this term was used to describe a style of cracking whereby the cracker would short circuit the license check by writing 0x90 (the assembler NOP instruction in Intel assembler) over the code that calls the license check function.

Nopping was a derogatory term since real crackers don’t change the existing code. Real crackers understand the key generation process and write key generators.

The reason you have to have this sort of post is because the moderators are far too delete-happy. That’s going to be the ultimate destruction of the entire StackOverflow ecosystem as the deletionists piss off all the contributors by deleting everything. Why not save time and delete the entire site?

@js - Is that all what you did for last twenty years? Changing other people’s code into “Egyptian Style”? What a moron.

How come nobody ever asks why can’t Reddit be more like Stack Exchange instead of why can’t Stack Exchange be like everyone else?

Why do people fight so hard to make Stack Exchange be something it wasn’t designed for when the things they fight for already exist in every corner of the Internet?