
Why we hate Lisp - laex
http://c2.com/cgi/wiki?WhyWeHateLisp
======
emersonrsantos
> Reddit is proof that lisp is really powerful. Paul Graham originally wrote
> reddit, in lisp, on the back of a napkin while he was waiting for a coffee.
> it was so powerful that it had to be rewritten in python just so that
> ordinary computers could understand it. Because it was written in lisp it
> was almost no effort to rewrite the entire thing, and the rewrite was
> completed in-between two processor cycles. Paul Graham himself was
> completely written in lisp, by an earlier version of himself, also written
> in lisp, by an earlier version of lisp. It's lisp, paul graham, lisp, paul
> graham, all the way down.

(from
[http://www.secretgeek.net/lisp_truth](http://www.secretgeek.net/lisp_truth))

~~~
agumonkey
MIT went from scheme to python. I heard an old lisp based recursive class went
to python too (people want numpy and other libs, too much pressure).

Maybe the next wave will have some sml/haskell/idris.

~~~
brudgers
MIT restructured its curriculum to be more hands on. The new curriculum
included a module programming robots. Python provided an interface and is a
good general purpose language. The fact that robots entered the reasoning
indicates how different the new curriculum is from _SICP_.

~~~
hga
"MIT restructured its curriculum" because after the dot.com bust, EECS
enrollment dropped by more than 1/2 after being a solid 40% of undergraduates
for more than 2 decades, and the department panicked. And, yeah, punting
teaching the fundamentals for some hand-on work (robots, communications) was
part of that.

There was also a commandment from on-high, don't know if this was above the
department or in it from long simmering resentment, to entirely purge Scheme
from the curriculum.

Given all that, Python was perhaps the least worst choice (although using Java
to teach the rest of what's in SICP is not even wrong), although I personally
wonder about the wisdom of purging functional programming from the curriculum
at the same time that multi-cores may be making it a lot more relevant.

~~~
agumonkey
Any data on the 'purge scheme' desire ? I find it really really strange. Was
it related to post-hire issues ? or student problems ?

~~~
hga
Nothing besides the obvious you get from the curriculum being 100% Python and
Java (yep, MIT is now a "Java school"), and there being no common CS and EE
curriculum besides those first two lab intense robots and communications
classes (previously there was a core of SICP, two EE classes and a low level
computer micro- and macro-architecture course, 6.001-4).

MIT EECS degrees, while still representing what MIT thinks its EECS graduates
should know, now mean something very different, and that has, e.g. resulted in
much greater differentiation between it and CMU, which has embraced functional
programming in its core curriculum.

~~~
agumonkey
Yeah, and there were videos about MIT focusing more on 'material' engineering,
giving ceramics playgrounds for students, rather than theory and software. In
a way MIT is right, computer had their days, now things are back to the real
world. Augmented reality, physical interactions, IoT, sensors etc etc. But at
the same time FP gives better ways to reason and write solid code anyhow.

~~~
hga
_In a way MIT is right, computer had their days, now things are back to the
real world._

MIT handled this very poorly; it's always been very conservative about bulking
up departments because things can radically change. Aero/Astro was red hot
from, oh, post-WWI to the early 1970s, when it catastrophically crashed
without to this date a recovery.

For decades EECS struggled with 40% of the undergraduates and ~1/6th of the
institute's resources, in fact when they adopted the old core of 6.001-4 in
the early '80s they dropped the "service" course that taught introductory
programming for lack of human resources. I don't know how much the faculty was
bulked up, the ultimate metric, but before the dot.com crash they committed _a
quarter billion dollars_ to a new CS research building that was ugly, very
dysfunctional, and expensive to operate (so insecure it requires a full time
police officer).

Anyway, I judge that "had their days" differently, at least in the longer
term. Most specifically, one of these days a programming error will kill
thousands or tens of thousands of people, and at least part of the field will
radically change as people get more serious about "quality" software.

(Scare quotes because e.g. Facebook and Boeing have very different, and
correct for both of them, definitions of software quality.)

~~~
agumonkey
By computers I meant desktops and their software or web apps. I was shallow
anyhow, and you're right it will end up as reorganization in the field.

------
millstone
> _Unfortunately a Russian spy stole the last meg of a LISP program for
> controlling our nuclear defense systems. Fortunately, it was all right-
> parenthesis._

~~~
simonh
Thats a nice variation of a joke about German. "I normally skip to the back of
a novel to find out what happens at the end, but in German that doesn't work
because the last few pages are just full of all the verbs".

------
willvarfar
Python:

    
    
        sum(range(1,11))
    

I think this more explanatory than the Lisp. Perhaps that's just me.

~~~
jokoon
Yes, this article shows several different ways to do one same thing, you can't
really expect programmers to remembers all this syntax.

from
[https://www.python.org/dev/peps/pep-0020/](https://www.python.org/dev/peps/pep-0020/)
:

> There should be one-- and preferably only one --obvious way to do it.

I don't know if common lisp is an "easier" lisp, but I sure would like to have
a watered down version of lisp so I can learn its paradigms. I don't even know
if that's what haskell is.

~~~
Someone
Common lisp = committee lisp; it's not "easier". It standardized lisp by
including about every feature that any of a set of competing Lisp's had. For
example, the 'format' function can write numbers in roman digits, spell out
numbers, and capitalize words ([http://www.gigamonkeys.com/book/a-few-format-
recipes.html](http://www.gigamonkeys.com/book/a-few-format-recipes.html))

Beginners probably are better of using scheme or racket.

~~~
hga
Common Lisp == Mainline Lisp. It's the direct descendant of original formula
McCarthy LISP, and has accumulated a lot of warts and random stuff. Plus it's
more generally multi-paradigm than Scheme, Racket or Clojure, and has no bias
towards simplicity and a limited one towards elegance.

------
Marazan
SmugLispWeenies is why we hate Lisp. People who, when writing Lisp tutorials,
spend a condescendingly large time telling the reader that they are going to
have their mind blown by the concept of first class functions. In the space
year 2015 people are still doing this.

Also they have apparently never heard of Forth either.

~~~
ICWiener
I can build strawmen too:

\- SmugCeeWeenie: I am so fast, look (oops, core dumped)

\- SmugGoWeenie: abstractions are so nasty we should get rid of functions, so
that everyhting is laid out clearly. Hopefully, I have copy/paste.

\- SmugAdaWeenie: Functions are not procedures and records cannot store
objects. Real engineers do not "prototype" code.

\- SmugHaskellWeenie: Yeah, it compiles! Job done.

> In the space year 2015 people are still doing this.

About first class functions? citation needed.

~~~
bbcbasic
\- SmugHaskellWeenie: cabal sandbox init, cabal install this, cabal install
that, write code, add ghc pragma, wtf! add ghc pragma, wtf! add ghc pragma ...
Yeah, it compiles! Job done. Almost, time to get rid of the warnings. add ghc
pragma, and another, and one from the top Carol and ... yeah, it compiles with
no warnings.

------
th0waway
The one thing that I take away from all of this is that the people complaining
just don't 'get it'. I don't know whether it's a personal failing of the
individuals involved or something about lisp that is orthogonal to most
people's thought processes, but the page reads more like (to me) sour grapes
than a reasoned discourse on why lisp sucks. Compare that to the article
posted yesterday about CLASP
([https://drmeister.wordpress.com/2014/09/18/announcing-
clasp/](https://drmeister.wordpress.com/2014/09/18/announcing-clasp/)) - a
brilliant piece of engineering that the creator said was just not doable in
other languages, and you have a huge cognitive dissonance. But then, ymmv.

~~~
th0waway
Ooops, an old link to CLASP. Here's a newer link:

[https://drmeister.wordpress.com/2015/06/15/i-gave-a-talk-
on-...](https://drmeister.wordpress.com/2015/06/15/i-gave-a-talk-on-clasp-and-
my-chemistry-at-google-in-cambridge-mass-last-week/)

------
spacehome
I'm slightly unclear why this website exists.

~~~
teraflop
In case you're not joking:
[https://en.wikipedia.org/wiki/WikiWikiWeb](https://en.wikipedia.org/wiki/WikiWikiWeb)

------
ExpiredLink
As expected, a page for Lisp fanboys.

~~~
PeterMrltyHitch
Do you ever comment more than a sentence or two? You are recognisable as the
archetypical "low-effort" contributor.

~~~
coldtea
Well, considering that yours is a throwaway account, he's at least
reconginsable!

