Live data from Hacker News

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

cs.utexas.edu

61–70 of 71 posts

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

#61
post #2

A moment isn't such a long time anymore, not for compute clusters anyway. If we don't keep trying to make AI, we're never gonna get there. I'm not saying data mining is AI. I'm saying human brains do data mining too, but differently, and figuring out how is what might come of all this. Wolfram-Alpha-style natural language programming actually isn't that bad because it's a dialogue . The thing tells you its assumption…

> Formalisms can be impractically formal. The level of precision required by machines is beyond even what most mathematicians are used to casually (i.e., pen and paper, or at a blackboard). If you had to do math like you write code, mathematicians would go bonkers. Include this, type-cast that, ... nah, everyone knows what this and that is supposed to mean, right?

Mathematics only looks formal: compared to software it is really another natural language -- because its purpose is to communicate between humans, whereas software is ultimately not about communication but design of artifacts.

The point about practicality still holds though, but since the purposes are different it must be something of a different kind of practicality to aim at.

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

#62
post #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 communi…

I think we'll see human and machine languages get more alike in the future. We're already seeing a huge increase in the amount of nonfiction written and the level of literacy of the public. English spelling has become more standardized over the past couple centuries. We could say, humans must always communicate by grunting, because they are dumb animals. Or that speech recognition is impossible because machines lack a soul.

Dykstra is brilliant, but he's also a curmudgeon who never likes anything.

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

#63
post #56
post #54

Earlier quoted context omitted.

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.

Just because someone does not know a solution to a given problem does not mean they think it's impossible. The teacher gave the problem as examples of something that seems solvable but nobody has a correct solution to. Then someone with a lot of domain knowledge spent some time and solved it. IMO, that’s says more about the value of domain knowledge than tenacity. It's not like they spent 20 years comming up with a solution.

PS: There are a lot of long standing math problems which people have spent vary little time trying to solve.

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

#64
post #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 communi…

Which boils down to: There's a reason that architects and engineers use schematics, rather than just writing instructions in prose.

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

#65
post #63
post #56

Earlier quoted context omitted.

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.

Just because someone does not know a solution to a given problem does not mean they think it's impossible. The teacher gave the problem as examples of something that seems solvable but nobody has a correct solution to. Then someone with a lot of domain knowledge spent some time and solved it. IMO, that’s says more about the value of domain knowledge than tenacity. It's not like they spent 20 years comming up with a s…

He was ignorant of the fact that the problems were supposed to be impossible. That's in line with the parent comment's sentiment.

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

#66

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…

Do you have any idea how expensive a child is for that same 20 years? Way more expensive than the computer maintenance and energy bill, my friend (I offer my beleaguered bank account as evidence) - and you can't copy the software after maturation, either.

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

#67
post #63

Earlier quoted context omitted.

Just because someone does not know a solution to a given problem does not mean they think it's impossible. The teacher gave the problem as examples of something that seems solvable but nobody has a correct solution to. Then someone with a lot of domain knowledge spent some time and solved it. IMO, that’s says more about the value of domain knowledge than tenacity. It's not like they spent 20 years comming up with a s…

He was ignorant of the fact that the problems were supposed to be impossible. That's in line with the parent comment's sentiment.

Sorry, no. The probably was supposed to be solvable.

Once again, yet to be solved is not the same thing as assumed to be impossible. In the history of mankind nobody has solved a X^2 * (first thousand digits of PI) + (next thousand digits of PI) * X = 0. But, using modern techniques I don't think it would be that difficult. And if someone 50 years from now could find this post and decide to wast their time they might be the first person to solve a this 50 year old math problem etc.

PS: Examples of older and harder problems: http://en.wikipedia.org/wiki/Millennium_Prize_Problems note nobody is saying they are "impossible" just unsolved.

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

#68
post #63
post #56

Earlier quoted context omitted.

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.

Just because someone does not know a solution to a given problem does not mean they think it's impossible. The teacher gave the problem as examples of something that seems solvable but nobody has a correct solution to. Then someone with a lot of domain knowledge spent some time and solved it. IMO, that’s says more about the value of domain knowledge than tenacity. It's not like they spent 20 years comming up with a s…

I don't get your point. There's a difference between an unsolved problem and an unsolvable one? That's obvious. It's also irrelevant to the story.

The relevant distinction is between coursework exercises and open problems in the field. That's a pretty big difference. When students complete their homework, they don't typically get woken up by phone calls from excited professors telling them to write their work up for publication immediately.

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

#69

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.

I like Inform, but it boils down to a kind of Prolog augmented with procedure-like sections, and I'm not sure that I'd prefer it to something more terse. I started to write a non-trivial game in it, and it was actually a lot of fun, but I had to look up the syntax a lot because it wasn't always obvious how to do something that was otherwise conceptually simple. For example, you could write something like

    The Lobby is a room. The oak table is in the lobby. The cake is on the table. The cake is edible. Instead of taking the cake say, "Best wait until the party starts before digging in."
But even though it's "natural language," it still _feels like_ I'm writing

    is_room(the_lobby).
    contains(the_lobby, the_table).
    is_on(the_cake, the_table).
    on_taking(the_cake, { print "You can't get ye cake!"; }).
That said, Inform _does_ manage to make programming non-scary to non-programmers, which is a very good thing. It's probably the fact that I expect programming languages to be unlike natural languages that I felt it was awkward. (I personally ended up rewriting the game in Scheme. Never finished it. Maybe I should go back and work on it at some point.)

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

#70
post #68
post #63

Earlier quoted context omitted.

Just because someone does not know a solution to a given problem does not mean they think it's impossible. The teacher gave the problem as examples of something that seems solvable but nobody has a correct solution to. Then someone with a lot of domain knowledge spent some time and solved it. IMO, that’s says more about the value of domain knowledge than tenacity. It's not like they spent 20 years comming up with a s…

I don't get your point. There's a difference between an unsolved problem and an unsolvable one? That's obvious. It's also irrelevant to the story. The relevant distinction is between coursework exercises and open problems in the field. That's a pretty big difference. When students complete their homework, they don't typically get woken up by phone calls from excited professors telling them to write their work up for…

The person who posted the example: presidentender

I can think of one:

http://www.snopes.com/college/homework/unsolvable.asp?a

Replied to my post: He was ignorant of the fact that the problems were supposed to be impossible. So he at least assumed the problem where thought to be unsolveable.

As to the gap between homework and open questions in the field, it can be fairly small in mathematics when the course is on the cutting edge. The field of Statistics was a lot more open back then, and there are still plenty of subjects where the gap between cutting edge homework and original research is fairly small.

PS: I once had a teacher suggest I write something up as original research as an undergraduate. The circumstances where a little different but less than you might think. It was a lecture where he was describing an algorithm and I said “that’s seems slow why not do X” but the same basic concept.

Post reply on HN