Live data from Hacker News

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

simondobson.org

161–170 of 189 posts

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

#163

I really wanted to like SICP but Lisp throws me off. I love Haskell and Standard ML however! Did others have a similar experience? Might be interesting to read a book similar in spirit to SICP but using a different language as a vehicle (No, I don't want to do SICP in JavaScript).

"Concepts, Techniques, and Models of Computer Programming" by Peter Van Roy and Seif Haridi is my favourite.

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

#164

It’s interesting, SICP and other many other “classic” texts talk about designing programs, but these days I think the much more important skill is designing systems. I don’t know if distributed systems is consider part of “Computer Science” but it is a much more common problem that I see needs to be solved. I try to write systems in the simplest way possible and then use observability tools to figure out where the de…

> What computer science doesn’t teach you is how memory caching works in CPUs. Your fancy graph algorithm may have good runtime complexity but it completely hoses the CPU cache and you may have been able to go faster with an array with good cache usage.

Computer architecture and organization should teach this, no?

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

#165
post #23
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…

For anyone wishing to try: the maintainers of MIT Scheme no longer provide a .dmg but you can download and build the x86_64 version of MIT Scheme. The current release (v12.1) works on a Mac running Sequoia with Intel CPU or on Apple silicon via Rosetta. But the native code compiler (not necessary for SICP AFAIK) is a little broken. (Anecdotally it worked on macOS prior to Monterey, so maybe an Apple-supplied dependen…

There isn't an active maintainer any more, I'm afraid. And Apple placed restrictions on modifying memory that contains instructions that prevented techniques the compiler relies upon for fast allocation of closures. There are ideas for workarounds, but they would require a lot of work.

I'm a huge fan of MIT Scheme, and have used it since 1984, but I would recommend using another implementation these days, especially on Mac.

See Scheme.org.

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

#166

Earlier quoted context omitted.

Computers today are slower than they have ever been. And tomorrow's computers are going to be even slower. In many applications, the amount of data grows at least as quickly as computer performance. If the time complexity of an algorithm is superlinear, today's computer needs more time to run it with today's data than yesterday's computer did with yesterday's data. Algorithms that used to be practical get more and mo…

if we're talking about relative human-experienced performance, the slowest computers i ever owned were in the early-mid 00s. they sped up as multicore and ssd's entered the picture and plateaued about ten years ago ime.

The most striking performance observation of my experience was that Apple took a system, OpenStep 4.2 which ran okay on a 33 MHz 68040 (and acceptably on my 25MHz Cube) and made it run only a little bit better on a 400MHz G3 as the Mac OS X Public Beta.

The difference of course was anti-aliasing, and much greater bit depth, and running multiple programming environments/toolkits (Carbon and Java).

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

#167
post #53

Earlier quoted context omitted.

Hmm, I don’t think so. Functional programming is definitely based on the “declarative point of view taken by classical mathematical subjects”.

I disagree since the book is using a functional programming language to advance the idea that CS is about procedural epistemology as opposed to the declarative stance of maths. The idea that a 'procedural programming paradigm' exists in contrast with a 'functional programming paradigm' is blogspeak imho.

I see. I didn’t realize the book uses a functional language. Thank you for explaining.

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

#168
post #82

Hot take: SICP and SD4F "considered harmful (without counterpoint)"*. Why? The modus operandi of problem solving in these books is object oriented programming masquerading as functional programming, and it is presented as a _neutral_ beginner book. It is _not neutral_. This is a very opinionated approach to programming. To be fair, I do not believe the authors intended for this style of programming to be taken as gos…

I would say that after 20+ years career OO plus functional elements have been a good default. Maybe I missed opportunities where symbolic computations were important and limited myself with languages like C++ that prefer OO/functional approaches... I can't go back and try something else to know =)

I might agree with your hot take in sense that leaving choice is important though.

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

#169
post #78

Earlier quoted context omitted.

I don't understand why Lisp throws you off. I only read SICP after I became proficient in Haskell and it is just fine.

I'm not comfortable writing S-expressions. It feels very weird to me. I understand this is not a major issue. I'm hoping I stick with the book the next time I pick it up!

You should try out structured editing. For example paredit in emacs. And you really only need to understand slurp and barf. It really makes writing S-expressions no longer a chore. No more need to manually count parentheses. The parentheses are balanced by construction.

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

#170

Earlier quoted context omitted.

> but these days I think the much more important skill is designing systems. It is hard to design systems if you don't have the perspective of implementing them. Yes, you move up the value chain to designing things, no, but no, you don't get to skip gaining experience lower down the value chain. > What computer science doesn’t teach you is how memory caching works in CPUs. That was literally my first quarter in my CS…

I think CS 30 years ago was closer to computer engineering today. At my uni 10 years ago the CS program didn’t touch anything related to hardware, hell the CS program didn’t even need to take multivariable calculus. In my computer engineering program we covered solid state physics, electromagnetism, digital electronics design, digital signals processing, CPU architecture, compiler design, OS design, algorithms, softw…

The CS degree at my school was pretty much just Java. Mostly UIs with java. And applets lol.

The only kids who learned anything else learned C++ so they could get jobs with DOD contractors

Post reply on HN