I build software during the day, and at night I research about obscure computology, language, logic and music. I also love coffee, cooking and running. I believe software development is at its infancy and we can and should do much better. I believe language shapes our minds. I believe machines can help us bear the very cognitive load of programming them. I believe programming is a form of art.
Bugs make us slow. They annoy our users. They drain our revenues. We software developers are all too familiar with them. But not too far in the future, as software takes on a more central role in our lives, bugs will start driving us off cliffs and poisoning our bloodstream.
Are bugs a natural consequence of software? Are they all created equal? Can we prevent all of them? In this talk, we'll draw from some deeply powerful ideas and tools that can help us reason about what our code is doing, and we'll explore how they can render entire classes of bugs obsolete.
Let's discover how powerful logics, expressive type systems and generic code might just be our best allies in building the systems of tomorrow.