On the foolishness of “natural language programming” (1979)
Natural language is adapted for many tens of thousands of years to be used by groups of hunter&#x2F;gatherers working together on a common task -- which also includes arguing about related things like assumptions and priorities. In that context, physically pointing or showing things is important (&quot;put it <i>there</i>&quot;). As is also non-verbal feedback from expressions on people&#x27;s faces or by where their eyes are looking. Also, people in the group can ask clarifying questions, like &quot;What did you mean by X?&quot; or &quot;Can you be more specific?&quot;. Or the speaker can ask, &quot;Did you understand what I said?&quot; When people try to explain how to do a task without getting immediate feedback on how the receiver is understanding the communication, one can expect that natural language instructions will be missing critical information -- or may also specify unneeded extra information. Ever since I worked in the IBM Speech Research Group circa 2000, I have felt natural speech could be useful in programming -- but it will take a different perspective on how to use natural language as conversation and related creative experimentation to provide a different experience compared to what people are used to doing with conventional programming languages. It might be more akin to some aspects of pair programming perhaps.<p>That said, a big feature of HyperTalk (used by HyperCard) was that is is closer to natural language than most programming languages. HyperTalk supported various alternate phrasings and also the use of the word &quot;it&quot;. And the physical &quot;card&quot; metaphor provided an approachable metaphor for instructions about manipulating stacks. It is sad that Apple essentially killed off HyperCard for most users with various marketing decisions as it was an amazing platform that made programming approachable for many non-programmers.
<a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;HyperTalk" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;HyperTalk</a><p>And Inform7 as mentioned by someone else here is another example. Although Inform7 feels more about being read as natural language (when you write is within strict limits) than about being written flexibly as natural language.