Sherry Turkle's new book "Alone Together" raises an important point that is missing from this discussion. Programming languages can't saying anything *important* from a human perspective. I enjoyed the review of "Alone Together" at http://bnreview.barnesandnoble.com/t5/Public-and-Private/Alone-Together/ba-p/4221 The most important things that humans can say to one another are: "I'm sorry. Thank you. I forgive you. I love you." None of those can be stated in any programming language, because programming languages are about specifying action, not reflecting the shared human condition, and that's the most important activity for any human language. Alex's suggestion that we can layer a model and lexicon on top of a programming language is addressing the critical questions of AI: *CAN* we describe the human condition via the limited mechanisms of a computer? It's a great question, but raising it is not the same as saying that programming languages are in any way equivalent to human languages. Take any powerful, meaningful phrase in any human language, from "Veni, vidi, vici" to "I have a dream" -- none of them can be said with the same nuance, the same elegance, and the same meaning in any programming language.
Computer programming languages are not languages in any way that is important or meaningful. Mark -----Original Message----- From: Richard O'Keefe [mailto:o...@cs.otago.ac.nz] Sent: Thursday, February 17, 2011 7:28 PM To: alex Cc: Ppig-Discuss-List Subject: Re: Computers are systems not languages It does sound as though there's a category confusion there. There's clearly a range of things that have a strong family resemblance. We have Spoken human languages. Signed human languages. Written human languages. Invented human languages like Esperanto and lojban. Written notations like knitting patterns. Symbolic drawn notations like music. Topologically faithful drawn notations like wiring and plumbing diagrams, Algorithms can be expressed in most of these: you can recite Euclid's algorithm by voice, you can write it down in Greek, you can use Dijkstra's notation, or you can use a visual programming language. If your programming language is a stylised subset of English like Cobol or AppleScript or some data base query languages -- wasn't there one called Natural? -- does that make it "language"? And if you translate it to a flowchart, does that make it "not language"? Back before the Loglan/lojban split, Loglan was designed to be easy to parse by computer. Does that make it NOT a human language? But people do write it and speak it to do pretty much everything people do with English. Programming languages are extremely limited compared with natural languages. But then, using a Bliss board provides you with a very limited communication channel, even though Blissymbolics was originally invented to be a universal written language. Does that mean that someone conveying their needs by pointing to symbols on a Bliss board is using language, or not? On 18/02/2011, at 3:55 AM, alex wrote: > > Ian Bogost starts off by arguing that learning a programming language > shouldn't meet a curricular requirement for learning a natural > language. That's fair enough. It's fair enough not because of what a programming language *is* (or isn't) but what it can (or can't) *do*, and that is to exchange ordinary human thoughts with other people. > "the ability to translate natural languages doesn't really translate > (as it were) to computer languages" > > It clearly does. I would have said that it clearly doesn't. You *can* translate Yesterday Sue hoped that Bill's surviving the crash would not mean her exposure as the criminal who had repeatedly taken the school apples, but I fear that she will be disappointed at tomorrow's meeting. into other human languages, even Esperanto or Klingon (if Klingon has a word for 'apple' or 'fear' (:-)). But you can't translate it into Haskell or Ada. Note that it's not just references to the body and its environment, there's tense/mood/aspect as well. You *can* translate a sentence like that into a mathematically defined logical form which can be represented inside a computer and to some extent manipulated by a computer. But I do not see how the result can be usefully called a 'program'. I think it may be more useful to ask "in what ways are programming notations like, and in what ways unlike, natural languages". Are identifiers in programs more like nouns or pronouns, for example? -- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England & Wales and a charity registered in Scotland (SC 038302).