Live data from Hacker News

Paul Graham on SICP (2000)

amazon.com

81–90 of 141 posts

Re: Paul Graham on SICP (2000)

#81

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.

Re: Paul Graham on SICP (2000)

#82

Earlier quoted context omitted.

What is CLOS? Is this an acronym? Google is failing me here.

CLOS is--IMHO--the most advanced object system ever invented. The freedom that comes from CLOS is mind-blowing. Learning what CLOS can do will make you hate every other object-oriented programming system.

I think BETA comes close, but it never made it into mainstream.

Re: Paul Graham on SICP (2000)

#83

Earlier quoted context omitted.

Given there's so much free material on SICP out there, paying $2500 to learn SICP feels a bit like paying a personal trainer to force yourself to work out (which I've admittedly done before)

It indeed feels exactly like that, yes. And, obviously, you've never taken a Beazley course before. :-)

Also, David Beazley's work on SWIG is also outstanding! He deeply groks the C++ type system as well a plethora of other languages, and made a great tool that ties them all together.

http://www.swig.org/

https://en.wikipedia.org/wiki/SWIG

>The Simplified Wrapper and Interface Generator (SWIG) is an open-source software tool used to connect computer programs or libraries written in C or C++ with scripting languages such as Lua, Perl, PHP, Python, R, Ruby, Tcl, and other languages like C#, Java, JavaScript, Go, Modula-3, OCaml, Octave, Scilab and Scheme. Output can also be in the form of XML or Lisp S-expressions.

Original author(s): David M. Beazley

Re: Paul Graham on SICP (2000)

#84
post #60
post #2

I first read SICP after 25 years of professional development, and while I didn't learn anything new I did see things in a whole new light. I think it would have been really useful to have read the book 25 years ago: I think you're going to benefit from having a few years of real-world development experience before reading this book. The profundity, impact and applicability to your work will be much greater. Highly re…

> I first read SICP after 25 years of professional development, and while I didn't learn anything new I did see things in a whole new light. How is possible that you read the whole book and didn't learn anything new?

I've read SICP and not only did I not learn anything new, I did not see anything in a new light either.

Yes, the book is entertaining. But there's more profound enlightenment to be had however when working with actual functional programming for a few years in a supporting language and afterwards nothing in SICP is new.

However I wish I would have read this book when I was an undergrad.

Re: Paul Graham on SICP (2000)

#85

I can't understand why "694 people found this helpful". It's not a very good review or even a review at all. The only review-like part of it is "I still don't feel I have learned everything the book has to teach." which is very cryptic. Why doesn't Paul Graham feel like he has learned everything from the book? Is it because the book has a huge amount to teach and it isn't possible to consume it all in a short period…

Norvig's review was much better.

Re: Paul Graham on SICP (2000)

#86

Earlier quoted context omitted.

>"And, obviously, you've never taken a Beazley course before. " Could you elaborate on this point? I am not familiar with this individual or their classes. Is there something special?

You can see some of David Beazley's presentations on YouTube. He presents regularly at PyCon and other conferences. He's also the author of Python Essential Reference and the editor of Python Cookbook, 3rd Edition. One of my favorite presentations of his that gives a flavor of his instruction style is "Python Concurrency from the Ground Up" at PyCon 2015: https://www.youtube.com/watch?v=MCs5OvhV9S4 I saw this one liv…

Thanks for sharing this video. I had no idea who he was.

Re: Paul Graham on SICP (2000)

#87

Earlier quoted context omitted.

CLOS is metacircular, implemented in itself. Moreover, it decouples state (classes and instances) from protocol (generic functions and methods) and through the MOP allows you to reprogram every aspect of its behavior. Python's object system suffers from the same ailments that Python itself does. It's an amalgamation of various hacks, some obviously inspired by Common Lisp [1], others made up on the spot in order to m…

CLOS (as well as a lot of other things in Common Lisp, like the error system) depends on CLOS being present. This is why writing a competent CLOS compiler that can bootstrap itself is very difficult. But it's so worth it.

How so?

The canonical implementation (PCL) was written in pre-ANSI CL without CLOS. There's a number of things that are difficult there, but can't put my finger on any related to bootstrapping.

Re: Paul Graham on SICP (2000)

#88

I wish they rewrote this using Python code. Maybe someone can take up the mantle on that.

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.

Re: Paul Graham on SICP (2000)

#89
post #47

Earlier quoted context omitted.

Mostly agree but: Lua is a Lisp-lite, Ruby maybe a Lisp-lite, Python? No way, I'd go as far as say that Python is antithetical to the Lisp philosophy and yes, I know Norvig has claimed something similar in the past. It's still inaccurate and wrong. In an interview, Norvig pretty much admitted that popular appeal is more important to him than the inherent superiority [which he of course acknowledges] of the philosophy…

You can write lisp-y python quite easily. It's not good, pythonic or maintainable, but for learning purposes it is acceptable, especially on the 2.x series. Just start with list comprehensions. Lua and Ruby I fail to see how they are in any way lisp-y.

Ruby: Almost everything is an expression unlike Python, has symbols unlike Python, closures and anonymous functions are not crippled or second-class unlike Python, has full continuations unlike Python.

Lua: Simple, minimal syntax which is consistent (unlike Python), multiparadigm, designed around one core datastructure, metatables/metamethods, metaprogramming is encouraged, has environments.

Re: Paul Graham on SICP (2000)

#90
post #47

Earlier quoted context omitted.

Mostly agree but: Lua is a Lisp-lite, Ruby maybe a Lisp-lite, Python? No way, I'd go as far as say that Python is antithetical to the Lisp philosophy and yes, I know Norvig has claimed something similar in the past. It's still inaccurate and wrong. In an interview, Norvig pretty much admitted that popular appeal is more important to him than the inherent superiority [which he of course acknowledges] of the philosophy…

You can write lisp-y python quite easily. It's not good, pythonic or maintainable, but for learning purposes it is acceptable, especially on the 2.x series. Just start with list comprehensions. Lua and Ruby I fail to see how they are in any way lisp-y.

there's also "hy", which gives you lisp syntax and access to the python libraries.

https://github.com/hylang/hy

Post reply on HN