Since time immemorial, the arguments have been smouldering on the Internet:
- Which are better, static or dynamic languages?
- Which are better, types or tests?
- Which are better, Take That or NSYNC?
I think people often talk across each other because each side doesn't understand how to use the other's tools effectively. And while much is written and spoken about how to write good unit tests, most of us are not trained in how to write good types. So rather than attempt to answer those questions definitively, I want to help you understand what's at stake.In this code-centric talk you'll learn some practical, real-world tactics to improve the feedback you get from the compiler, beginning with simple techniques and diving deeper to advanced ones. We'll see how types can help you safely drop down the ladder of abstraction when you need to make code fast. I'll also give you a taste of the philosophy underlying this style of programming. And by the end of the talk, no one will need to argue online any more.