Live data from Hacker News

Lisp as the Maxwell Equations of Software (2012)

michaelnielsen.org

101–110 of 131 posts

Re: Lisp as the Maxwell Equations of Software (2012)

#101
That half a page of code isn't "Lisp in itself".

I do not see any low-level I/O routines, or a reader to scan expressions and convert them into objects.

I don't see the actual function call mechanism: where the subroutine linkage is set up and torn down, and what goes into what register.

I don't see a garbage collector.

A whole bunch of hand-written assembly language made the code on that page work.

Re: Lisp as the Maxwell Equations of Software (2012)

#102

Earlier quoted context omitted.

It's the opposite side of the computing spectrum. Many languages aimed at using machines, Lisp was an ideal to express computability. As other said, yeah the eval definition hides away GC, IO and the read function, which fits my interpretation (sic) of lisp as an abstraction abstraction. They weren't interested much in the machine details, this itself is already a fun fact. So it started an ideal until a student was…

I saw that bit about McCarthy too. I wonder if his point was that while you can do functional programming in lisp, you can do a lot of other non-functional-programming stuff too, and so in that sense he didn't see Lisp as an implementation of lambda calculus.

According to D. Gabriel, the imperative forms were added later to seduce scientists used to FORTRAN algorithms. But Steele's interview of McCarthy makes it clear that Lisp is more a natural accident turning into compressed carbon than the implementation of an apriori concept.

Re: Lisp as the Maxwell Equations of Software (2012)

#103

I admit that I don't completely understand Lisp's claim to fame. Yes, programs in the language are represented by a built-in data type, and you can write a self-interpreter quite easily. But the same is true for a simple assembly language, if you know the instruction encoding! You can represent a program as a code pointer, and it's easy to write an analog of "eval" by hand, using just a handful of arithmetic instruct…

This is very close to the idea explored by Forth. It has just a simple engine that compiles pieces of code on the fly. No need for garbage collection or any complicated macros.

Re: Lisp as the Maxwell Equations of Software (2012)

#104

Earlier quoted context omitted.

Lisp gets a great deal of undue credit as being some kind of timeless enlightened wisdom, which I see as ignorant of the history of the language's development. It took years to develop approaches to garbage collection (the earliest prototypes used bump allocators and crashed when they exhausted a heap), years to finalize the syntax of the language (you'll notice that the "maxwell's equations" are written using M-Expr…

No language that is developed is perfect on release. The timeless wisdom of Lisp, as you call it, rest largely on macros and lambdas. Those ideas are powerful in their ability to allow you to build abstractions and customize the language to your needs. Basically, Lisp allowed for DSLs before the concept of a DSL was even recognized.

You can't call it timeless if it took time to develop.

Re: Lisp as the Maxwell Equations of Software (2012)

#105

Earlier quoted context omitted.

No language that is developed is perfect on release. The timeless wisdom of Lisp, as you call it, rest largely on macros and lambdas. Those ideas are powerful in their ability to allow you to build abstractions and customize the language to your needs. Basically, Lisp allowed for DSLs before the concept of a DSL was even recognized.

You can't call it timeless if it took time to develop.

Yeah- you're right. Pythagoras' theorem obviously isn't timeless; the fool took time devising the formula!

Re: Lisp as the Maxwell Equations of Software (2012)

#106
post #94

for what it is worth, here is a version of a lisp interpreter I wrote in python: https://github.com/keithgabryelski/plisp I used _Interpreting_LISP_ by Gary D. Knott as a guide.

Lisp in Python in 137 LOC: http://www.flownet.com/ron/l.py

not really, but it is interesting.

Re: Lisp as the Maxwell Equations of Software (2012)

#107
post #26

Earlier quoted context omitted.

Lisp gets a great deal of undue credit as being some kind of timeless enlightened wisdom, which I see as ignorant of the history of the language's development. It took years to develop approaches to garbage collection (the earliest prototypes used bump allocators and crashed when they exhausted a heap), years to finalize the syntax of the language (you'll notice that the "maxwell's equations" are written using M-Expr…

> Modern Lisps are substantially different in syntax and semantics from these earliest ideas; we're just still calling them Lisp. An interesting take on "modern", meaning "the last 3 decades or so", which is like millenia in the IT industry...

I'm not sure what you're talking about here. The latest language in Lisp family is Clojure and it came out in 2007. The syntax that it uses is quite a bit different from Lisps from 30 years go.

Re: Lisp as the Maxwell Equations of Software (2012)

#108

Earlier quoted context omitted.

You can't call it timeless if it took time to develop.

Yeah- you're right. Pythagoras' theorem obviously isn't timeless; the fool took time devising the formula!

Pythagoras did not discover the theorem, it's just named after him. He may have been the first to record a proof of it. It's conceivable that the very first peoples to become seriously interested in geometrical calculation would have discovered it as a matter of course. It does meet the definition of timelessness whereas Lisp does not.

As Wikipedia notes: "Mesopotamian, Indian and Chinese mathematicians are all known to have discovered the theorem independently and, in some cases, provide proofs for special cases."

Re: Lisp as the Maxwell Equations of Software (2012)

#109

Earlier quoted context omitted.

Yeah- you're right. Pythagoras' theorem obviously isn't timeless; the fool took time devising the formula!

Pythagoras did not discover the theorem, it's just named after him. He may have been the first to record a proof of it. It's conceivable that the very first peoples to become seriously interested in geometrical calculation would have discovered it as a matter of course. It does meet the definition of timelessness whereas Lisp does not. As Wikipedia notes: "Mesopotamian, Indian and Chinese mathematicians are all known…

... which is irrelevant. The point posed was that the ephemeral form heralds the so-called 'revolutionary' concepts, and stating that a prolonged delivery of the concepts invalidates their usefulness is the result of an overly literal interpretation of a common phrase.

Re: Lisp as the Maxwell Equations of Software (2012)

#110

Earlier quoted context omitted.

It's the opposite side of the computing spectrum. Many languages aimed at using machines, Lisp was an ideal to express computability. As other said, yeah the eval definition hides away GC, IO and the read function, which fits my interpretation (sic) of lisp as an abstraction abstraction. They weren't interested much in the machine details, this itself is already a fun fact. So it started an ideal until a student was…

There's a spectrum of near vs. far from the machine, but there's no spectrum of computability, all Turing complete languages are equally Turing complete. There's no difference between Lisp and assembly in this regard. In fact if you take into account the big-O time complexity, then assembly is better than the version of Lisp described in the OP, because the latter suffers a logarithmic penalty due to immutability. Mo…

It's true that Turing complete languages are (almost by definition) equivalent for writing programs of type "Nat -> Nat". However, things are not so simple at other types and it turns out there is actually something of a spectrum of computability. Andrej Bauer has a nice post on such things here: http://math.andrej.com/2011/07/27/definability-and-extension...
Post reply on HN