Hacker News new | past | comments | ask | show | jobs | submit login

  > One has to wonder if there's a reason.
This particular type of argument keeps coming up in Lisp-related discussions, but I seriously doubt its validity.

Lisp is overrepresented in classic texts on computer science, yes. But that doesn't allow you to jump to the conclusion that, hence, it's the best possible language or even a very good one for all things ever. As far as I'm concerned, cultural heritage (with Lisp having a long academic tradition) and syntactic/semantic transparency are far more likely explanations. SICP, for instance, doesn't employ Scheme because it is an apt language choice for industry projects or general programming but because it's a very slim, non-obtrusive language that virtually disappears behind the concept that's under scrutiny. Watch the lectures: it takes them about 10 minutes to explain all of Scheme's syntax. That's great, because when elucidating CS concepts, syntax doesn't matter at all.

However, being particularly well-suited for explanatory/conceptual purposes does not make Lisp an ideal language for everything. Not even necessarily for many things.




Classic? SICP and PAIP are the only two I'd really consider classic. The Reasoned Schemer is 2005 and is IMO the most important introductory text on relational programming since Warren's Abstract Machine: A Tutorial Reconstruction. ~200 lines of Scheme and you have something as fast Prologs written in 150K of C.

I don't consider Art of the Metaobject Protocol to be introductory or conceptual. Alan Kay considered it one of the only interesting books published on object oriented programming for a decade! Lisp in Small Pieces is also not particularly introductory or conceptual - that's a hardcore compiler optimization text.

I'd love to hear of a domain where a Lisp dialect isn't as well suited as anything else.


SICP claims "programs must be written for people to read, and only incidentally for machines to execute". If that's true, then a language's suitability for explanatory/conceptual purposes is its primary virtue. The right question to ask about a language is, what concepts does it help explain?




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

Search: