Friday, December 28, 2018

an old quote from Hal Abelson

"First, we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute."
~ Hal Abelson
Or, in the video, "a computer program is a way of expressing ideas and communicating ideas and only incidentally about getting a machine to do stuff" (at 35min 55sec)

In the new language some things can be expressed that couldn't be expressed so well, or at all, in previous languages. The technology, the code is secondary; the new way of expressing something is primary. I think that sort of motivation has the potential to push people to persevere through the technical, difficult to understand stuff. But in computer courses people often get so caught up in the code itself (because it is complex, hard) that the underlying driving force can disappear, in the way it is taught, boring technical stuff divorced from real life drama.
youtube link
See his answer to the question asked at 35 minutes, about Structure and Interpretation of Computer Programs, with additional insights up until 39 minutes, 20 sec. He calls this the linguistic approach by which I think he means reframing or reformulating the programming language to make it easier to understand. One huge breakthrough here since the early days of logo has been block languages. Another issues he mentions is that in solving a problem by programming we are really building a special purpose machine, within the machine.

Hal Abelson is one of the driving forces behind the amazingly good MIT App Inventor.

ps. very funny anecodote about Richard Stallman's password begins at 27 minutes.

No comments: