Zawinski's law

expression

programming

Every program attempts to expand until it can read mail; those which cannot are replaced by ones which can.

Jamie Zawinski's satire of software envelopment, aging beautifully: substitute 'embed a browser', 'add a chat', or 'ship an AI assistant' and the law still compiles. The underlying force is real - products grow toward platforms until something leaner eats them.

Every program attempts to expand until it can read mail; those programs which cannot so expand are replaced by ones which can. Jamie Zawinski's law is a joke about feature creep with a real observation inside it.

The mechanism is competitive rather than aesthetic. A focused tool is compared against one that also does the adjacent thing, users prefer fewer applications, and the pressure is always toward absorbing neighbouring functionality. Mail was the example of the era; the modern version is that every application expands until it can do chat, video and notifications, and the ones that refuse are replaced by suites that do not.

The counterweight is the Unix philosophy, and the tension between them is the actual design question rather than a settled matter. Small composable tools are better for people who compose; integrated environments are better for people who want the problem solved. Zawinski's law is not an argument that the expansion is wrong, it is an observation that it is the equilibrium, and a team resisting it should know they are pushing against a market force rather than merely exercising taste.

Also known as: Zawinski's law of software envelopment

All glossary entries