←back to thread

Hofstadter on Lisp (1983)

(gist.github.com)
372 points Eric_WVGG | 10 comments | | HN request time: 0.957s | source | bottom
1. AnimalMuppet ◴[] No.41860160[source]
> Every computer language has arbitrary features, and most languages are in fact overloaded with them. A few, however, such as Lisp and Algol, are built around a kernel that seems as natural as a branch of mathematics.

Algol? The kernel of Algol seems as natural as a branch of mathematics? Can anyone who has used Algol give their opinion of this statement?

replies(6): >>41860537 #>>41861307 #>>41863968 #>>41863999 #>>41865080 #>>41865751 #
2. andyjohnson0 ◴[] No.41860537[source]
I did some Algol programming back in the late 80s - when it had mostly been obsoleted by Pascal, Modula, and even C for what we called "structured programming" back then.

I remember it as a likeable, economical, expressive language, without significant warts, and which had clearly been influential by being ahead of its time.

So my guess is that Hofstadter was just referring to its practical elegance - rather than the more theoretical elegance of Lisp.

replies(1): >>41863518 #
3. gavindean90 ◴[] No.41861307[source]
From what I’ve studied, Algol wasn’t designed for typical software development—its main purpose was to give computer scientists a way to describe algorithms with a level of rigor that mirrors mathematical notation.
4. nxobject ◴[] No.41863518[source]
Out of curiosity: which dialect on Algol, and on what platform?
replies(1): >>41867202 #
5. ◴[] No.41863968[source]
6. retrac ◴[] No.41863999[source]
C is basically Algol with curly braces and pointers. The sentiment expressed there is probably equally applicable to C, or maybe Pascal. Those are often held up today as a minimal example in contrast to Lisp. There is a sort of sparse, warty elegance to the family. Blocks, arrays, if/then, assignment, while loops. What more could you need?
replies(1): >>41865392 #
7. earthicus ◴[] No.41865080[source]
It was discovered that the procedure mechanism of Algol 60 was effectively equivalent to the lambda calulus. This insight was written out in a famous paper by Peter Landin, "Correspondence between ALGOL 60 and Church's Lambda-notation: part I"

https://dl.acm.org/doi/10.1145/363744.363749

8. AnimalMuppet ◴[] No.41865392[source]
I've used both C and Pascal. The simplicity of C comes through to me (less so Pascal - the verbosity gets in the way). I never thought of it as "as natural as a branch of mathematics", though.

I mean... I guess you could think of it as having its own set of self-consistent axioms, and from them you can build things. It's a lot larger set of axioms than most branches of mathematics, though.

I guess, if Hofstadter meant the same level of naturalness, well, yes, C did feel pretty natural to me, so... maybe?

9. aidenn0 ◴[] No.41865751[source]
Hard to say without knowing which version of Algol he is referring to. Algol 68 was very different from Algol 58.

Algol 60 was the first language with lexical scope, while Algol 68 was a kitchen-sink language that (positively) influenced Python and (negatively) influenced Pascal.

10. andyjohnson0 ◴[] No.41867202{3}[source]
I'm not sure, but possibly Algol 68. It was on an IBM mainframe running VM/CMS - possibly a 3090.

Long time ago...