Hacker News new | ask | show | jobs
by tumba 2739 days ago
> I am firmly convinced that APL and LISP are related to each other along an important axis of language design and that acquiring simultaneous expertise in both languages is possible and desirable for the beginning student. Were they unified, the set of tasks that succumb to terse, flexible and expressive descriptions will enlarge enormously without overly increasing the intellectual burden on the student over his initial 16 week contact period.

In the context of setting the objectives for education in computer science for general students, I like the idea that the objectives are to (a) understand the limits and potential of computation and (b) achieve fluency in programming such that one can conceive of and describe computational processes for a wide range of tasks.

He explicitly suggests that fluency in using other people’s programs not be an objective. Perhaps this is a bit idealistic since most programming in the wild today consists of glueing together other people’s programs. But it seems like the right objective when possible—-in some ways it is a view of computer science as a liberal art.

3 comments

There's another link between Lisp and APL in the article:

"Some years back, we had a visit at Carnegie from a person at MIT whose name I've forgotten. He started to give us a lecture in a little office about some programming issues in LISP. He went up to the blackboard and he spoke LISP. Everything he wanted to describe, he described in terms of parentheses and CONS and CARS and CDRS. He found himself quite capable of expressing his ideas in the language in which he programmed. Not once during the half hour or so that he lectured to us did I see the inevitable block diagram, the flow charts that show up on the blackboard with things written in semi-English. He didn't need them. And at the time I said to myself, "LISP has a very precious character, if indeed there are some people who can express programming ideas to other people in the language in which they program.

"I can't do that with ALGOL; never have I been able to do it with ALGOL. Whenever I've programmed in ALGOL and I've wished to make some statements about the program I was writing, I was forced to go outside the language and use English, or mathematics, or some block diagrams or what-not.

"In APL, I find that to a far greater degree than any other language that I've used, I can make statements about the programs that I'm writing, in APL -- actually not exactly APL, but APL with some nice little extensions that I dream up at the moment but would never think of implementing. But by and large, I find that the language allows me to express myself, in the language, about the things I'm dealing with. I find that a very precious property of a programming language."

> but APL with some nice little extensions that I dream up at the moment but would never think of implementing.

Does this mean APL without extensions is quite limiting?

> Joel Moses has been credited with coining the phrase in the 1970s

> APL is like a beautiful diamond – flawless, beautifully symmetrical. But you can't add anything to it. If you try to glue on another diamond, you don't get a bigger diamond. Lisp is like a ball of mud. Add more and it's still a ball of mud – it still looks like Lisp.

> Moses strongly denies this, claiming he instead called Lisp a bean bag because it always returns to its original shape.

Cannot stop laughing even read them the second time. Great quote.
APL is a read syntax for point-free function chaining in which the operators have one-character names, and may be juxtaposed without intervening whitespace.

Relative to APL, the interesting matters in Lisp tend to lie on the other side of the AST hill.

What language do you believe can live on both sides of the hill? Haskel?