Live data from Hacker News

E.W.Dijkstra: On the foolishness of "natural language programming"

cs.utexas.edu

51–60 of 71 posts

Re: E.W.Dijkstra: On the foolishness of "natural language programming"

#51
post #36
post #34

Earlier quoted context omitted.

The existence of a black swan doesn't imply that swans are usually black. A. "There are examples where newcomers to a field found a novel solution that senior experts have missed." B. "It is often the ignorant who succeeds." B does not follow from A. Not even in mathematics where people use to say that you have to prove yourself worthwhile by the age of 25 or it won't happen. > You have to spend a career following th…

A lesson on logic from somebody who equates "It's often the foolhardy and the ignorant that tackle problems that are supposedly impossible. And sometimes end up succeeding" to "It is often the ignorant who succeeds" seems ironic to put it mildly.

:-)

Re: E.W.Dijkstra: On the foolishness of "natural language programming"

#52
post #40

Earlier quoted context omitted.

While I think you're right, my guess is that he had strong static typing in mind when he wrote the article. Ultimately they lie on a scale. With a dynamic, strongly typed language, you still leave plenty of opportunity to make undetected mistakes. The obvious example is changing the expected type of a method argument, while only updating a subset of the call sites.

I'm not sure what he had in mind at that time, but Dijkstra was never all that enthusiastic about type theory. He thought it was a promising and worthwhile avenue, but was suspicious of it being treated as a panacea. http://www.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/EW... "Another thing we can learn from the past is the failure of characterizations like "Computing Science is really nothing but X", where for X…

> [Dijkstra] was suspicious of [type theory] being treated as a panacea

I'd be suspicious of anything being treated as a panacea.

Re: E.W.Dijkstra: On the foolishness of "natural language programming"

#53
http://inform7.com/ is a successful counterexample, to some degree: it gets used, and it's much closer to the vision than older attempts like Applescript and COBOL. On the other hand, it's bad at the kind of programs Dijkstra liked to think and write about. I'd say Dijkstra expressed a basically sound but overly narrow viewpoint.

Re: E.W.Dijkstra: On the foolishness of "natural language programming"

#54
post #9

Earlier quoted context omitted.

> It's often the foolhardy and the ignorant that [...] sometimes end up succeeding. Please name some examples. How often is sometimes? What is their probability of success compared to that of domain experts?

I can think of one: http://www.snopes.com/college/homework/unsolvable.asp?a

From the page: "George Bernard Dantzig, a doctoral candidate at the University of California, Berkeley. ... George Dantzig (himself the son of a mathematician) received a Bachelor's degree from University of Maryland in 1936 and a Master's from the University of Michigan in 1937." Not exactly my definition of somebody ignorant.

Re: E.W.Dijkstra: On the foolishness of "natural language programming"

#55

Earlier quoted context omitted.

I'm not sure what he had in mind at that time, but Dijkstra was never all that enthusiastic about type theory. He thought it was a promising and worthwhile avenue, but was suspicious of it being treated as a panacea. http://www.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/EW... "Another thing we can learn from the past is the failure of characterizations like "Computing Science is really nothing but X", where for X…

> [Dijkstra] was suspicious of [type theory] being treated as a panacea I'd be suspicious of anything being treated as a panacea.

=) Sorry, I was being sloppy there - couldn't come up with an accurate and un-platitudinous way to characterize Dijkstra's attitude. There are other places in his writings where he's suspicious of an overemphasis on types, I think his criticisms of Ada mention it for example.

Dijkstra was a big proponent of rigorous mathematical means of establishing program correctness in general, of course, but he didn't necessary equate that with types.

Re: E.W.Dijkstra: On the foolishness of "natural language programming"

#56
post #54

Earlier quoted context omitted.

I can think of one: http://www.snopes.com/college/homework/unsolvable.asp?a

From the page: "George Bernard Dantzig, a doctoral candidate at the University of California, Berkeley. ... George Dantzig (himself the son of a mathematician) received a Bachelor's degree from University of Maryland in 1936 and a Master's from the University of Michigan in 1937." Not exactly my definition of somebody ignorant.

Certainly not, but he was ignorant of the most important fact, that these were unsolved problems.

This is one of the greatest stories ever. If it weren't true it would have to have been invented... but it is true.

Re: E.W.Dijkstra: On the foolishness of "natural language programming"

#57

I think alot of people have the paradigm wrong. I think people conceive Natural Language Programming as a simply change in syntax, which in it self would complicate stuff. But if you take the stance that we as humans are Natural Language Programmers, the concept becomes easier to understand. You can think of your boss at your software development firm as your programmer. He wants some job done and you program some ap…

The problem here is that there is 20+ years of acquired "state" that allows this to happen. Also, think of the hiring process, weeding out potential programmers with "bad" "state"; i.e. they are crap programmers. If you want a machine with the same capacity as a human you had better have something that can learn at the same rate as a human, and then add 20 years of "life experiences" and education. Then.. _maybe_ you…

It would be good enough to make one issue, even if it took 40 years. As long as you could copy it afterwards.

Re: E.W.Dijkstra: On the foolishness of "natural language programming"

#58
post #29
post #18

Earlier quoted context omitted.

How exactly is that any different from "the plaza"? What's even "the current context"?

Again, the "plaza" part of the sentence is not relevant to the actual point I was making. I did not claim that specific change gave a huge boost in clarity. > How exactly is that any different from "the plaza"? It is different in that the ambiguity is explicit. > What's even "the current context"? http://en.wikipedia.org/wiki/Context : "Context is the surroundings, circumstances, environment, background, or settings…

We understand these things, but they are technically ambiguous, saying "the-only-plaza" doesn't remove any ambiguitiy. "The current context" is also implied, stating it explicitly doesn't add anything, what so ever.

Actually, referring explicitly to the current context would probably just cause confusion, it implies that we both agree on the exact meaning/content of the "current context", which is often not exactly the case.

Re: E.W.Dijkstra: On the foolishness of "natural language programming"

#59
What makes 'natural language' 'natural' is not really the appearance, it is what it is used for. A natural language is one used for communicating between humans. It only works the way it does because of what is on the other end of it -- another person.

And that is why software must be different. Software must always be an 'un-natural language' because its (ultimate, essential) purpose is different: it is not communication but design. It works the way it does because it is for constructing an artifact.

If you want to build complex things, that is equivalent to saying you will have complex requirements. The complexity cannot be squeezed out, substantially, by changing language -- as Brooks said in 'No Silver Bullet', there is a hard core of essential complexity.

That purpose of design seems to mean an essential dichotomy of simplicity vs. control. If you want more simplicity you have to give up some control, and if you want more control you have to give up some simplicity.

One opportunity is that it seems likely true that we over-specify much of our software: we are using more control -- hence complexity -- than really needed. But the solution is not in changing language -- that would be the result. It is in figuring out what to do behind that -- AI figuring out what you want without you saying so. Maybe one day, in particular limited areas . . .

Re: E.W.Dijkstra: On the foolishness of "natural language programming"

#60
post #42

"When a distinguished but elderly scientist states that something is possible, he is almost certainly right. When he states that something is impossible, he is very probably wrong." — Arthur C. Clarke's First Law

Dijkstra said this in 1978, so he was only 48 at the time.

One could argue that he was an elder with respect to his field at that time.
Post reply on HN