Ten Challenges — cover art: a small badger in a tweed waistcoat at a Victorian reading-table at evening, ten thick books in a leaning stack beside him — bookmarks in nine of them, one wedged about a third of the way through — a brass oil lamp and a pot of tea, one tall window showing a cool indigo sky.

2005 · Drunken Blog Rants · Rant

“We've been studying the available research, and all roads lead to the same set of conclusions, one of which is that Functional Programming is going to be a necessity in this new world. It's a foregone conclusion.”
— From Ten Challenges, January 2005
Read the essay

© 2005 Steve Yegge. Originally published at Drunken Blog Rants.

AI Notes

The deliberate sequel to Ten Great Books two months earlier. That list was the comfortable one — books finished, cleanly recommended. This one is harder and more honest: ten books Steve is in the middle of, mostly because finishing them is a multi-year project. Gödel, Escher, Bach sits at #1 with the warning that nearly nobody finishes it; SICP at #2 with the confession that the condescending tone almost made him quit before he realised what he had in his hands. Knuth's Digital Typography is the unexpected pick (a book about typography typeset in the program it documents). The compiler/language stack — Scott's Programming Language Pragmatics, Friedman/Wand/Haynes, Pierce on types, the two Scheme books — collectively form the curriculum Steve thinks the field skipped. The closing turn is Okasaki's Purely Functional Data Structures, on the list because of why Steve and his colleague JG keep coming back to it — they've been running a private research program at Amazon for a year on how to escape the J2EE/C++ swamp, and the literature keeps pointing the same direction. A higher-level language abstraction backed by functional-programming machinery, on top of the network as a single programmable substrate.

January 2005, with Erlang's revival, Scala, Clojure, and the whole map/reduce/actor wave still several years out. Steve is reading the road signs and the essay closes on that note: books as a survival kit for a distributed-computing world that hasn't arrived yet.

Related listings

  • 2004

    Ten Great Books

    The two-month-earlier companion. Ten Great Books is the list of books Steve finished and revisits; Ten Challenges is the much more revealing list of the ones he hasn't, and why he keeps going back.

  • 2005

    Math Every Day

    Same self-improvement habit, different deficit. The mathematical reading habit Steve announces in Math Every Day is what eventually lets him make headway on Hofstadter and Pierce in this list.

  • 2005

    Transformation

    Same shape of argument applied to a single book — going back to actually read Fowler's Refactoring rather than skimming it. Ten Challenges is the same habit, scaled to ten.