
The Bipolar Lisp Programmer (2007) - S4M
http://marktarver.com/bipolar.html
======
bshimmin
This has been submitted many, many times, most recently about three weeks ago:
[https://news.ycombinator.com/item?id=8801608](https://news.ycombinator.com/item?id=8801608)

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](https://news.ycombinator.com/item?id=2275657)

~~~
gaalze
[http://en.wikipedia.org/wiki/Summer_Wars](http://en.wikipedia.org/wiki/Summer_Wars)

------
dschiptsov
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.)

~~~
mwfogleman
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.

~~~
drcomputer
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.

------
copsarebastards
Screw this guy for being right about me.

------
jokoon
seems good will hunting is everyone's mind. I wish people would try to see
more nuances.

------
lispm
Not again...

~~~
robinhoode
Reposting is one thing. It's another when it's been reposted dozens of times
and it somehow gets voted to the top.

