←back to thread

460 points pieterr | 3 comments | | HN request time: 0.213s | source
1. nomilk ◴[] No.42162029[source]
I considered reading SICP recently but this changed my mind:

> It's old and feels old. originally in scheme, they recently re released the book in JavaScript which is more approachable to today's audiences and there are still good things in there about encapsulation and building dsls. ymmv. Though the language and programming design concepts hold up, we're playing at higher levels of abstraction on more powerful machines and consequently the examples sometimes seem too tiny and simple.

I had studied economics in a similar way, but learning slightly old/outdated ideas demotivated me - I was much more interested in learning what works and what's considered the best way to do things, not what had been considered a good idea at some point in the past.

I don't want to be a downer on SICP (especially since I haven't even read it), but I hope this info might help others (or elicit a strong refutation).

replies(2): >>42162080 #>>42162316 #
2. crystal_revenge ◴[] No.42162080[source]
Scheme as basically an implementation of the untyped lambda calculus will eternally be a good frame work to think about the problems of computation in.

In the more practical area Racket (the most modern Scheme) has basically any practical functionality you would want, while amazingly remaining a platform for an incredible amount of experimentation in computation and programming language theory.

But SICP is a book that is for people interested in the study of computation what programming languages can be. If you're worried about getting a job in software it won't be all that useful, but it will remain a classic for anyone interested in engaging in creating the future of software.

3. cess11 ◴[] No.42162316[source]
Sure, SICP is not a good book for people wanting to do rote learning, imitation, 'best practice' while ignoring the history.

It's for people that would like to learn rather advanced programming techniques and foundational ideas in computer science.