Live data from Hacker News

Lisp as the Maxwell Equations of Software (2012)

michaelnielsen.org

1–10 of 131 posts

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

#3

Shouldn't [2012] be appended to the title? I've seen the article discussed on HN before. [1] [1] https://news.ycombinator.com/item?id=3830867

Meta: does the date really matter, when we're discussing concepts and theory which change infrequently, if at all?

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

#4
post #3

Shouldn't [2012] be appended to the title? I've seen the article discussed on HN before. [1] [1] https://news.ycombinator.com/item?id=3830867

Meta: does the date really matter, when we're discussing concepts and theory which change infrequently, if at all?

Things change.

LISP was popular in the 1980s before caches, branch prediction, and complex memory hierarchies.

The car/cdr list is just about the worst way to represent lists in terms of performance on modern CPUS.

Conceptually it is really clean, but about the only application it makes sense for is first order theorem proving, or in languages that support pattern matching. If you actually want to use lists as lists something like the Java ArrayList makes more sense.

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

#5
post #3

Earlier quoted context omitted.

Meta: does the date really matter, when we're discussing concepts and theory which change infrequently, if at all?

Things change. LISP was popular in the 1980s before caches, branch prediction, and complex memory hierarchies. The car/cdr list is just about the worst way to represent lists in terms of performance on modern CPUS. Conceptually it is really clean, but about the only application it makes sense for is first order theorem proving, or in languages that support pattern matching. If you actually want to use lists as lists…

>LISP was popular in the 1980s before caches, branch prediction, and complex memory hierarchies.

Yeah, let's just forget about decades of Lisp development since.

>something like the Java ArrayList makes more sense.

Except you lose the most important detail of Lisp pairs: persistence.

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

#6

Shouldn't [2012] be appended to the title? I've seen the article discussed on HN before. [1] [1] https://news.ycombinator.com/item?id=3830867

I thought HN wont allow to re-post the exact same url, so to bypass people add noise to the url.

is date of post also considered?

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

#7
post #3

Earlier quoted context omitted.

Meta: does the date really matter, when we're discussing concepts and theory which change infrequently, if at all?

Things change. LISP was popular in the 1980s before caches, branch prediction, and complex memory hierarchies. The car/cdr list is just about the worst way to represent lists in terms of performance on modern CPUS. Conceptually it is really clean, but about the only application it makes sense for is first order theorem proving, or in languages that support pattern matching. If you actually want to use lists as lists…

> LISP was popular in the 1980s before caches, branch prediction, and complex memory hierarchies.

You mean like in the 80s with very little RAM, larger virtual memory to very slow disks, paging files of networks, booted images from network servers over 10Mbit links, ...

A time when commercial Lisp did a lot to be memory efficient (like cdr coding of Lisps, compacting GCs, incremental GCs, ephemeral GCs, generational GCs, ...).

> The car/cdr list is just about the worst way to represent lists in terms of performance on modern CPUS.

Actually modern CPUs are really fast with these list operations. For a lot of operations linked lists are fully sufficient.

You might also want to note that Lisp has data structures like vectors, multi-dimensional arrays, records, instances of Classes, hash tables and all kinds of fancy stuff, including access to 'foreign' memory which is accessible with pointers and manual memory management.

Currently optimized Lisp code is as fast as F#, OCaml, Java, Haskell or similar...

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

#8
post #3

Earlier quoted context omitted.

Meta: does the date really matter, when we're discussing concepts and theory which change infrequently, if at all?

Things change. LISP was popular in the 1980s before caches, branch prediction, and complex memory hierarchies. The car/cdr list is just about the worst way to represent lists in terms of performance on modern CPUS. Conceptually it is really clean, but about the only application it makes sense for is first order theorem proving, or in languages that support pattern matching. If you actually want to use lists as lists…

That's... basically not even wrong.

Lisp implementations that run well on, and take advantage of, architectures with caches, branch prediction and complex memory hierarchies are well-known, and have been well-known for, literally, decades. http://pt.withy.org/publications/VLM.html is an example from 1994. More importantly though, even the earlier Lisp machines (at least since 1983!) implemented a form of instruction caching, and had hardware-aided garbage collection.

> The car/cdr list is just about the worst way to represent lists in terms of performance on modern CPUS. Conceptually it is really clean, but about the only application it makes sense for is first order theorem proving, or in languages that support pattern matching. If you actually want to use lists as lists something like the Java ArrayList makes more sense.

The car/cdr list is not the only data structure in Common Lisp.

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

#9
post #6

Shouldn't [2012] be appended to the title? I've seen the article discussed on HN before. [1] [1] https://news.ycombinator.com/item?id=3830867

I thought HN wont allow to re-post the exact same url, so to bypass people add noise to the url. is date of post also considered?

Yes, after some time has passed, HN will allow the same link to be resubmitted.

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

#10
post #3

Earlier quoted context omitted.

Meta: does the date really matter, when we're discussing concepts and theory which change infrequently, if at all?

Things change. LISP was popular in the 1980s before caches, branch prediction, and complex memory hierarchies. The car/cdr list is just about the worst way to represent lists in terms of performance on modern CPUS. Conceptually it is really clean, but about the only application it makes sense for is first order theorem proving, or in languages that support pattern matching. If you actually want to use lists as lists…

Although it is called List Processing, it does support other types of data structures, including arrays.

https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node158.html#...

Don't blame the language for lack of programmer knowledge.

Post reply on HN