The Bipolar Lisp Programmer (2007)(marktarver.com)
marktarver.com
The Bipolar Lisp Programmer (2007)
http://marktarver.com/bipolar.html
5 comments
Lisp programming is in some sense like Eastern Philosophy. Very few understand how a few great insights fit together to form something "better" than just a sum of its parts. There is a small industry which makes living on ignorant what we could call Tibetology with a hundreds of books of poorly translated vague commentaries, mostly by fools, and millions of ordinary people engaging in speculations about what these esoteric teaching are all about, where their "knowledge" usually came from popular websites, and communities of "enlightened people" somewhere around Goa or Varanasi. It is a second-hand knowledge.
The beauty of Lisp is in these few "great insights" of John McCarthy who'd put together a few "good ideas", so, again, the result has been more than just a sum of the parts. Then a few more evolutionary steps happened, which gave us macros.
When we say Lisp, we don't mean Common Lisp or Scheme or Ark or Clojure. We think about this set of ideas where ideas complemented and augmented each other. As long as this set of ideas remain unbroken it doesn't really matter is it Arc or Scheme or Common Lisp. It is about principles, not implementation details.
When we think of these set of idea - everything is a first-class value, symbols which are "natural" pointers to values, lexical scooping, generic procedures on typed (by tagging) values instead of variables, which together with prefix notation, which gives an elegant and uniform code-generation, and "evaluating" read procedure gives us macros, we wonder why, why so few people "gets" it.
One who is asking what is it that makes Lisp special will find the usual torrent of nonsense, while those who would try to find it out yourself suddenly would get this aha-moment of realization of the beauty of how a few simple and clever ideas fit together. It is the source of Lisp elegance and power. Brian Harvey's CS61A course form 2008 is still the best place to learn the big ideas. Then comes On Lisp and arc.arc.
Lisp it is not just a set of features - it is a "complete" set of features, which could be ruined, reduced to an ordinary clumsy language, when a one single feature, such as List structure (conses) as the representation of Lisp's code would be removed, or if another data-structure would be introduced, to break uniformity. That is why Clojure doesn't have "that feel" which Arc or Scheme or a subset of CL has.)
The beauty of Lisp is in these few "great insights" of John McCarthy who'd put together a few "good ideas", so, again, the result has been more than just a sum of the parts. Then a few more evolutionary steps happened, which gave us macros.
When we say Lisp, we don't mean Common Lisp or Scheme or Ark or Clojure. We think about this set of ideas where ideas complemented and augmented each other. As long as this set of ideas remain unbroken it doesn't really matter is it Arc or Scheme or Common Lisp. It is about principles, not implementation details.
When we think of these set of idea - everything is a first-class value, symbols which are "natural" pointers to values, lexical scooping, generic procedures on typed (by tagging) values instead of variables, which together with prefix notation, which gives an elegant and uniform code-generation, and "evaluating" read procedure gives us macros, we wonder why, why so few people "gets" it.
One who is asking what is it that makes Lisp special will find the usual torrent of nonsense, while those who would try to find it out yourself suddenly would get this aha-moment of realization of the beauty of how a few simple and clever ideas fit together. It is the source of Lisp elegance and power. Brian Harvey's CS61A course form 2008 is still the best place to learn the big ideas. Then comes On Lisp and arc.arc.
Lisp it is not just a set of features - it is a "complete" set of features, which could be ruined, reduced to an ordinary clumsy language, when a one single feature, such as List structure (conses) as the representation of Lisp's code would be removed, or if another data-structure would be introduced, to break uniformity. That is why Clojure doesn't have "that feel" which Arc or Scheme or a subset of CL has.)
Clojure was my first programming language. I've been playing around with a language with pointers recently, and I wonder if you could explain to me what you mean about "symbols which are natural pointers."
More generally, I don't think I understand yet why someone would use pointers instead of a variable.
Thanks for your comment about Lisp.
More generally, I don't think I understand yet why someone would use pointers instead of a variable.
Thanks for your comment about Lisp.
In lisp, think of symbols as things that represent other things. Instead of having to evaluate each expression in the complexity that the programmer builds, everything can be substituted until the computer is left with a simple but expansive form. The machine is very good at evaluating this simple form, because it only needs to look up a few things to process the entire calculation, which is really just a collection of an ordered organization of the same calculations over and over again.
A pointer is not the actual data. It's just a trail of connections that eventually lead to the data you want, instead of having to manage a bunch of data you don't need to, or want to manage. It's computationally efficient and it is elegant. It represents exactly what you tell it to represent.
A pointer is not the actual data. It's just a trail of connections that eventually lead to the data you want, instead of having to manage a bunch of data you don't need to, or want to manage. It's computationally efficient and it is elegant. It represents exactly what you tell it to represent.
AI guys had this notion that words of a human language act as pointers to "inner representation" of some "concept of the mind".
It is not a coincidence that Lisp was the language of early AI. They believed that this set of features is good-enough to "program" intelligence.
The intention of my comment was to show that there is nothing much to talk about, especially there is no "mysticism" or "that special attitude".
It is not a coincidence that Lisp was the language of early AI. They believed that this set of features is good-enough to "program" intelligence.
The intention of my comment was to show that there is nothing much to talk about, especially there is no "mysticism" or "that special attitude".
"Lisp wasn't invented, it was discovered."
(Looking for the source of this observation.)
(Looking for the source of this observation.)
Screw this guy for being right about me.
seems good will hunting is everyone's mind. I wish people would try to see more nuances.
Not again...
Reposting is one thing. It's another when it's been reposted dozens of times and it somehow gets voted to the top.
I think this submission of it has the most comments, though some of them are about the relative merit of pointing out how many times it had previously been submitted: https://news.ycombinator.com/item?id=2275657