Jon BeltranDeHeredia’s rant on why programming is broken has turned into a very interesting thought experiment. First, Jon describes why he thinks programming is broken:

Every step of the way, in every statement, line of code, function call or sequence-point, if you want to write good code, you need to think about all the different possible states of the whole program. This is invisible and impossible to define. Provably. Always. In all existing languages. That’s the reason 100% code-coverage unit-testing doesn’t guarantee bug-free code, and it never will. This is also the reason bad programmers don’t become good: they just can’t think about all those possible cases in a structured way.

Then he describes his vision for a new programming language that looks like the love child of Haskell and Prolog.

If you’re looking for something geeky to spend your free time on I suggest taking some ideas from the comments on Jon’s article. Readers are posting links to all sorts of interesting things such as executable specifications, the failures of Prolog, proof management systems, and the 4GL fiasco.