Introducing: Dysfunctional Programming

by Charles Miller on September 24, 2003

A quick newbie's guide to this exciting new coding paradigm:

  1. A dysfunctional program consists of a collection of dysfunctions.
  2. A dysfunction works on a number of arguments.
  3. Dysfunctions are not called explicitly. They are invoked as soon as their requisite arguments exist.
  4. If there are no arguments, a system-level dysfunction named "awkward silence" will attempt to invent some
  5. Dysfunctions do not produce any results or return values, they work entirely by mutating their arguments.
  6. The majority of dysfunctions contain at least one infinite loop, and thus never end. Well-written dysfunctions create this loop as a constant byplay between two or more arguments.
  7. During a dysfunction, arguments may be mutated into new arguments, or may spawn additional arguments.
  8. All dysfunctions in a program are considered to be running in parallel. As arguments can not be locked exclusively by a single dysfunction, the exact interactions of dysfunctions can not be predicted. This is a feature.
  9. In the event an argument is no longer needed, it can be discarded. The Garbage Collector will place all discarded arguments in a pool. If the program runs short of arguments, old arguments will be randomly revived to keep it going.
  10. Short of external intervention (e.g the Unix SIGKILL), a dysfunctional program will never end.

While no dedicated Dysfunctional Programming language currently exists, Larry Wall was recently caught wandering down a corridor rubbing his hands together and muttering "I'll get them! I'll get them all!"

Previously: Paid By the Keystroke?

Next: Let down...