Eponymous Laws
swyx 2020-01-27
I keep an eye out of interesting “laws” that have names attached to them. They are a special case of Two Word Ideas, where a neat trick has been achieved by cramming an idea or meaning into a name and a law. Usually this also means there is a broader story or richer intellectual history worth diving into.
Sometimes they are just plain funny, sometimes they are so true it hurts.
Table of Contents
Software
- Zawinski’s Law: Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.
- I tend to interpret this broadly as software having intrinsic desires. The proximate cause is customers and PMs having the same needs and imaginations, but abstractly it can look like software is a living thing that has a mind of its own:
- Every collaboration app wants to be email
- Every data analysis app wants to be Excel
- Every marketplace wants to be two-sided
- Every platform wants be an “operating system” - like Wordpress
- Every social app wants chat https://medium.com/@tk512/zawinskis-law-a-modern-take-8da3cf89152b
- Every UGC app wants stories https://theverge.com/2018/11/29/18117670/youtube-stories-creators-subscribers-instagram-philip-defranco
- Every B2B app wants a dashboard https://twitter.com/swyx/status/1205921170106638336
- Every site wants a CMS (esp agencies)
- Polanyi’s Paradox - “We can know more than we can tell”
- applicable in AI - we find it hard to describe common sense
- design - clients that don’t know what they want but definitely don’t want what you show them
- related to Moravec’s Paradox: “It’s easy to give computers adult level intelligence, but hard to give them child level perception and motor skills.”
- “To Err is Human; To Really Foul Things Up Requires a Computer” - Bill Vaughan
- Postel’s Law aka Robustness principle: “be conservative in what you do, liberal in what you accept”
- Parkinson’s Law is well known, but has several interesting corollaries: the Stock-Sanford Corollary states that “If you wait until the last minute, it only takes a minute to do.”
- Cargill’s Law: “The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.”
- Hyrum’s Law: “With a sufficient number of users of an API, it does not matter what you promise in the contract - all observable behaviors of your system will be depended on by somebody.” - Even bugs will be relied on!.
- Relevant XKCD
- example - Python Ordered Dicts!
- https://shoptalkshow.com/407/
- ~28 mins in:
window.event
was a nonstandard api but every browser except firefox implemented it. Then firefox implemented it, and JIRA broke. - 30 mins in: JS Objects aren’t supposed to have stable order. But every browser basically implemented them with stable order. Now browser that wants to do a performance optimization wants to use unstable order, but cannot, because apps now rely on it
- ~28 mins in:
- Law of Demeter - a given object should assume as little as possible about anything else - its neighbors and subcomponents
- how to square this against “be liberal in what you accept, conservative in what you output”?
- what happens to Unix Philosophy when you defensively code everything?
Some people combine laws:
- Zawinski-Greenspun-Atwood-Murphy’s Law - “Anything that can expand to read email with lisp in javascript, will go wrong.”
- Pareto-Hofstadter-Parkinson’s Law: “80% of the work expands so as to fill the time available for its completion and still take 20% longer than expected.”
More lists:
- https://haacked.com/archive/2007/07/17/the-eponymous-laws-of-software-development.aspx/
- https://www.timsommer.be/famous-laws-of-software-development/
Hardware
- Moore’s Law vs Wright’s Law: each percent increase in cumulative production in a given industry results in a fixed percentage improvement in production efficiency
- Dennard Scaling: as transistors get smaller, their power density stays constant, so that the power use stays in proportion with area; both voltage and current scale (downward) with length
- Wirth’s Law - this is a special case of Jevons paradox: software is getting slower more rapidly than hardware is becoming faster
- Spolsky wrote a great counterargument to this on Bloatware
- Amdahl’s law: the theoretical speedup in latency of the execution of a task at fixed workload that can be expected of a system whose resources are improved (the “mythical man month” law). another statement - you can never make a system faster than its slowest part.
- Also applied on Software and People https://codahale.com//work-is-work/
- adding manpower to a late sofrware project makes it later - Brooks’ Law
Business of Tech
- Commoditize your complements - Gwern, Spolsky
- Rules for how Networks Scale (from pmarca)
- O(N): Sarnoff’s Law - the value of a broadcast network increases in direct proportion with the number of users
- O(N^2): Metcalfe’s Law - email is p2p - value is number of connections between two nodes
- O(2^N): Reed’s Law - no of groups and subgroups inside the network - what people do inside social networks and games
Socio-Psychological
- The Gell-Mann amnesia effect: you ascribe credibility to news on which you are not an expert, despite knowing how badly reported the news can be on things you ARE an expert. The ultimate troll, given that the name of Gell-Mann was given by Crichton to demonstrate this exact phenomena.
- Poe’s Law - sufficiently advanced satire is indistinguishable from extremism
- “Without a winking smiley or other blatant display of humor, it is utterly impossible to parody a Creationist in such a way that someone won’t mistake for the genuine article.”
- Shirky Principle: Institutions will try to preserve the problem to which they are the solution
- Cromwell’s Rule - the use of prior probabilities of 1 (“the event will definitely occur”) or 0 (“the event will definitely not occur”) should be avoided, except when applied to statements that are logically true or false, such as 2+2 equaling 4 or 5.
- “I beseech you, in the bowels of Christ, think it possible that you may be mistaken.”
- Chesterton’s Fence - you should never take down a fence before knowing why it was put up
- Ebbinghaus Effect - mathematical model of how we forget - aka forgetting curve
- also notable for the visual Ebbinghaus Illusion (relative size of circles)
- Ringelmann effect - work less when group is larger
- Stigler’s Law - no scientific discovery is named after its original discoverer. Maximum meta!
- Mark Twain: ”“It takes a thousand men to invent a telegraph, or a steam engine, or a phonograph, or a photograph, or a telephone or any other important thing — and the last man gets the credit and we forget the others. He added his little mite — that is all he did. These object lessons should teach us that ninety-nine parts of all things that proceed from the intellect are plagiarisms, pure and simple; and the lesson ought to make us modest. But nothing can do that.”
- Berkson’s Paradox - positive correlations become negative because of filters that trade factors off.
- 1% Rule - 90% of the participants of a community only view content, 9% of the participants edit content, and 1% of the participants actively create new content.
- application of Zipf’s Law
- Goodhart’s Law - “When a measure becomes a target, it ceases to be a good measure.”
- Related HN: https://news.ycombinator.com/item?id=17320640
- What’s Immeasurably Important? https://www.collaborativefund.com/blog/immeasurably-important/
- Joseph effects and Noah effects
- https://www.perell.com/blog/news-in-the-age-of-abundance
- “Joseph effects – seven fat years here, seven lean years there – occurred when markets were evolving gradually and continuously. Noah effects were cataclysms – the Flood, or the week of September 11 2001, when the New York Stock Exchange closed for five days and dropped 7.5 per cent on re-opening.”
Related (for future blogposts)
- Cognitive Biases
- Logical Fallacies:
- https://github.com/dwmkerr/hacker-laws (discussed on the Changelog)