Live data from Hacker News

Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

news.ycombinator.com

41–50 of 103 posts

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#41
post #4

The concepts in SICP are timeless. There's nothing to be lost going through that book. There are video lectures you can use to accompany the book: https://youtube.com/playlist?list=PLE18841CABEA24090 Also, I highly recommend the courses How to Code: Simple Data amd How to Code: Complex Data on edX that are based on HtDP.

As if to prove your point, those video lectures are from 1986 . I took the course in 1999. And yes the material is just as relevant today.

Not necessarily as relevant, programming has changed a lot since SICP came out. Sussman says so himself - https://youtu.be/OgRFOjVzvm0

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#42
post #19
post #14

Earlier quoted context omitted.

Your only critique is that SICP is old. Computing power and performance are irrelevant to SICP.

Not only that. Now precisely because multicore is the only path to follow when we reach the end of the Moore’s law, we need more than ever functional programming. Is no coincidence that there are so much new languages that are trying to use those concepts, including a big revival of Lisp.

Functional programming doesn’t help with multicore. The real problem with multicore programming is data dependency, of which mutability is merely a special case. functional programming doesn’t help prevent you from depending on a certain computation and forming the bottleneck of your program.

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#43
Try SICP at some point, no matter what else you learn.

HtDP is also worth taking a look at, and is much easier than SICP.

LLMs will mostly statistically plagiarize code. (Some people will rationalize "The tool generates the boilerplate, so that I can focus on the harder problems, because I am a mental giant who is above mere coding, and this is totally not open source code laundering", and then slap the code into a Git commit with their name on it, while making "cha-ching" cash register sounds.)

Instead of LLM, if you want to learn from other people's open source code, you can just read it in the original form (and not pretend you wrote it).

You can also practice writing your own code. Find things you want to do, and instead of using an LLM or Googling for something to copy&paste, work through the problem yourself, and build that understanding and mental machinery.

And when that starts getting routine, experiment with different approaches within the same language, as well as with different languages. You will add to your toolkit of approaches, and start to build up a feel for when they are appropriate, and various implications.

Advanced, once you have some basic programming skills: Start building things that have to work reliably and securely, have to be maintainable and evolvable at a good cadence, have to be done in the context of a team where everyone is working towards product success, etc.

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#44
post #19

Earlier quoted context omitted.

Not only that. Now precisely because multicore is the only path to follow when we reach the end of the Moore’s law, we need more than ever functional programming. Is no coincidence that there are so much new languages that are trying to use those concepts, including a big revival of Lisp.

There's a big revival of lisp?

Many ideas that come from lisp, and for which lisp was long ridiculed, are now mainstream, like garbage collection, closures, a big runtime, a huge library (nowadays lisp is criticised for its small library), typed data (instead of typed storage), exploratory development in an interpreter coupled with an optional compiler...

I don't consider languages with these features lisps, but I think the GP's statement is only quite mildly hyperbolic.

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#46
Meh. Python is for scientists. Lisp is for engineers. Which is to say the languages were designed for different language design methodologies. In the old days of Lisp we didn't have large libraries of pre-existing functionality, so it was important for programmers to know how to construct complex functions from simple functions. But now we have python with its expansive partially documented standard and semi-standard libraries. You don't need to know how to rewrite that lump of functionality. You just need to know how to write small test programs that verify you understanding of how it's supposed to be used. And if you find you need to do something that's not supported, you just change what it is you're trying to do.

The flip side of this is that there's a large corpus of programs demonstrating idiomatic python. "There's only one way to do it," was a mantra I heard from Pythonistas in the 2000s. Maybe it's still a cultural value in that community. That would explain the large corpus (that and it being a popular language.)

I've yet to see a LLM spit out even half-way decent Lisp (CL, scheme or even e-lisp). My suspicion is the corpus of available code is small and its language features tend to generate less "boilerplate."

Having taught "practical lisp" in the 90s, SICP was frustrating because of its insistence on describing idiomatic Lisp in text, but with far fewer examples than comparative texts in other languages (k&r c or PASCAL User Manual and Report.)

There seems to be a tradition of this in Scheme and CL books. Where you could easily find books in the 80s entitled "${N} PROGRAMS IN BASIC" or some such, which were useful to provide a corpus of idiomatic code learners could use to build an intuitive understanding of the language. In the Lisp world no such books were available, and members of that community seemed to want learners to develop a wholly rational approach to learning.

So... if your purpose is to have a language that can be generated by ChatGPT, definitely pick Python. My experience with automated tools is they absolutely do not understand how to refactoring lisps effectively.

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#48
post #19
post #14

Earlier quoted context omitted.

Your only critique is that SICP is old. Computing power and performance are irrelevant to SICP.

Not only that. Now precisely because multicore is the only path to follow when we reach the end of the Moore’s law, we need more than ever functional programming. Is no coincidence that there are so much new languages that are trying to use those concepts, including a big revival of Lisp.

Multicore is a continuation of Moore's law not its end.

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#49

Since, astonishingly, neither full title is mentioned in the post or the comments: SICP = Structure and Interpretation of Computer Programs: https://mitp-content-server.mit.edu/books/content/sectbyfn/b... HtDP = How to Design Programs: https://htdp.org/ Sometimes I think gratuitous use of acronyms (initialisms for the pedants) has been the biggest impediment to learning throughout my career.

I'm not saying text should be full of acronyms/initialisms, but they serve a purpose of compressing the content. Maybe the chosen acronyms/initialisms don't work for you and that'd be a fair point.

Re: Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?

#50
If you will go past first chapter, you will find wealth of knowledge, that is not programming language/api/backend/frontend specific. SICP is a book that is a bit hard to start.

This is a thing that I miss about C++ programming language, third edition by Stroustrup. The "Design using C++" section of about 100 pages in the end made me, at a time, better programmer. I do not read it now, though, to keep my good memories about it =)

Post reply on HN