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
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
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
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
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
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
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
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
The act of using
if (constant == variable)
instead of
if (variable == constant)
It’s like saying “If blue is the sky”.
367 replies on “New Programming Jargon”
In Java using the assignment in place of a boolean test is not allowed by the compiler (a most wise choice).
However, you see plenty of Yoda conditions of a slightly different form, e.g.
if (“Hello”.equals(s)) { .. }
which handles a null without having to write
if ((s != null) && s.equals(“Hello”)) { .. }
[…] http://www.globalnerdy.com/2010/05/09/new-programming-jargon/ […]
I believe “banana banana banana” may have its origins in Douglas Adams’s groundbreaking puzzle adventure game, “Starship Titanic”. A certain non-player character (Deskbot if memory serves), when unable or unwilling to comprehend player queries, would respond once with the wisecrack “I’m just gonna say “banana” until you start making sense!” … subsequent player queries it couldn’t handle would be met with the response: “Banana. Baaaanana… Banana!”
Yoda conditions useful but annoying are. I would never have called those “Yoda Conditions”, though, because Yoda doesn’t use clumsy Algol-derived languages. Everyone knows Yoda always uses the Forth! That’s why he talks in Reverse Polish!
constant variable = if true-case else false-case then
THAT a “Yoda Condition” is, young Jedi, hmmm?
There is no word to describe how many bits a CPU or operating system is so we made one up, using the name of one of our new developers – “Farrell”. So now you can ask “What’s the *Farrell* of that Operating System” rather than “Is that a 32-bit or 64-bit Operating System”.
Nothing wrong with Yoda conditions. Helps to prevent a developer from doing an assignment rather than a comparison, especially if you forget that second “=”.
if ( 5 = count) won’t compile. if (count = 5) will and will cause error in your logic
“VapourWare” Software that has a development plan, hype, a team of programmers but never releases it.
wow, maybe you all should keep writing the same thing over and over to “prove” you know how to write a condition in Java…
[…] New Programming Jargon — Global NerdyMu favorite is "Shrug Report"Tags: programming humor jargon […]
An upvote for Heisenbug. Yes, to Zzz you listen!
That Yoda thing is thanks to C and C++.
if (a = 1) { /* Will always happen – and some compilers won’t even warn you. * }
if (1 = a) { /* Will not compile. Fail early! */ }
I’ve seen people using it in C#, where the .NET compiler is decent and won’t let you shoot yourself in the foot. It is a good way of detecting when the developer used to write C or C++. I say used to, because you can’t go back.
“Yoda Conditions” actually help avoid a common typing error where = is used instead of ==
if (constant = variable)
won’t compile but
if (variable = constant)
will and returns true!
There must be a name for redundant comments. 1, 4, 11, 14, 15, 18, 20, 21, 22, 24. Even my comment is redundant. Can nobody read?
The funniest thing about the comments is that every other one (sometimes two or three in a row) attempt to justify the Yoda conditions by explaining how broken Java is.
People, people, come on … 5 is not an object; “hello” is not an object. These are ‘magical’ things that, in real programming languages, we call CONSTANTS. They do NOT have methods any more than ‘null’ (also a constant) does. The fact that Java is broken and allows nonsensical statements like “hello”.equals(a) is NOT a justification to write comparisons backwards.
BTW, what’s the point of commenting on an article if you don’t read the other comments? And no this is not an ‘infinite bloop’ because I did read the other comments.
The Yoda approach can help prevent null pointer exceptions.
if(CONSTANT.equals(param))
is safer than
if(param.equals(CONSTANT))
I have no name for it, but I felt it was worth a mention; When a tester reports bugs in the debug cheats and gives them highest priority. For example this one I had, where “Typing in the God Mode cheat after my character dies doesn’t bring her back to life”. This was reported as an “A – Progress blocking” severity bug.
God Mode is not a production feature, it’s for the testers to be able to progress more easily for testing purposes and simply freezes the health at the current value. Enable it at the start, problem solved.
Unfortunately not an isolated or uncommon ocurrence by my experience.
I’m too surprised at the number of people that gave the same example to uphold the Yoda bug.
My example is.
if ( 5.equals(pi) )
is lot simpler than
if( pi != null $$ pi.equals(5) )
The Yoda concept is also useful in C. It helps catch the ‘=’ instead of ‘==’ typos.
if (1 = myvar) {} will cause a compiler error where if (myvar = 1) {} will happily run…and will happily be evaluated to “true”.
[…] resztę artykułu: New Programming Jargon — Global Nerdy Tags: app-stealing, focus–, fun-way, hocus-focus, incorrect-setting, potato, potatoes-, […]
Yoda Conditions (if (5 == y)), prevent the mysterious bug if(y = 5).
Bill Drissel
Grand Prairie, TX
ducktape the digital equivalent to duct tape
Something which can easily be fixed by placing a piece of code around the seeping problem… such as an agent job. The problem still exists but it is cleverly masked.
Not sure what C compilers you’ve used, but ( c == 1) and (1 == c) are the same from a truth perspective (note that there are two equal signs together, not one).
You are correct that (c = 1) happens and won’t be reported unless you have warnings turned on their strictest mode or use tools like lint to find that sort of thing.
(1 = c) will not compile because grammatically it is invalid in C and C++, i.e., a number is not a legal lvalue.
I’ve written a ton of C/C++ and a bit of C#, and personally, I like the clarity of C over the complexity of C# (which still looks like a Java knock-off to me).
But your mileage may vary…
Have a *nice* day….
The Riddler;
A user who consistently puts in nothing but drug reports. In your mind, all of the reports start with “Riddle me this developer…”.
Shed:
A piece of very buggy or completely non-functional software. Usage: “Last night’s build is a complete shed.”
Error driven test development
the act of writing useless unittests just for getting enough code coverage and replaceing the wrong “expectet” result after first fail by the generated result.
Databatize – The act of creating a database and filling it with data. “If we could databatize these paper forms our jobs would be so much easier.”
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
To get Jimmed: to get fired
U-Boot.
For projects, developed hidden from project management and sometime suddenly pop up on the surface, causing costs and sinking your project plan.
“””It’s like saying “If blue is the sky”.”””
More Yoda way to say this would be
“If blue the sky is.” anyways it doesn’t really describe condition that well.
Omfg, these Yoda Conditions! Drive me nuts when I see somebody editing my code and making it yoda style. Dude, wtf, it works! I remember making the “=” mistake ONCE in the past 10 years, -Wall, yo!
Yoda Conditions :) LOL, mmd
banana
banana
banana
ba
@ a++; // add one to a
PSF Pro? (Post-Self-fulfilling prophecy)
Three more that have been omitted:
Captain Fuckup. n. An ambitious technician whose presence and lack of technical expertise inevitably precipitates a disaster. See “Jimmy” / “Major Meltdown”.
E.g: “I was working all night; Captain Fuckup left his business card again.”
Major Meltdown. n. An executive who is so preoccupied with shareholder targets that he poo-poos technicians and inadvertently orders a catastrophe.
E.g. “Major Meltdown told me 6 months ago that the UPS warning lights should be ignored because UPS was an expense we didn’t need. This morning the fuse blew and we had a 4 our service outtage.”
Arseblood. n. (1) A piece of code which is obfuscated and is at best dubious. (2) Compiled software which fails more than it works, and triggers a chain reaction of malfunctions in other software, consuming all the available CPU in the process.
E.g: “Have you killed Python and hosed off the arseblood yet?”
How about Code Smells. Its that code that has needed to be rewritten for years, but nobody can just find the time to get rid of it
Seriously people, we know Yoda Conditions prevent that kind of subtle mistake.
Still, have you ever seen anyone practicing them? You haven’t, because they’re simply detrimental to human thinking.
What about Placebo-Testing?
A unit-test that is written just for the purpose to write a unit test. So that the test to code coverage rate virtually goes up, without providing any benefit.
Example:
$result = add(1, 2);
$this->assertTrue(is_int($result));
Or if you know an input value must be greater 0 and you proof it by checking -5 and +5 instead of -0 and +1.
And the best of all: you write a test, you test the code, you actually find a bug … and “fix” the unit test so it ignores it and the bug no longer shows.
I second the “heisenbug”, i.e. a bug that goes away when you add debug to detect it.
[…] New Programming Jargon — Global Nerdy (tags: programming humor funny jargon development geek language fun) […]
@Chris I call it “Stating the obvious”. But you might prefer to call it “Moo-Code”: since it keeps on repeating itself. ($moo = “moo”; // moo)
Senseless comments come in various flavors. Here is one for the pathetic unit-tester.
function test() {
$test = foo();
$this->assertTrue($test, “Test has failed”);
}
Yeah! NOW we know EXACTLY what went wrong, right? ;)
And another for the “little function documenter”:
@param string $string a string
Ah – NOW it all makes sense! Without you mentioning it, I would have been sure this “$string” actually was a flying fox. Thanks, Pal!
Or the “Making-things-count-syndrome”. Which often comes …
… with variables: $a1 = $a2;
… with function names like: test1(), test2()
… and even table and column names: val98, val99, val00, … val10
Sigh!
Not to forget the infamous “Echoist Developer”. It goes something like this:
echo “<head " . . . "”;
Finders-Keepers! If you can find the code hidden in the echo’ed string you may keep it!
Also the “batteries included” programmer. This is a guy who doesn’t like classes or functions. Instead he writes the function body in a single files, which he “include()”s in another file and relies on the outer file to provide the function parameters by setting up variables the will be available in the scope of the included script.
Writing your code this way you are creating a “flying spaghetti monster” in the best case. In the worst case resulting in a “big ball of mud”.
Haha! Wow… I’m the one who took that photo of the solar powered flashlight. :D I snapped it back in 1999 in a Radio Shack in Chicago with my brand-new digital camera that had a whopping 1.3 megapixels. I posted it online and it’s been floating around the interwebs since then.
Oh yeah, and great article! :)
Where I work, we’ve got a clever name for the curly braces { }
We call the open ‘stache and close ‘stache respectively.
Re: Bicrement
If you wanted to add a variable integer to a variable, would that be Xcrement?
Another name I’ve used to describe behaviours such as the ‘heisenbug’ is “Schroedinger’s Bug”.
Here’s another…
‘anti-aliased’: the act of passing by reference to a function, only to circumvent this by taking an address and manipulating the original variable through a pointer.
The “in the moment” code where things get named “new” or “old”. Which makes sense for all of 1 day. Then you get “newnew” etc. Phones suck to type, sorry.
First Or Default ( Wife )
‘Have you ever met my FirstOrDefault([Wife]);
Yoda conditions are also frequently useful in Java .equals() comparisons where the variable may be null, eg:
if (variable.equals(CONSTANT))
will throw a NullPointerException if the variable is null, while
if (CONSTANT.equals(variable))
will never throw a NullPointerException, assuming CONSTANT is not null.
Leetnotes (or 733tn0t35). Where the comments are not readable but structured in a codelike way, because one day we might want to write a parser to read our code comments and therefore “auto-document” (programmers get so excited by this word…).
The effect of this is that to be able to understand the real code you need to understand the comment code.
>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.
;-)
[…] New Programming Jargon — Global Nerdy (tags: article blog code coding dev development fun funny geek humour Jargon jokes language list programming software tech softwaredevelopment nerd programmer) […]