budding

The Eponymous Laws of Programming

A collection of laws named for specific people in the field of programming

An eponymous law is a principle or rule named after a particular person. The programming community abundantly creates and embraces eponymous laws. Compared to other fields, the number of “unofficial” laws, principals, and rules of thumb considered cultural gospel is overwhelming.

Each law isn’t simply a piece of unique knowledge or insight. They often have a backstory – the context of when and where it was created is signficant. Many of these laws were spawned at critical turning points in the history of computer programming. Some come from inside influential companies, or innovative collectives, or touchstone books. Each feels a small story woven into the mythology and cosmology of computational history.

They come with a social connection to their creators. Their legacy and social credibility adds weight and legitimacy to the principle itself.


Atwood’s law - Any software that can be written in JavaScript will eventually be written in JavaScript.
Jeff Atwood

Atwood’s duck - When compiling a presentation for corporate managers, programmers should include at least one throwaway “duck” detail that’s begging to be to removed or changed. This allows the corporate office to feel like they’re participating, despite the change being inconsequential.
Jeff Atwood

More on New Programming Jargon from Jeff’s blog

Brandolini’s law - The amount of energy needed to refute bullshit is an order of magnitude bigger than to produce it.
Alberto Brandolini

Conway’s law - The systems we design always reflect the organisational structure of the community that designed them. Our software and automated systems end up ‘shaped like’ the teams and companies that created them. Melvin Conway

More on Wikipedia

Engelbart’s law - Like Moore’s law, but applied to human performance. Organisations and human potential increases at an exponential rate.
Douglas Englebart

More on The Doug Englebart Institute

Gall’s law - A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.
John Gall

More on Wikipedia

Godwin’s law - As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one.
Mike Godwin

Wadler’s law - The emotional intensity and time spent debating a language feature increases along this sequential scale:

  1. Semantics (least intense)
  2. Syntax
  3. Lexical syntax
  4. Comments (most intense)

Philip Wadler

More on HaskellWiki

Know about an eponymous law from programming that I’m missing here? Tweet me about it.