Hacker News new | ask | show | jobs
by vasili111 1088 days ago
Anyone have experience reading both LISP and Python version of SICP? Does the Python version as good as LISP version?
2 comments

Kris Jenkins wrote this page about functional programming, which is the best quick explanation of why functional programming languages matter: http://blog.jenkster.com/2015/12/what-is-functional-programm...

And then you mix that with Larry Wall's famous quote: "Computer languages differ not so much in what they make possible, but in what they make easy."

So you mix these two references together and you get the idea that maybe Lisp and Scheme and ML make functional programming easy. Python, on the other hand, makes it easy to avoid the key feature of Lisp: separating concerns and managing complexity.

This doesn't mean Python is a bad language, and it doesn't mean you can't use python to craft programs in a functional style. But it's A LOT easier in Python for an inexperienced programmer to do things that Lisp and Scheme are trying to force you to avoid (by exposing unnecessary state to a function, conflating concerns and avoiding abstractions for manipulating complexity.)

I think this is why Scheme was originally chosen for SICP over contemporary languages like C or Modula-{2|3} or Bliss. It's simultaneously good for CS pedagogy and a small team can build decent, extendible, testable and debuggable programs with it.

Python isn’t as powerful as lisp so you end up standing on your head to do some of the things that are so straightforward in lisp.

I suppose using python might make it easier for some people to translate what they learned in class into their work, at least if that is in python.

Python has gobs of libraries so it’s easier to write complex programs that can benefit from that than it is to try the same in lisp.