4 ms·
I have very mixed feelings about EWD. On the one hand, his work on concurrency and formal methods has had a profound impact on computer science, and we owe him
by vincent-manis 6y ago
I have very mixed feelings about EWD. On the one hand, his work on concurrency and formal methods has had a profound impact on computer science, and we owe him a huge debt.
On the other, I was present at an IFIP talk he gave in Toronto in 1976 where he announced that personal computing would go nowhere, because the average person cannot program.
- jdc 6y agoHe's not wrong in the man-computer symbiosis sense.
- izgzhen 6y agoThe fact that average people can write useful programs are largely due to the maturity of software engineering practices, which was just beginning to develop at EWD's time. Software engineering != developing algorithms. And unfortunately programming can mean both things.
- shagie 6y agohttps://news.ycombinator.com/item?id=11796926 https://news.ycombinator.com/item?id=11796926 > "I don't know how many of you have ever met Dijkstra, but you probably know that arrogance in computer science is measured in nano-Dijkstras." - Alan Kay With the followup post from Alan Kay himself.
- derekp7 6y agoEven today, computers are useful to average people only because there is software that is available that solves a wide range or problems, combined with the fact that there is really only a handful of problems that people want computers to solve for them most of the time. Catagories like communications, document and media creation/editing, data storage and calculation. But still, let's say there is a problem someone wants to solve, and it really doesn't take much programming to solve it? How do regular people that don't have access to a programmer use a computer to handle a novel problem? To give an example -- There is a table game that is popular at Cracker Barrel restaurants that consists of a triangle shape with 15 holes, and 14 golf tees. The object is to jump over pegs and remove them, and go till no more moves are available. The goal is to get down to 1 peg remaining. Now how would you use a computer to solve that without writing a program? (This was back in my college days, however I recall doing a brute force program that tried all combinations, and spit out the winning ones -- turns out there was something like 15,000 winning strategies). Edit -- a quick search shows that this has become a popular computer programming challenge, so there does exist choices that people can download, but there are other similar variations that someone may want to solve. Edit2 -- apparently the generalized version of this concept is called Peg Solitaire https://en.wikipedia.org/wiki/Peg_solitaire https://en.wikipedia.org/wiki/Peg_solitaire
- jstanley 6y agoFor the average person, the computer is still not the bicycle of the mind. The computer is more akin to public transport of the mind, in the sense that it works OK as long as you want to go to a common destination, but after that you just have to walk.
- SulfurHexaFluri 6y agoFuture predictions are rarely correct. You can hardly fault someone for making an incorrect prediction.
- rramadass 6y ago>because the average person cannot program. EWD was right in the sense of his definition of "Program" i.e. as a mathematical object. What he did not quite foresee is that it takes only a few intelligent folks to invent/design/implement the entire infrastructure so that the general "mass of programmers" can use those to certain profit without much mathematical background. This was how the "Industrial Age" played out, we use a lot of machines everyday without having an inkling of how they work. I think Dijkstra failed to realize that this was as true of "Software" as of material objects. In his defense, the "Software Industry" was still being invented at that time and hence nobody could predict how things would turn out in the future. But his fundamental thesis that a "Program" should be treated as a mathematical object and proved using rigorous logic is still true and by that definition a lot of us fail the test. This is quite independent of the fact that the society at large has accepted a watered down definition of a "Program" with all its shortcomings and failures.
- adwn 6y ago> But his fundamental thesis that a "Program" should be treated as a mathematical object and proved using rigorous logic is still true How is that even remotely true? How are you going to formally model a browser, or a word processor, or your mail client, or a 3D game, let alone prove it correct against that specification? If we actually followed that requirement, computers would be almost useless today, except for a few tiny niches where millions of dollars in development costs for even relatively small programs would be justified. Keep in mind that your development tools would be meager to non-existent as well, since they'd also have to satisfy that overly strict requirement.
- TheOtherHobbes 6y agoQuite. It's the silliest of silly ideas - not just practically, but conceptually, because real problems don't have hard algorithmic edges. Which is why they're so hard. Don't forget there's a difference between a formal (user) specification and a functional specification. A functional specification says that when you select "Edit -> Cut" the user can expect certain things to happen. A formal specification defines how the symbolic entities involved in implementing the operation should operate. This isn't too hard for "Edit -> Cut", but it's not tractable at all for "Translate this poetry into another language without mistakes or ambiguities." So in fact he's just as guilty of resorting to metaphor as anyone else in computing. Only in this case the metaphor is the algorithmic perfection and consistency of a mathematical proof. This is fine in the classroom and in certain applications where formal methods can help, but not so much in the average developer room. It also highlights that ultimately computers aren't about manipulating symbols, but about manipulating conceptual metaphors represented by symbol sets. But I expect he'd have dismissed that idea as too dangerously novel.
- amw-zero 6y agoHow is he wrong? The average person cannot program. The average person can use but not create software, that’s why computers are popular.
- mkl 6y agoHe was wrong in that personal computers took the world by storm, to the point that almost everyone in modern civilisation carries one in their pocket. He was wrong in thinking that programming was essential to personal computing; it is not.
- amw-zero 6y agoBut “computing” to him meant programming. So most people are not computing in the sense that he’s talking about.