Comment by CJefferson

8 years ago

I feel the better question, and I don't know the answer, is does this kind of thing stop people taking up lisp. Honestly I think it does, for so many languages, the first view, the first 15 minutes of reading, and the first 10 hours are super important, that is when you lose many possible users. It is certainly the points where I often drop languages.

While lisp is old, it's never picked up many users. This is the kind of little thing which makes me not want to teach it (not just this, but just lots of little ways it seems stuck in history).

I think that's more attributable to the fact that for most people, their first 10 hours with Lisp are spent writing recursive functions that explicitly cdr down lists, rather than the names car and cdr. I think it would make a much bigger difference if more people's first exposure to Lisp was something like:

    (with-open-file (input "foo.txt")
      (loop for line = (read-line input nil)
            while line
            do (write-line line)))

But instead most schools only use Lisp as a vehicle for teaching the basics of recursion and functional programming, rather than as an immediately useful tool, so most students go away with the idea that that's what Lisp is used for, and attribute their difficulty understanding The Little Schemer to difficulty understanding Lisp.

  • >But instead most schools only use Lisp as a vehicle for teaching the basics of recursion and functional programming, rather than as an immediately useful tool, so most students go away

    This was my experience too. In university, Lisp seemed like an awkward, limited language for doing some CS algorithms. So i totally overlooked it.

    Fast forward 12 years later, reading in depth about Common Lisp and using it as a general purpose programming language, it's totally awesome.

    • Wanting to optimize my path through school, I asked some senior people if that programming languages course based on Scheme was useful. I was informed that it's a toy language based on Lisp for teaching. I correctly assumed that this is something other than the real Lisp, a legendary language which can't be a toy. It being a university for grown up children and all, I didn't want to have anything to do with toys. The course was a prerequisite for a senior level compiler course, but I talked the prof into letting me skip the prerequisite and go straight to that compiler course.

      Man, I sure dodged a bullet there. Some decade later, I got into Lisp in a big way (the real one); the rest is history.

Nothing that was based on garbage collection picked up a lot of users before 1999 or so.

Basically when the world "rebooted" into garbage collected, managed languages, it was amid a sort of Lisp amnesia. A lot of that was due to new people who had no such memory to recall.

Prior to this general movement, there were severe barriers in place against anything memory-managed.

And anyway, even if everyone who had already been programming in 1980 switched to Lisp today, it would be a drop in the bucket.

I think the original Lisp people didn't persevere enough. They peaked early. By the time Java and whatnot came around, the presence wasn't there.