6 ms·
Graduate of analytic philosophy here (concentrating in philosophy of language), and my take away is a sloppy: "It's not a bug, it's a feature." Sorry, but this
by scoofy 12y ago
Graduate of analytic philosophy here (concentrating in philosophy of language), and my take away is a sloppy: "It's not a bug, it's a feature."
Sorry, but this is a completely shocking article to me. First in it's immediate dismissal of any formalism inherent in natural language, but also with the ease at which he dismisses the proposition without any real consideration.
If we learned anything from Chomsky, it's that the underlying grammar we are born with is both instinctual, and follows formal rules. To say differently is literally, demonstrably false. Irregular verbs, for example, aren't learned in the traditional sense, one must actually unlearn the formal rules. Any child that tells you she "swimmed" all afternoon is using a more formal version of English than you do.
The idea of a natural language programming language is flawed, but not by formalism. It's flawed by the evolutionary nature of natural languages. That is, the very people that he states "are no longer able to use their native tongue effectively," are probably using a new dialect that shares a common ancestor with his more "traditional" usage.
Many people in this thread are talking about the inability of plebes to express what they actually want. This is a fair point, but not a problem with language specifically. Communication tools would need to be employed by a computer in the same way as humans use them. E.g., a simple ambiguity checker could work wonders here, as it does between humans when someone you are talking to simply says, "What did you mean when you said you 'realized you forgot your phone at the train station'? Did you forget at the train station, or realize at the train station?".
What IS a problem, however, is Quine's indeterminacy of translation. That could pose serious hurdles that may be insurmountable, however, we still have effective communication between humans, so it's simple to see how this may only be a theoretical problem, rather than a formal one.
This subject should be under the purview of analytic philosophy and linguistics, not mathematics or computer science.
- leephillips 12y ago"If we learned anything from Chomsky, it's that the underlying grammar we are born with is both instinctual, and follows formal rules. To say differently is literally, demonstrably false." The rejection of this idea is not only not "demonstrably false", it's actually pretty commonplace among linguists. It would be more accurate to say that Chomsky's theory of a universal grammar is demonstrably false. "the evolutionary nature of natural languages" One of Chomsky's more widely criticized ideas (and a pretty bizarre one), is that the language instinct could not have arisen by evolution through natural selection.
- scoofy 12y agoIf i talk about Chomsky's generative grammar, i do not mean his literal first works, in the same way that i wouldn't mean literally Darwin's evolution when citing Darwin. I mean the theory, generalized as "Skinner was wrong, Chomsky was right." This is not up for debate, it's easily provable. I could site dozens of linguists, Pinker immediately comes to mind offhand. By "the evolutionary nature of natural languages," i do not mean natural language as a product of natural selection. Instead, i mean the constant flux of natural language dialects. The loss of some words, phrases, etc. over time with the adoption of new ones. "Reprise" has been replaced with "remix," "how do you do" becomes "howdy" over time. This isn't exactly controversial.
- voronoff 12y agoHaving actually done research in this field, I feel confident in saying that you are wrong about the state of consensus. Here's a decent overview of the ongoing debate (assuming you are aware of what Skinner and Chomsky's theories involve): http://www.simplypsychology.org/language.html http://www.simplypsychology.org/language.html
- scoofy 12y agoVery interesting stuff. I will say, though, as i responded to just now. If language is instinctual, and has formal rules, or formalizable rules i think my major points above would still stand.
- leephillips 12y agoA philosopher saying that something's not up for debate? I must be dreaming. Skinner and Chomsky both came up with some ideas about language acquisition that were useful and stimulated subsequent research. They are both quite wrong, in the sense that neither theory withstands the scrutiny of research over the past 50 years in anthropology, psychology, and [computational] linguistics. Pinker is one of the more prominent critics of Chomsky, who also points out the value of some of his ideas. In stark contrast, Darwin's theory remains largely intact, with some modifications and additional insights. It's been magnificently confirmed by discoveries in genetics, of which Darwin could have known nothing. Darwin was right and created a successful theory that will live forever, even as it's added to and enhanced. We have nothing like that for a theory of language acquisition, neither from Chomsky, Skinner, nor anyone else, yet. On the whole Chomsky was not more right than Skinner in any ultimately significant way. Sorry for misapprehending what you were getting at with evolution of language. I think the idea that human language changes over time is not unfamiliar.
- barrkel 12y agoThe problem is a bridge between two disciplines. Saying that it should only be built from one side is no better than saying it should only be built from the other. Indeterminacy of translation is indeed part of the problem. But you're not saying anything new by bringing it up - it's just a jargon term from linguistics to describe a problem a programmer might illustrate with the (buffalo)+ sentence or "(time|fruit) flies like (an arrow|a banana)" example. They already know the core of the problem without needing the whole weight of a linguistics education. The obvious problem of indeterminacy of translation is why, when computer scientists talk about natural language programming, they do not normally mean natural language processing - even more so in Dijkstra's time, when computers were slower and our NLP algorithms worse. The core that Dijkstra is getting at here is symbolic reasoning. He's pointing out that natural language is a poor fit for symbolic reasoning, that there's been a history of movement from rhetorical reasoning to symbolic reasoning in mathematics - in fact that mathematics stagnated where rhetorical reasoning persisted. Even if we solved the translation indeterminacy problem, we would need Strong AI to convert such a high level description into something concrete enough for a computer to do. We propel computing machines using levers made out of abstractions - the higher the tower of abstraction, the longer the lever, and the greater the power. But the problem of programming is not in pushing the lever, it's in building the lever. In a word, it's engineering, not philosophy - it's about how, and not what.
- scoofy 12y agoFirstly, of course it's in the realm of all four disciplines. It would require a task so gargantuan as to be on par with J.L. Austin's dream of a formal dictionary, but doable. I just think the math and computer science students are often (as seen in this thread) not as well acquainted with natural language issues than their counterparts, but I'm still not really seeing your point. Firstly, the indeterminacy of translation is a much, much deeper problem than the buffalo sentence and the time/fruit flies sentences. The buffalo sentence is interesting in that it is grammatically perfect, and would be easy for anyone to understand following formal rules, but so bizarre that it's confusing at first. The time/arrow sentence is also not an issue for humans as it's simply the result of two homonyms that happen to be verbs for one definition. They are clever, but not deeply ambiguous, and i seriously doubt they would pose a serious problem. Second, natural language IS symbolic reasoning. I don't understand how you can justify a claim that it isn't. The term rhetorical reasoning presumes that symbolic reasoning is already happening.
- 305b283f 12y agoAgreed. It seems an appalling number of people agree with Dijkstra here - "we not only don't need natural language, we don't even want it." I'm sorry, but if I can express to a human being a set of directions to fill out a form in a minute or two and expressing that to a computer takes much longer and is more error-prone, that is an inefficiency in software development which it is extremely desirable to address. There is nothing magical about human brains that would make them theoretically impossible to express in software in such a way that we can give a program natural language directions, and the fact that so many people want to dismiss this endeavor out of hand is ridiculous to me. This should be our holy grail, something to strive toward, not something to ignore. In fact I would suggest that it will most likely be the only way out of the mess of such a wide variety of software standards (ever have fun moving your things to a new system and having to re-learn many things just because you changed PC or phone operating systems?), whereas natural language is a standard we already have and works fine. This way you essentially wouldn't need to learn a new set of incantations - just tell the damn thing what you want the damn thing to do, dammit.
- tiger10guy 12y agoThe ideas that I, as a programmer in the traditional sense, want to communicate to computers are not the ideas I want to communicate to humans. I might ask my friend to move the report he's working on to a shared network location so I can load it into my computer and read it: "Hey Joe, can you move the report to the share?" Joe might ask the computer to do the same thing: "cp /home/joe/reports/cool_report.pdf /network/share/reports/cool_report.pdf" The actual ideas that are communicated are very similar, but not the same. English is good for communicating one idea while bash/GNU is good for communicating the other. Just because English has some established formalism doesn't mean it's good at communicating the ideas we want to communicate to computers. BTW, I don't care which field you put the issue under; it's the same issue and anyone who cares about it might contribute to the discussion.
- autokad 12y agoyou very solidly supported the argument you are against. "Hey Joe, can you move the report to the share?" is a great way to communicate something you want done. it doesnt matter if its to a computer, a person, or a dog. If it can't operate on those bounds then its not sophisticated enough to actually meet the needs of the user. One day computers will get there, they haven't done so not because its a 'bad way to talk to a computer' but because computers have not yet become that sophisticated.
- exelius 12y agoAs someone who also has a degree in philosophy (specifically, philosophy of language as it relates to math) analytic philosophy, mathematics and computer science share a lot of common ground. Even the best natural language processing algorithms can only really come up with a probability of the intent of the sentence; this is often not enough for a programming language (which by necessity requires precision to be repeatable). Nouns themselves can take a number of different meanings (specifically proper nouns and names) depending on context. Communicative languages often don't distinguish between equality and identity; a critical distinction in computer science (i.e. I can truthfully say "I've eaten at same restaurant 3 days in a row" if I ate at 3 different McDonalds locations on consecutive days). These assumptions about identity and equality are not the same from language to language (or even generation to generation, as you discussed). Context is also an issue; we often discuss things in ambiguous contexts which often require clarifying questions from a human. We may have effective communication between humans, but misunderstandings are common. IMO, language is an effective communication tool almost specifically because it is imprecise: we fill in the gaps with our own experiences and it mostly works out. Overall, I don't think EWD was saying that natural language programming would be impossible; just that the effort required to program in it would likely be more than learning a symbolic programming language. The computer would need to ask so many clarifying questions to reach the level of specificity required for computer science that it would be a very arduous task. Rather than making computer programming more accessible, natural language programming would make it substantially more difficult.
- scoofy 12y agoHere, again, i disagree with the weight of your intended counter-factual. Your issues with equality and identity (formally: the frege-russell distinction) i simply disagree with. Your issue here is not equality and identity, but identity and subsumption. Equality and identity are essentially the same with being verbs. Your sentence is an error of clarity, you'd fool a human in the same way as you'd fool a computer. I believe the ambiguity you are going for is that of "123 Main St is McDonalds" (identity) vs "123 Main St is a McDonalds" (subsumption, also called class-inclusion). Here however, we have the "a" which clarifies that the statement means subsumption. Why? because it would fool humans otherwise, and so we created a rule for clarification. I certainly think a natural language programming language would need to ask clarity questions via a parser before running a program, but i honestly don't think this is a serious problem. It would really only be a problem with intentionally ambiguous words and phrases, such as the verb "to hook up" which is intentionally fuzzy enough to allow the speaker to mean one thing, while allowing the speaker to imply something else.