Josh Susser, Thinking in Objects

Many lightning talks at conference

Presenter Notes

History: "My billion-dollar mistake"

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.

Presenter Notes

History: "Pornographic programming"

The unexpected appearance of an interpreter tended to freeze the form of the language, and some of the decisions made rather lightheartedly for the ... paper later proved unfortunate. These included ... the use of the number zero to denote the empty list NIL and the truth value false. Besides encouraging pornographic programming, giving a special interpretation to the address 0 has caused difficulties in all subsequent implementations.

Presenter Notes

No silver bullet

This technique does not prevent buggy code!

-- type checks, but compiler warns of missing case of NobodygreetingForMaybePersonBAD::MaybePerson->StringgreetingForMaybePersonBADmaybePerson=casemaybePersonofOneperson->"Dr. "++nameperson-- run this codegreetingForMaybePersonBADNobody

Failure:

Exception: Non-exhaustive patterns in case

But at least the compiler warns you of code branches you were supposed to write.