Live data from Hacker News

SICP: The only computer science book worth reading twice? (2010)

simondobson.org

1–10 of 189 posts

Re: SICP: The only computer science book worth reading twice? (2010)

#3
The article has a broken link for the free copy:

https://mitp-content-server.mit.edu/books/content/sectbyfn/b...

https://web.mit.edu/6.001/6.037/sicp.pdf

I hadn't seen a blessed PDF version until today. Circa 2001, only the HTML version was freely available, and someone converted it to TeXinfo: https://www.neilvandyke.org/sicp-texi/

If anyone wants to work through SICP today, you can run the code in MIT Scheme, or in DrRacket: https://www.neilvandyke.org/racket/sicp/

Re: SICP: The only computer science book worth reading twice? (2010)

#4
My second reading made me dig the footnotes and references, and there's a big world of beauty out there too. IIRC there's a paper where Sussman and some team made a custom design programmable processor to compute celestial bodies properties (trajectories). Mind bending as usual.

Re: SICP: The only computer science book worth reading twice? (2010)

#7
post #3

The article has a broken link for the free copy: https://mitp-content-server.mit.edu/books/content/sectbyfn/b... https://web.mit.edu/6.001/6.037/sicp.pdf I hadn't seen a blessed PDF version until today. Circa 2001, only the HTML version was freely available, and someone converted it to TeXinfo: https://www.neilvandyke.org/sicp-texi/ If anyone wants to work through SICP today, you can run the code in MIT Scheme, or in…

one thing to note is that the second chapter's "picture language" is not supported in MIT Scheme in 2024. There used to be a package but it's like 2 decades out of maintenance. In Dr. Racket however, there is a package specifically for working through those problems.

Re: SICP: The only computer science book worth reading twice? (2010)

#8
> The computer revolution is a revolution in the way we think and in the way we express what we think. The essence of this change is the emergence of what might best be called procedural epistemology — the study of the structure of knowledge from an imperative point of view, as opposed to the more declarative point of view taken by classical mathematical subjects

Ironic, given the increasing use of functional programming in domains where old-fashioned imperative/OO programming used to reign alone.

Re: SICP: The only computer science book worth reading twice? (2010)

#9
post #6

Original version: https://mitp-content-server.mit.edu/books/content/sectbyfn/b... Javascript version: https://sourceacademy.org/sicpjs/index

And the Python version: http://www.composingprograms.com/

this is not the Python version of SICP. It's a different book inspired by SICP. There's no "picture language" in chapter 2, and there's no "metacircular evaluator" and "register machine" in chapter 5.

Re: SICP: The only computer science book worth reading twice? (2010)

#10
> In fact, I’d go further and say that it’s the only computer science book of that age that I’d happily and usefully read again without it being just for historical interest: the content has barely aged at all. That’s not all that unusual for mathematics books, but it’s almost unheard of in computer science, where the ideas move so quickly and where much of what’s written about is ephemeral rather than foundational.

I recall that when MIT stopped teaching with SICP, one of the main claims was that programming now is often not about thinking abstractions through from first principles, and creating some isolated gem of composing definitions. Instead, we interact with and rely on a rich ecosystem of libraries and tools which often have individual quirks and discordant assumptions, and engineering then takes on a flavor of discovering and exploring the properties and limitations of those technologies.

I think now, (some) people also are at the point of not even directly learning about the limitations and capability of each tool in their toolbox, but leaning heavily on generative tools to suggest low-level tactics. I think this will lead to an even messier future, where library code which works on (possibly generated) unit tests will bear some fragile assumption which was never even realized in the head of the engineer that prompted for it, and will not only fail but will be incorporated in training data and generated in the future.

Post reply on HN