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

So SICP is awesome. The article makes that assertion in the third paragraph, and then continues making that point for most of the rest of the article. It does not, however, make a good, convincing argument for why "Dive Into Python" is significantly worse, especially as an introductory text.

> It’s just.. it’s just not the same.

Never say this. Horrible people (like me?) will point to it as you admitting that your argument is founded on nostalgia for the way things were, regardless of how strong the rest of your argument is.



"Stop. Take a deep breath. Think about all that you have just discovered (or if you have already discovered it all, reflect on how awesome it is). By page 45 of SICP, you will have;

    Translated recursive definitions into iterative processes
    Examined the differences in the space requirements of various processes
    Used tail-recursion to implement efficient iterative procedures
    Seen that iteration can be thought of as a special case of recursion
    Realized that iterative processes can be restarted easily by capturing and restoring their state variables
    Given thought to complexity, optimization, and state transition theory
    Been encouraged to explore creative solutions to challenging problems
    Learned the basic syntax and semantics of Scheme
    Observed a quasi-religious experience
What will you have accomplished by page 45 of Dive Into Python? Don’t hold your breath. I’ve looked into it. You’ll be learning how to use the and-or “trick” to make simple programs difficult to read. Soon afterwards you’ll be exposed to Python’s intentionally crippled lambda statement."

"Scheme is considerably less complicated and idiosyncratic than Python. It’s simplicity and consistency have immense pedagogical value. It might take you anywhere from a day to a month to pick up the basics of Python. Scheme, on the other hand, has virtually no syntax. It’s definitely possible to get a solid grasp of its fundamentals in less than an hour.

Python can be used to accomplish many of the same things as Scheme. Practically anything you can do in Scheme you can do in Python, and formally speaking, the two languages are equivalent.

However, until a Python textbook emerges that surpasses SICP in teaching the core elements of programming, we should stick with Scheme."


A single paragraph insulting a work does not a convincing argument make (perhaps the fact that it starts off very slow is good in introductory textbooks?). Nor does an assertion of how Scheme is "considerably less complicated and idiosyncratic than Python" convince me that all Python textbooks must, by necessity, be worse than Scheme textbooks.

I'm entirely willing to admit that SICP is better than Dive Into Python (well, I would be if I had a copy of it around so that I could verify this). I'm just saying that the article does little to convince me of that (and quoting parts of it at me does even less to convince me - if you think that I didn't read it thoroughly enough, just come out and say so).


> ...if you think that I didn't read it thoroughly enough, just come out and say so...

OK. I don't think you read it thoroughly enough. I wouldn't usually just come out and tell someone that, because it's likely to start a fight, and that won't help anybody. But, since you asked...

The post repeatedly makes the point that SICP primarily presents a language-agnostic approach to understanding how to solve problems in programming. The author even explains that they aren't objecting so much to Python specifically as they are to the fact that there isn't an SICP-type book which happens to include Python for its code examples. The author does make the claim that Python requires more focus on syntax than Scheme does, and exemplifies this with the "and-or trick", but that's not really central to their argument.

Their main argument is that programming should be taught as an approach to problem-solving, not as an introduction to a language, and that by removing SICP from the curricula, future programmers will lose some valuable skills.

And I happen to agree with that.




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

Search: