Every aspect of our lives has been transformed by the invention of general-purpose programmable computers. As a result, it’s tempting to believe that computers can solve any logical or mathematical problem; that if we throw enough time, money and nerds at a question, we can produce a program which answers it.
Unfortunately the universe is never that convenient. There are hard theoretical limits on what programs are capable of doing, and there will always be easily-stated problems which are impossible for any computer to solve.
This talk uses Ruby to tell a nail-biting, maths-free story about the source of a computer’s power, the inevitable drawbacks of that power, and the impossible programs which lie at the heart of uncomputability.
Given at Scottish Ruby Conference 2013 (http://lanyrd.com/2013/scotruby/) and GoGaRuCo 2013 (http://lanyrd.com/2013/gogaruco/). There’s a video of this talk at http://codon.com/impossible-programs. This talk is adapted from chapter 8 of Understanding Computation (http://computationbook.com/).