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.
E.W.Dijkstra: On the foolishness of "natural language programming"
51–60 of 71 posts
Re: E.W.Dijkstra: On the foolishness of "natural language programming"
#52Earlier 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…
I'd be suspicious of anything being treated as a panacea.
Re: E.W.Dijkstra: On the foolishness of "natural language programming"
#53Re: E.W.Dijkstra: On the foolishness of "natural language programming"
#54Earlier 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
Re: E.W.Dijkstra: On the foolishness of "natural language programming"
#55Earlier 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.
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"
#56Earlier 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.
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"
#57I 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…
Re: E.W.Dijkstra: On the foolishness of "natural language programming"
#58Earlier 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…
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"
#59And 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"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.