4 ms·
I don't think it's knowing Lisp in particular that's valuable, but understanding different paradigms. Lisp's paradigm is sufficiently different from the normal
by ralph 20y ago
I don't think it's knowing Lisp in particular that's valuable, but understanding different paradigms.
Lisp's paradigm is sufficiently different from the normal imperative languages, e.g. C or Python, that grokking Lisp means you understand more than one paradigm. It's this that's valuable, not knowledge of Lisp itself.
You often find that coders who know multiple paradigms will write interpreters for little languages in the implementation language available to them in order to better represent the problem, rather than attempting a dumb implementation in the bare implementation language.
There used to be a good book by Sam Kamin, Programming Languages: An Interpreter-Based Approach. It examines cut-down versions of different languages, e.g. Lisp and Prolog, implementing an interpreter for each of them in an imperative language to help explain how they work. Norman Ramsey was working on an update but I don't know if it's been published yet. Some universities seem to have access to a pre-release: http://www.cs.uml.edu/~dimock/courses/languages/Spring2005/mainpage.html http://www.cs.uml.edu/~dimock/courses/languages/Spring2005/mainpage.html (Disclaimer: I provided review comments to Ramsey for a couple of chapters back in 2002.)
Where Lisp is useful, is that just about any paradigm and his dog can be implemented in Lisp.
- bsaunder 20y ago"Lisp's paradigm is sufficiently different from the normal imperative languages, e.g. C or Python, that grokking Lisp means you understand more than one paradigm. It's this that's valuable, not knowledge of Lisp itself." This was exactly my point... grokking Lisp is a hallmark of intelligence. I don't think there is any other programming language that rises to this level.
- ralph 20y agoWhat other languages do you think don't rise to this level?
- bsaunder 20y agoLet me reconsider (I had forgotten about Paul Graham's, Python article). I suspect there are other langauges (not many) that reach this same level of intelligence tagging. I think the second paragraph of his Python article captures much of my intent. But still, there seems to be something just a bit different about LISP than most other langauges. Perhaps it is LISP's durribility or the fact that over time different (smart) people develop new lanuages and eventually begin to incorporate more and more features of LISP. LISP clearly got some things right in a fundamental way that every one seems to be rediscovering every decade. This leads me to believe that if you understand LISP, you have a deeper understanding of how things really fit together. With specific regards to your question, I'd include most main stream programming languages (but that's kinda obvious). At this point, I'd include Ruby in this list, but may not Python. Although even in the case of Python, it strikes me as being very similar to other OO languages (better perhaps, but similar none-the-less).