I think I would propose an alternative structuring. Computers, Language, Syntax, Semantics, ... - are all categories being placed over a deeply complicated social mess. Any attempt at forming dichotomies will be in some sense wrong, and in some sense right. This is typical of any environment that escapes the clutches of modernist reductionism.
For example, see Alan Blackwell's paper showing the socio-technical co-construction of names in APIs. They have politics, computational pragmatics, and even a bit of syntax here and there. When dealing with messy subjects like this, the question then becomes not, 'what is true?' (as the answer is both everything and nothing simultaneously), but rather 'what is useful?' So when is it helpful to think of these systems in the various different ways? I honestly don't know, I would like to though. My guess is that for a first language it doesn't matter, that these things matter when asking people to transfer knowledge between different languages. That's a guess though. Anyone fancy doing the experiment? This debate, and related ones, seem to cause a lot of heart-ache amongst computer scientists. I've just had to advise someone that their 'introduction to programming language x' should have the first section of it that attempted to position it in terms of all these things dropped in exchange for explaining when the language is useful. It was clearly painful for them, but clearly deeply welcomed by the prospective users. I'm going to go back to my postmodern wilderness of 'woolly thinking' now. Luke >On Wed, Feb 23, 2011 at 4:18 PM, alex <a...@slab.org> wrote: Hi Andrew, Thanks for the illuminating response, On 22 February 2011 03:39, Andrew Walenstein <walen...@ieee.org> wrote: > Even if you don't like these two arguments, surely most would admit that > *one* of the primary purposes of good programming languages is human-human > communication. In fact, this was an essential point of the title of Peter > Naur's collection "Computing: A Human Activity". In this narrow sense > programming languages and natural languages are not incomparable. I hadn't read Peter Naur's work before, and am now very much enjoying what I can find. I've just got my hands on a copy of the collection you cite, and it includes the following: "PROGRAMMING LANGUAGES ARE NOT LANGUAGES--WHY 'PROGRAMMING LANGUAGE' IS A MISLEADING DESIGNATION" http://www.naur.com/comp/c8-4.html This seems very relevant to this discussion! Although Naur thinks computing is a human activity, Naur doesn't appear to think that programming languages are languages. After a quick read his argument seems to be that grammar rules are not important to language, but that speech is the primary form of language, and that speech is ungrammatical. Language then is not a thing that can be specified, but rather something you do, by speaking. He asserts that dictionaries and the like are unimportant, and people demonstrably don't understand each other's utterances anyway, at least not very far. That is, that meaning is a personal matter. He doesn't directly answer the question "Are programming languages languages?", except in the title of the essay. But his point of view seems to be in accordance with the Wittgenstein programming languages are suburbs line, that programming languages are a "special, limited part of the linguistic possibilities, deliberately designed to cater for certain limited situations and purposes." Perhaps someone more familiar with Naur's work would disagree with my summary however. Best wishes, alex -- http://yaxu.org/ -- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England & Wales and a charity registered in Scotland (SC 038302).