Paracelsus Maxim
Summary
Fowler introduces the 'Paracelsus Maxim' — named after the 16th-century Swiss physician who observed that dosage alone determines whether a substance is medicine or poison — and applies it to software development. He argues that programming practices are rarely simple binaries of good or bad; they vary along two axes: context and dosage. Global data serves as his concrete programming example, where a small amount of immutable global state is useful while excessive global state becomes harmful. The post closes with a call for more nuanced thinking, always asking 'in what contexts' and 'in what doses' when evaluating any practice.
Key Insight
Programming practices aren't inherently good or bad — their value is determined by context and quantity, so every judgment should be qualified by 'in what doses?' and 'in what contexts?'
Spicy Quotes (click to share)
- 6
The difference between a medicine and a poison is dosage.
- 3
Few things are simple binaries.
- 4
All things are poison, and nothing is without poison; the dosage alone makes it so a thing is not a poison.
- 3
A little global data, especially when immutable, can be a handy way of propagating information that may needed anywhere in a program, but it quickly becomes dangerous if there is a lot of it about.
- 3
When thinking about when things are good or bad, we should always ask 'in what contexts' and 'in what doses'?
Tone
reflective, philosophical, didactic
