Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There is some enlightenment experience, when you get it. This it is when one figures out why Lisp is how it is: a language programmed in a data structure, programmable in itself. One can live without that enlightenment. One can also live without understanding recursion, but it was a small enlightenment for me when I understood recursion and how to use that in programming. There are a bunch of enlightenment experiences one can have. I had another one when I first read the Smalltalk books and later saw a Smalltalk system - I thought that was the end of programming, everything was done.

Alan Kay (the 'Alan Kay' of OOP and Smalltalk ) had an enlightenment experience with Lisp:

https://queue.acm.org/detail.cfm?id=1039523

"AK Yes, that was the big revelation to me when I was in graduate school—when I finally understood that the half page of code on the bottom of page 13 of the Lisp 1.5 manual was Lisp in itself. These were “Maxwell’s Equations of Software!” This is the whole world of programming in a few lines that I can put my hand over."

For background on this:

https://michaelnielsen.org/ddi/lisp-as-the-maxwells-equation...

> false since there are many successful and highly skilled programmers who don't know or care about lisp

Still they unknowingly may use a lot of things that were once pioneered in Lisp, like these: conditionals, functional programming, managed memory and garbage collection, evaluator/interpreters, read-eval-print-loops, image-based programming, ...



> when I finally understood that the half page of code on the bottom of page 13 of the Lisp 1.5 manual was Lisp in itself

Even histories of Lisp often don't emphasize this: Lisp was not, originally, invented as a programming language. It was a notation for describing the mathematics of computation. A variant of lambda calculus that could describe itself compactly.

The fact that eval could actually be implemented, was an accidental discovery. To quote McCarthy:

> Steve Russell said, look, why don't I program this eval ... and I said to him, ho, ho, you're confusing theory with practice, this eval is intended for reading, not for computing. But he went ahead and did it. That is, he compiled the eval in my paper into IBM 704 machine code, fixing bugs, and then advertised this as a Lisp interpreter, which it certainly was.

https://web.archive.org/web/20050405213907/http://www8.infor...


it was developed as a programming language from day one. It just had no such evaluator, until they came up with the idea and implemented it. There were Lisp programs already before that.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: