I haven&#x27;t read this new book yet, so I can&#x27;t address your contingent criticisms of it, but some of your criticisms are not contingent on the contents of the book, and those I think I can refute.<p>We&#x27;ve actually learned a lot about how to program since SICP was written; Clojure embodies some of that knowledge.<p>To take one example, Scheme was built around the state-of-the-art FP-persistent data structure of the 1950s, the singly-linked list, which was still state-of-the-art in the 1980s.  Clojure&#x27;s standard library includes state-of-the-art production-quality data structures of the 2000s, which can support many more operations persistently than singly-linked lists can.<p>To take another example, miniKanren, which is also in Clojure&#x27;s standard library, is a dramatically more powerful logic programming system than anything that was available in the 1980s.  Basic miniKanren is small enough that you could in fact present it, starting with mu-Kanren, in a book chapter.  This may be a better way to introduce people to nondeterministic programming than the simple temporal backtracking approach in SICP.<p>Of course, we&#x27;ve learned a great deal about formal semantics, types, and proving properties of programs since then, some of which could be presented productively even in dynamically-typed languages like Clojure.<p>Perhaps most importantly, we&#x27;ve learned an enormous amount about building distributed systems since then.<p>SICP is, to my mind, largely about different relationships between time, memory, and programming.  It begins with a timeless, memoryless reduction semantics, and expands from there, exploring different relationships with time: mutating, backtracking, lazy, and so on.  Since SICP was published, some new approaches to time in programming have become important: transactional stores, although those were already in use in niche applications like transaction processing and business data processing in general; incremental computing, where parts of your program are re-executed by need, while leaving other parts alone, although that was already in use in niche applications like compilation of large software systems; and partial evaluation, which, again, existed but was not yet popular.<p>A SICP for 2015 would surely incorporate some of these things, though I&#x27;m not sure which.  And surely there were lessons the authors themselves learned in writing SICM that could be deployed to good effect in a new SICP, as well.