I call it my billion-dollar mistake. It was the invention of the null reference in 1965.
This remark is Tony Hoare’s well-known reflection on the null reference, a feature he introduced in 1965 while designing the type system for the language ALGOL W. A null reference indicates that a variable points to no object.
Hoare had aimed to make every use of references safe, checked automatically by the compiler. He added the null reference nonetheless, as he later admitted, because it was so easy to implement. The decision proved consequential: attempts to use null references have caused countless errors, vulnerabilities and system crashes across the software written since.
By his own rough estimate, the cumulative damage amounts to around a billion dollars, the phrase that gives the reflection its name. Offered candidly as an admission rather than an excuse, the comment has become a widely cited example of how a minor, convenient design choice can carry very large and lasting costs.
Full quotation
“I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn’t resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years.”
Explore the author
Tony Hoare
19 quotes · 13 works · 36 themes · 93 tags