Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I wish they rewrote this using Python code.

Maybe someone can take up the mantle on that.



This sentiment I do not understand.

Scheme, especially the subset used in SICP, is about the simplest language you can have in programming. It was meant to be understood by freshmen with no prior exposure to programming (while incidentally being a more expressive language than mainstream ones, including Python). Is it so hard to spend the couple of minutes it takes for a person who's already a programmer on understanding the language used in this book? Is it so appalling to read a syntax more consistent than you're used to?

Way to miss the point of the book. But a surprisingly common one.


why?

and just to clarify my why, it really bothers me that people who do python tend to only want to do python, as if it's some advanced, modern language and the only choice for doing code if you don't like c# or java or c++. it's well over two decades old, which isn't a problem in and of itself, but python ignored and has continued to ignore better programming language designs both before and after it was created. how about you learn something new, and just use a lisp or scheme, just as the course and book does, like racket? and if one doesn't want to use a lisp or scheme, then an ml language like sml, f#, or ocaml would be the next best choice.

python is a scripting language. it should have stayed that way, but instead, it's used to build large systems and to teach programming to people. it's a real shame.

and to conclude, the entire point of SICP is that you don't need much of a language. all you need is a small collection of fundamental ideas in your language. and as it turns out, python does not even have those.


Then rewrite it in Elixir.


It would not have the same power.

There are many ideas in SICP that trigger breakthrough moments (metacircular evaluator, church encoding, code is data / data is code, tower of interpreters, emergence through abstraction) that would easily be seen as gimmicks in Python, because they transcend the hastily-put-together nature of Python. In other words, Python was designed by ordinary people, people who in many cases went out of their way to limit what thoughts the language can help you think (mostly in the interest of popular appeal).

Lisp was discovered and evolved by geniuses.


Two points:

1) Scheme is really really simple to learn. If learning a new language is a major obstacle, you will not be able to finish the course anyway, since it includes implementing multiple small languages.

2) Some of the tasks would be nearly impossible in Python (or any other non-homoiconic language). One exercise is implementing a metacircular evaluator. To do this in Python would require you to implement scanner, parser etc - a major undertaking.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: