Geoff-Hart.com:
Editing, Writing, and Translation

Home Services Books Articles Resources Fiction Contact me Français

You are here: Articles --> 2004 --> A programming primer
Vous êtes ici : Essais --> 2004 --> A programming primer

A programming primer

By Geoff Hart

Previously published as: Hart, G.J. 2004. A programming primer. Intercom June:44.

The easiest way to gain the respect of programmers is to learn to speak their language. If you can do that, they'll inevitably recognize the effort you've invested in learning to appreciate their work and will treat you as an equal thereafter. With that goal in mind, I've presented this glossary of key programming terms you should master.

Algorithm: A rigorously tested standard procedure offered in valiant defiance of Murphy's law.

Alpha testing: Running the programming code through a spell checker.

API: Someone the employer hires to spy on programmers to ensure they don't sell industrial secrets to competitors.

Architecture: The shaky foundation upon which gothically ornate programming code is built. (cf The Fall of the House of Usher).

Beta testing: From the science of probability, "betting" that if enough monkeys with keyboards test the software, all bugs will be found.

Bug: Programmer jargon for "the failure is not our fault—blame Microsoft".

C, C++, C#: Three variants of a single programming language in which it takes longer to create a printout of the phrase "Hello World!" than if you were to carve it in stone with a hammer and chisel. Industry critics believe these languages singlehandedly ended efforts to make computers serve humans rather than vice versa.

Code freeze: The proverbial fate of Hell when everything in the program works as planned.

Code, programming: Instructions to the computer intended to convey poorly conceived and inadequately tested logic in the hope that a non-human entity will have more luck understanding them.

Compiler: Software that converts nearly unreadable programming code into completely unreadable strings of 0's and 1's.

Crash: The fate of the company's stock price shortly after the release of each new version.

Debug:see Beta testing.

DLL: A dynamically loaded (only when needed) piece of code that can be shared, thereby ensuring that all running programs can be brought down by a single programming flaw.

Elegant: Programming code so inherently beautiful in its logical structure that whether the software actually works is irrelevant.

Extreme programming: Carefully planning what to do so as to minimize the number of revisions. See also: Planning.

Foolproof: The belief that if you carefully protect your product against the efforts of current fools, you can prevent evolution from generating better fools.

Formal methods: A mathematical discipline in which software code is subjected to rigorous analysis in an effort to demonstrate its robustness. (cf science fiction)

Fuzzy logic: The means by which development managers, in close cooperation with Marketing, determine when a product should ship.

Inelegant code: Code that works as planned.

Installer: Software designed to alter the operating system in such a manner as to make a single program work, usually at the expense of all other software.

Interface: A software structure designed to shield elegant code from the clumsy fumblings of users.

JAVA: A small southeast Asian island nation expected to be the next major destination for offshoring of programming.

License agreement: An exercise in semantic obfuscation intended to protect developers from liability for their own errors and those of the users. Not legal in most jurisdictions.

Logic: The procedures by which computer chips operate. (Note: Not a programming term.)

Malware: Public domain software that works better than most commercial software.

Offshoring: Transferring responsibility for software development from one group of people for whom English is a second language (i.e., programmers) to another group of likeminded individuals who work for less money.

Planning:404 error: page not found

Plug-in architecture: An architecture that facilitates the task of hackers and other writers of malware.

Programming: The art (mostly) and science (occasionally) behind attempts to harness chaos for useful purposes.

"Read me" file: A means of shifting the responsibility for a successful installation onto the user, where it really belongs.

SDK: Software development kit. An integrated tool for increasing the number of bugs programmers can develop per worker-hour.

Service release: The software equivalent of the little Dutch boy who stuck his finger in a dike to plug the hole and save Holland.

Usability test:404 error: page not found

User: An entity whose entire purpose for existence is to prevent the programmer from creating truly elegant code.

Waterfall development process: A procedure in which managers dive into a swift-moving stream, and are swept helplessly over a cliff. Repeat every 6 to 8 months over the life of the product.

Windows: The world's most popular platform for bug development.


©2004–2017 Geoffrey Hart. All rights reserved