It made me so sad when I found out CS61A was being taught in Python. I love Python, but I also know that I would have missed out on so much wonderful information if I hadn't learned Scheme.

It was truly mind blowing when they had us implement a Scheme interpreter in Scheme, and then add infix operators.

I think the original SICP was perfect for an intro course.

It was also the great leveler, because even if you entered college with programming experience, almost no one knew Scheme. So you were all on equal footing when it came to the language.

Thank you for explaining why you think Scheme is a better langauge for SICP than Python.

As a fan of Python, my reaction to seeing this course was: "oh cool, a course on interesting things in a language I'm comfortable with".

I was then somewhat discombobulated to see the Python bashing in the comments.

SICP is about deeply understanding computation.

Scheme is a good language for SICP because it's simple. You can build a Scheme interpreter as a class project. You can analyze it formally. Etc.

Python is a good language because it's readable and writeable. But it doesn't work for SICP since it's too complex for that. Python also intentionally omits things critical to SICP (like tail recursion).

Calling this book "SICP in Python" would be like taking your favorite poem, releasing it into a different language, and finding that the translators wrote a completely different book, with a different theme, to make it rhyme and the rhythm hold. Just something different with the same name.

> Python is a good language because it's readable and writeable.

https://github.com/satwikkansal/wtfpython