Structure and Interpretation of Computer Programs
Harold Abelson, Gerald Jay Sussman, Julie Sussman (Contributor)
I was induced to read Structure and Interpretation of Computer Programs, AKA The Wizard Book by the Hugo-nominated story "If You Find Yourself Speaking to God, Address God with the Informal You", in which it is mentioned. I didn't much like the story, but I will learn from anyone and anything.
I started this last night and decided after 19 pages to upgrade to the JavaScript edition. This, the second edition, was published in 1996, which, while not exactly a past geological age in Computer Science, still rates as ancient history. The advanced age of the text quickly became apparent in two ways.
First, the 1996 edition is built around the programming language LISP, specifically the Scheme dialect. It is evident from the amount of ink the authors spend defending this choice in the very first pages that, even in 1996, this was a not entirely uncontroversial decision. LISP syntax is famously ugly (not a statement I would make at a bar in the presence of LISP devotees, whose opinions of their favorite programming language are not characterized by Dispassionate Rationality). SICP96 is scornful of prettier languages -- see the footnote on page 11 disparaging "syntactic sugar".
Second, although the main ideas of objected-oriented programming (OOP) had been around for a long time already by 1996, it was not until the mid-90s that "object-oriented programming developed as the dominant programming paradigm when programming languages supporting the techniques became widely available" (from Wikipedia). Thus, it is not apparent in the Table of Contents of SICP96.
I started programming seriously in 1973, and have programmed in, probably, dozens of languages. Currently most of my programming is in Mathematica and python. I have done little in LISP (although Mathematica is in many ways philosophically similar). Although I can always take on a new language, the cost in time is high, and it is unlikely LISP will become an important practical language for me.
There is, however, a 2022 edition of SICP: Structure and Interpretation of Computer Programs: JavaScript Edition, and I have decided to read that, instead. I am not fond of JS, but it is at least universally available (it's built into your browser).
Comments
Post a Comment
Add a comment!