Categories
Uncategorized

New Programming Jargon

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.

367 replies on “New Programming Jargon”

I second vapour ware.

Less codey, more content; ‘Britney’ – whatever key content will be distributed over handsets etc to ‘personalise’ consumer devices.

Bike shed – an issue so simple, everyone wants to give their feedback on it. – When you try to build a nuclear reactor, everyone leaves you alone. When you’re building a bike shed, everyone comments to tell you what color to paint it.

Bike shedding – engaging in discussion around a bike shed, typically with too many participants and few actual results.

The “Duck” has been around a long time as “Red Herring”. We threw those in for the SETAs (ankle biters) trying to impress the COTRs by finding mistakes. They found most of them, which we removed in seconds, and took the rest of the week off.

“Ankle Biter”
These are engineering firms hired by government customers to oversee the other engineering firms hired to do the real work, finding their mistakes because the government customer has no clue about the work they hired the firms to do.

@Rik Hemsley – “Yoda Code”
Origin is from the different direction of assignments in AT&T vs. MS/Intel-Assembler…

Stuff

Flushing Cache Memory:

The act of making one loose their train of thought and thereby causing them to have to evaluate what they were doing before they were interrupted so that they can continue.

Use: “Can we please talk about it later? You are flushing my cache memory.”

A “Zeno comment”. This is not just a comment in the code which is wrong but really makes you reconsider what you were thinking. The best one I ever encountered:

// This line has been removed.

Admit it: this is deep. Confucius must be eating his heart out.

Passive aggressive commenting
ie.
//To the person (i know who you are) who keeps changing my coding style, i code this
//way for a very good reason please contact me before changing it again so that i may
//explain to you why i do things the way i do it

“Strap your boots on!”

All is lost, changes have to be made to the live environment and there is no time to properly test…

“Come on lads, strap your boots on we need to update the live data”

“Boomerang Bug/Issue”

A bug fix that you know is going to come back to you at some point.

“Databating”
What DB Admins do when they’re not NOPping – sift through the database looking for things to change/remove – inevitably applying several inappropriate changes that result in eventual catastrophic failure

We have:
Elmar Code. Code that obviously looks illogical, but works around something that you would not guess it could be broken in the first place.
if($gender==’male’) {
echo ‘Dear Sir’;
else if ($gender==’female’) {
echo ‘Dear Madam’;
else {
echo ‘Hello’;
}
(This is actual code found in a live system…)

We also have Patrick Code.
include(‘foo’ . $$x);
where $x a was defined in some other include. And yes, it’s really $x, not “$include_filename” or something helpful.

“Watch the source, Luke.”
Not a term itself but a common answer to code questions.

if(variable == true):

A lot of my coworkers are doing this. I’ve tried several times to explain why this is stupid. They don’t get it. For me it’s obvious that they don’t understand the language. They seem to think, that if() expects a comparison of some kind. No no no!!! It expects a boolean expression. I’d like to have a slang term for this so I could throw it in their face. Thanks!

How about a name for code that works in ‘debug’ but not in ‘release’; and conversely (though more uncommon?) code that works in ‘release’ but not in ‘debug’

I like the Yoda condition. Another nice C example for that kind of code:

int array[5];

3[array] = 4;

Non-Yoda developers can use the simple way: array[3]=4
:-)

“Job Security”
The quiet confidence of a developer who refuses to document convoluted code or delegate knowledge to his colleagues, having not yet learnt that when the next project comes around, it’s easier to be fired than promoted. Aka ‘job stasis’, see ‘refuctoring’.

printf(“pirates\n”);
//code
printf(“vikings\n”);
//code
printf(“monkeys\n”);
//more code
printf(“ninjas\n”);
//code
printf(“goats\n”);

Localising complex systems code, known as debugging by orgy.
“Clearly we see the monkeys f**k the ninjas so we can rule the goats out of this.”
“Yeah but you wouldn’t see the ninjas?”
“Not if they’re taking it from the monkeys, which they are.”
“Pirates wouldn’t stand for it. Damn ninjas.”
“maaaaaaa”
Isn’t pair programming awesome?

I’m using Yoda conditions wherever appropriate, and I don’t get people not wanting them; you should be indifferent at best. My guess is that people are just used to non-Yodas, so Yodas look awkward. Thanks, that’s the point: They should look UNlike assignments.

If you think that conditions’ order doesn’t matter, indulge me.

Yoda Conditions are actually good!

The purpose is to avoid mistakes like

“if(variable = constant)”

That mistake exist in ALL larger, non LINT:ed, codebases…

If everyone use Yoda Conditions when comparing variables against constants, we will have less bugs….

Just my 2 cents..

Regards // OwL

Actually I thought Yoda conditions are used to prevent NPEs, because an retrieved value might be null instead of the defined value in the code. So if you compare defined with input this wont crash.

@wofat68: Lol I’ve seen it yet. Maybe it shoud be called like “Inventing the wheel” :D

BM or BFM fix
Black Magic or Black F** Magic. A bug that inexplicably is “fixed” by changing something that shouldn’t have anything to do with the original bug. (It went away) Can also be similar to bugfooot or Loch Ness.

BTW: “Yoda Conditions” made it into the official WordPress coding rules.
Right: That’s exactly the why you should write your conditions.

“Should” that is. I don’t – gets usually quite difficult to read after while or if you use a lot of conditioning ;)

cu, w0lf.

Yoda conditions are good for NPE in cases like:
if (“TastesGood”.equals(your_meal)) {
you.lying(“me”);
}
…slightly different than the examples given, though similar in spirit.

I once worked with a programmer named Len that produced the worst code ever. Len’s code was sooo bad that it would cause good code to fail. Anyways, due to Len’s epci failure, the term “LenMine” as coined.

Note that in some C/C++ style guides Yoda Conditions are the recommend choice, because they avoid the
if ( x = 0 ) bug (where you meant if ( x == 0 )). Forgetting the second equals sign makes a silently ignored assignment in the with x on the left, but with 0 on the left, you get a compiler error, ’cause you cannot assign to a constant.

Frobulation – n., the technical term for the combined effects of packet loss, line noise, server stress and load, and intermittent hardware, otherwise known as “lag”.

v. = Frobulate, Frobulated
a. = Frobulator

“Lucky Dip”
The production bug in a deployment

“Pairing on your own”

“Anti-pattern” not exclusive but it was a developers user id when read phonetically and we ended up using it as a way to find technical debt.

I believe Yoda Conditioning is a stupid practice. Guys, do you really that often mistype one == ? I probably did once in few last years. The condition is like a human language sentence, and the order of operands communicates important information. By using Yoda Conditioning you’re simply making it harder to read and comprehend.

ID10T Error
Basically the non-error was caused by the idiot that reported it. Except you can have the satisfaction in telling him that it was an ID 10 T error and it is now fixed. He’ll go away happy and you’ll go away laughing.

Another one:

Heisenbug. A bug which moves around, unpredictably. Often disappears when looked at with a debugger or after adding diagnostic code. Named after the Heisenberg Uncertainty Principle.

Heisenbug:
A bug for which the act of trying to observe it causes it to be not reproducible.

I use ‘yoda conditions’ on purpose. If I accidentally type if (y = 5), I have a bug to track down, but when I accidentally type if (5 = y), I get a compiler error. But I do admit that
if (5 == y) does look strange.

Comments are closed.