A quick newbie's guide to this exciting new coding paradigm:
- A dysfunctional program consists of a collection of dysfunctions.
- A dysfunction works on a number of arguments.
- Dysfunctions are not called explicitly. They are invoked as soon as their requisite arguments exist.
- If there are no arguments, a system-level dysfunction named "awkward silence" will attempt to invent some
- Dysfunctions do not produce any results or return values, they work entirely by mutating their arguments.
- 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.
- During a dysfunction, arguments may be mutated into new arguments, or may spawn additional arguments.
- 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.
- 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.
- 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!"