Try to learn something about everything

Tom and Michael vs. John Von Neumann

In case you wonder if Tom and I gave up on reading papers, the answer is a resounding no! In fact there’s one we finished sometime around mid-September, which for various reasons hasn’t been summarized yet. This is about to change.

The paper

The paper in questions was “Can Programming Be Liberated from the von Neumann Style?”, a Turing Award lecture by John Backus.

A very brief summary

At the core of his lecture, Backus argues in favor of functional/applicative programming. This is done by first exploring shortcomings and bottlenecks in the von Neumann architecture, followed by an exploration of concepts from his own FP) (Function Programming) language.

Difficulty of the paper

Generally this is very easy to read, and provides good food for thought, even today. The more mathematical parts in the middle might deter some readers, but aren’t really that important.


Alas the age of the paper shows a bit. While some of the points are still valid, there undoubtedly is a much wider appreciation of the benefits of applicative style programming nowadays, as can be seen by various functional languages slowly finding their way into the mainstream. It’s still very interesting to see how early Backus already thought about all of this though, and also that the language he envisioned seemed to be more in line with the APL school of thought that e.g. Haskell, which in all fairness wasn’t around back then. I wonder how Backus felt about the latter, which can be very declarative (see pointfree style). For example, here is the inner product function from section 5 of the paper translated to Haskell:

ip :: [[Integer]] -> Integer
ip = sum . map product . transpose

If you like programming languages and also like to think about them, and learn about their history, this is an interesting paper to read. Also it’s quite ironic that Backus actually won in large parts for his contributions to Fortran, a language that influenced so many other imperative languages.