Slashdot Mirror


Edsger Wybe Dijkstra: 1930-2002

Order writes "Edsger Wybe Dijkstra, one of the founding fathers of computer science and the author of the famous "Go To Considered Harmful", has died on Aug. 6, 2002 after a long struggle with cancer."

131 of 404 comments (clear)

  1. "We're not worthy!"... by Sebastopol · · Score: 3, Interesting


    After reading this article, I think we all need to pause for a minute, and consider the insight of this simple observation.

    Add his definition of things human minds are geared to list: static relationships. It's perfectly in line with Dawkins statement that human minds are designed to comprehend things roughly human-sized moving at roughly human-speeds.

    I keep forgetting how long people have been programming. Think about how many people using GOTO there were back in 1968. Probably only a few thousand. Crazy.

    --
    https://www.accountkiller.com/removal-requested
    1. Re:"We're not worthy!"... by Sebastopol · · Score: 2

      1. Water plants.
      2. Start GOTO flame war.


      #1. Done
      #2. Done and Done!

      --
      https://www.accountkiller.com/removal-requested
  2. Final GOTO by Anonymous Coward · · Score: 2, Funny

    GOTO Heaven

    1. Re:Final GOTO by Turing+Machine · · Score: 5, Funny

      I'll bet he gets there by the shortest path.

    2. Re:Final GOTO by RPoet · · Score: 2, Funny

      Gosub without return.

      RIP.

      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
    3. Re:Final GOTO by spacefrog · · Score: 2

      while (!nirvana())
      {
      die();
      reincarnate();
      }

    4. Re:Final GOTO by RumGunner · · Score: 2

      GOTO Heaven

      The problem with that is, as Dr. Dijkstra wrote:

      "The unbridled use of the go to statement has an immediate consequence that it becomes terribly hard to find a meaningful set of coordinates in which to describe the process progress."

      Looks like we won't be mixing humorous programming references and theology after all...

      .

  3. Rememberances of Dr. Dijkstra by husker_man · · Score: 2, Informative

    I remember when Tulsa U. brought in Dr. Dijkstra back in the spring of 1984. He spoke at length about software design principles, and how design was the lynchpin of good systems. He was there only for a day, and had insisted on taking time out to talk to anyone interested in hearing him. I'm very glad that TU invited the Computer Science students from ORU over to hear him.

    The Computer Science profession has lost another giant.

    1. Re:Rememberances of Dr. Dijkstra by husker_man · · Score: 2, Funny

      As an aside, I remember this little snippet from the seminar:

      Tulsa University had shuffled around some classrooms to free up a large conference room/lecture hall. Well, for those students who were supposed to attend a class in there that day, the administration had put a notice on the board "Class ???? - Goto 426 " (or something like that). Dr. Dijkstra had come in from the back of the room, was introduced, and started speaking - he never looked at the chalkboard the whole time. Well, when it came time for questions, one student (not me) asked him about the notice on the back of the room. Well, Dr. Dijkstra turned about, cleaned off the board, and said something about structuring the overall conversation, and that comment violated good system design.

  4. EWD Archives by charvolant · · Score: 5, Informative
    For more of his writings, the Edsger W. Dijkstra Archives contains a lot of interesting/insightful/amusing writings.

    A pity he's gone.

  5. Respects by BigWorm · · Score: 4, Interesting

    Any service that uses pathfinding algorithms (such as MapQuest) should pay their respest.

    1. Re:Respects by Anonvmous+Coward · · Score: 4, Funny

      "Any service that uses pathfinding algorithms (such as MapQuest) should pay their respest."

      What a thoughtful post! Dictionary.com's pathfinding algorithms were able to find out what you mean by 'respest'. Heh.

    2. Re:Respects by T3kno · · Score: 2

      Switch to Maya

      --
      (B) + (D) + (B) + (D) = (K) + (&)
    3. Re:Respects by Anonymous Coward · · Score: 2, Funny

      Except Mapquest uses a slightly modified version of the algorithm...Find Path With Most Closed Exits First.

  6. More articles by devphil · · Score: 5, Informative


    Some links from my article that slashdot rejected some hours ago: the University of Texas announcement has a list of his awards and discoveries. (He taught at UT.) A brief paper (in PDF, it's scanned from a handwritten paper for CACM if I recall) shows his brilliant, clear, and concise methods of thought and writing.

    If you ever used an application that made use of shortest-path searching -- say, any real-time strategy game -- then you owe this man a debt of gratitude.

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
    1. Re:More articles by Anonymous Coward · · Score: 2, Funny

      If he's responsible for the pathing in RTSes, his journey from life to the afterworld will inevitibly get stuck on the edge of a tree...

  7. Another great quote by cperciva · · Score: 5, Insightful

    Dijkstra was very good at producing quotable remarks; in addition to his comment about computers, thought, submarines, and swimming (RTFA), he made the following remark about computer science:
    "Computer science is as much about computers as astronomy is about telescopes."

    1. Re:Another great quote by the+eric+conspiracy · · Score: 2

      The word "science" generally has as it's primary meaning something like "a systematic study of natural phenomena".

      Under this definition Computer Science as normally experienced is not "science". It is rather a branch of mathematics.

      If you mean "computer science" as the study of natural phenomena that are then harnessed to construct computing machinery, then, yes you can have it as a science.

    2. Re:Another great quote by radish · · Score: 2


      Well I got my degree in CS from one of the top academic CS institutions in europe (the world?) Imperial College and it's a MEng (i.e. an engineering degree). On the other hand, I remember reading a quote from someone famous (I forget who) saying CS was more like a cross between Maths (logic), Art (creativity & expression) and Biology (evoloution, interactions of complex systems). So I have no idea what it is :)

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

  8. Some quotes of Edsger Dijkstra by Raindeer · · Score: 5, Informative

    I found the quotes here: http://www.cse.iitb.ac.in:8000/~rkj/dijkstraquotes .html I paste them here in full to counter the slashdot effect.

    Some Quotes of Edsger Dijkstra
    "Always design your programs as a member of a whole family of programs, including those that are likely to succeed it"

    "Separate Concerns"

    "A Programming Language is a tool that has profound influence on our thinking habits"

    "The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague" (from 1972 Turing Award Lecture)

    "Progress is possible only if we train ourselves to think about programs without thinking of them as pieces of executable code"

    "Program testing can best show the presence of errors but never their absence"

    "I mean, if 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself, "Dijkstra would not have liked this", well that would be enough immortality for me"

    And then my quote :-) -->

    1. Re:Some quotes of Edsger Dijkstra by certron · · Score: 3, Funny

      "I mean, if 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself, "Dijkstra would not have liked this", well that would be enough immortality for me"

      A very apt last quote for your post. It reminds me a little bit of one of Richard Feynman's friends talking about how he had seen Feynman in a dream, talking very animatedly about something or other, and he thought 'Should I tell him he's dead, or does he already know?'

      OK, so it seemed more relevant in my own mind, but he certainly has left a legacy for others to follow.

      --

      fair.org counterpunch.com truthout.com indymedia.org salon.com
      eff.org guerrilla.net debian.org gentoo.org
    2. Re:Some quotes of Edsger Dijkstra by swordboy · · Score: 5, Funny

      "I mean, if 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself, "Dijkstra would not have liked this", well that would be enough immortality for me"

      Was he still talking about programming here?

      --

      Life is the leading cause of death in America.
    3. Re:Some quotes of Edsger Dijkstra by 2b|!2b · · Score: 4, Informative

      I've always liked "Object-oriented programming is an exceptionally bad idea which could only have originated in California."

      --
      It's nice to be liked, but it's better by far to get paid
    4. Re:Some quotes of Edsger Dijkstra by pokeyburro · · Score: 2

      Mod parent up, I guess, but damn, I did NOT need that thought in my head...

      --
      Lately democracy seems to be based on the skybox, the Happy Meal box, the X-box, and the idiot box.
    5. Re:Some quotes of Edsger Dijkstra by Zeinfeld · · Score: 2
      Simula - not many have used it but it was first.

      EWD certainly knew that, however Simula is a very different object oriented language to the pale imitations that came later.

      Simula had a true message passing architecture, C++ does not.

      Java and C# have cleaned up the syntax of OOP and have made something of an improvement in this regard but they are both fairly cumbersome when it comes to writing concurrent programs, both lack any meaningful support for parallel constructs.

      Basically EWD was complaining about the same thing that I once complained about to Nygaard, Object oriented has ceased to have meaning as a term since it is applied to anything, Nygaard agreed.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    6. Re:Some quotes of Edsger Dijkstra by geekoid · · Score: 2

      "The competent programmr is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague"

      Man, he must of hated PERL programmers... ;)

      its funny, guffaw.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    7. Re:Some quotes of Edsger Dijkstra by Tablizer · · Score: 2

      I've always liked "Object-oriented programming is an exceptionally bad idea which could only have originated in California."

      Do you have any quotes about why he said that? I collect OOP criticism for:

      http://geocities.com/tablizer/oopbad.htm

  9. My 2 cents by pjdepasq · · Score: 2, Interesting

    I first learned that Dijkstra was ill back in February at a conference. Apparently he was sick with cancer and returned home to the Netherlands to live out his remaining days. Since that time, I periodically checked with my source, but they heard nothing new of his condition. I'm shocked to learn he lasted this long, considering what I heard back then.

    I was fortunate to be introduced to Dr. Dijkstra at SIGCSE 2000 in Austin by my advisor. Its unfortunate that our field is so young that its pioneers are just now starting to pass on (compared to other sciences such as Physics, Chemistry, etc.).

  10. So does that mean... by DrStrangeLoop · · Score: 3, Funny

    ...he is not going to need his forks anymore and the other guys are finally getting to eat?

    seriously though, i think dijkstra will be remembered as long as there is the need to prevent race conditions... which in my eyes is quite an accomplishment.

    -strangeloop

  11. Sad night on Slashdot. by peterdaly · · Score: 2

    Two articles posted in a row to depress me.

    -Pete

  12. He did so much more... by Kook9 · · Score: 5, Informative

    It's a shame that /. seems to think "Go To Considered Harmful" is Dijkstra's signature achievement. He was profoundly influential in developing the theory of operating systems. He was one of the first proponents of layered design. He also did pioneering work in mutual exclusion (IIRC, he invented semaphores) and deadlock. In short, he is responsible for a lot of the fundamental concepts that we use to build complex systems today.

    1. Re:He did so much more... by Lictor · · Score: 5, Insightful

      Indeed. He was a most amazing man in that he was clearly a brilliant theoretician, but he had a keen interest in solving theoretical problems that were of *practical* value (who would've thought there were so many neat mathematical problems in OS design?).

      The reason that the bulk of the comments here revolve around the whole GOTO thing is because, quite frankly, that is the only one of Diijkstra's contributions that the bulk of Slashdotters are capable of understanding and appreciating.

      Most of these posts are quite equivalent to, upon hearing of the passing of Ghandi, saying "Gee, I heard that guy could go a few days without food".

      But, to paraphrase the great man himself: in Computer Science most folks miss the science for the telescope. Some things never change.

      Rest in peace Professor Diijkstra.

    2. Re:He did so much more... by Tony-A · · Score: 2

      Yep. The idea (not Diijkstra's) is that by getting rid of GOTOs programs are magically more manageable. The thing is that a mess of GOTOs can easily lead to an incredibly complex program that does not warrant that degree of complexity, hence the diatribe. The natural way to implement a Finite State Automaton is with GOTOs (and long cryptic labels;).
      It's been a long time since I've even thought about them, but Diijkstra's guarded commands are insidiously powerful. I'm a bit surprised that essentially nothing has been done with them. He once commented that using them, he was using recursion much less. I'm guessing, but I think the power comes from specifying the partial order inherent in the problem rather than inventing a linear order that the program must follow. With a smart-alecky interpreter it might be possible to make a somewhat effective substitute for a nondeterministic finite state automaton.

  13. Re:Contents of article by Anonvmous+Coward · · Score: 2

    Well, I was finally able to get the page discussing the evils of 'Goto' to come up. I think I understand his gripes about it, although I'm still puzzled as to why it needed to be 'abolished'.

    I can certainly understand pleading with people to make more sensible code, but I didn't strike me as being that urgent. I don't think I have a full picture of what's going on here. Could somebody enlighten me? I'm really curious.

  14. Sad to see him go by teetam · · Score: 5, Insightful
    He was one of the greatest computer scientists and programming language theorists ever. I sincerely mourn his passing.

    In today's computer world, dominated more by marketing folks more than the technicians, I wonder how many people have heard of this man. It is sad that in the last decade of so, CEOs like Bill Gates and Jeff Bezos have gained so much public recognition while people Dijkstra languish in relative anonymity.

    A few weeks ago, there was a post in /. about Knuth. I was surprised to see many ask who he was!

    --
    All your favorite sites in one place!
  15. Commentary on our profession by nbvb · · Score: 5, Insightful

    For those of us who have chosen the fields of computer science & engineering as our professions, this is a time to reflect and realize just how lucky we are.

    We're getting in on the ground floor. The folks who were there in the VERY BEGINNING of our field are still around to teach us something. We need to remember just how privileged we are to have these fantastic people with us to "pass the torch" so to speak.

    Look at how far the medical field has come in its history. Or chemistry. Or physics. And these are just scientific professions.

    Think about other things, like teaching or agriculture.

    We're the next group to advance CS/E. We've got to adopt these folks as our mentors and learn all we can from them.

    Not just _how_ their stuff works, but _why_ they did it. Fundamental practices 30 years ago are as fundamental today as they were then.

    "Those who fail to learn from their past tend to repeat it."

    RIP, Mr. Dijkstra. And thanks for being such a great mentor.

    --NBVB

  16. I like Spaghetti Code by extrasolar · · Score: 3, Funny

    I like spaghetti code. I grew up on AppleSoft Basic and GW-Basic (thank you microsoft).

    I read books I picked up from the library for free which showed Basic programs threaded back and forth in sequence, for no apparent reason, and like this sentence, confusing the heck out of me. I saw it as a challenge. I also loved condition gotos'. They were evil.

    Gosub? Bah. They ran out of memory too much. Because I hadn't the discipline to Return before I Goto'd out of the subroutine. So I used Goto's to simulate procedures. I also eventually used Goto's in a way that I would eventually learn is like structured programming. Set some variables, goto here, do stuff, goto back, set the same variables something else, goto here, do stuff, maybe goto back. Or it would be the end of the program.

    Then I got my first C book. I still haven't got the hang of this language. Before the book even mentions "goto" it gives me a lecture on how awful goto's are and that they can produce spaghetti code. But I *like* spaghetti code. And whats with these labels? Line numbers were so much cooler. But I took the man's advice, I used functions.

    But Basic spoiled me. I was never an effective programmer since. It wasn't long after I learned of structured programming that I got my first book on C++ and was introduced to object-oriented programming. Now, for someone using structured techniques for a couple years, the need for objects seemed to make sense. But I was lost in a sea of hierarchial classes and virtual methods.

    When I first went on the internet, I started learning all kinds of crazy languages, hoping some of them would be simpler. And there were many. Except for forth and common lisp. Except for ML and Smalltalk. So I am still toying with scheme as I speak, still trying to figure out what exactly the difference between a recursive and iterative process is.

    Eventually, I'll figure out how to write spaghetti code in this otherwise clean and elegant language too. Continuations sound promising, from what it sounds like.

    I wish the best of Dijkstra--hope he rests in peace. Honestly, I've never heard of him until this post to slashdot.

    But maybe it is slightly better for him not to know that some of us never learn.

    1. Re:I like Spaghetti Code by funkhauser · · Score: 2

      Goto's are bad because they are a challenge. If you need to engineer mission-critical systems, the person paying you to do so does not want you to try to make things obfuscated and "neat". He wants sound design and a clear implementation. And when someone else comes along to maintain your code, he doesn't want to weave through your spaghetti code either. I doubt you're as smart as Dijkstra. Perhaps you should become familiar with his work if you want to become a better programmer.

    2. Re:I like Spaghetti Code by sharkey · · Score: 5, Funny

      I like spaghetti code.

      Come on, Taco. Post under your own name.

      --

      --
      "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
    3. Re:I like Spaghetti Code by extrasolar · · Score: 2

      Actually, I think it is. I tried Visual Basic for a little while.

      But then a slashdotter told me Microsoft was evil.

    4. Re:I like Spaghetti Code by funkhauser · · Score: 2

      Clearly gotos are fundamental to machine language coding. But when was the last time you coded a database application or web server in assembly language? Remember, Dijkstra himself said something to the effect of: "Computer science has as much to do with computers as astronomy does with telescopes." Yeah, really efficient embedded stuff is important, but it really has little to do with software engineering.

  17. depends on whether math is a science by Trepidity · · Score: 2

    Most CS (and by this I mean the academic field "computer science", not the engineering field "programming") is really just a subset of applied mathematics.

    1. Re:depends on whether math is a science by dillon_rinker · · Score: 2

      Most theoretical physics (and I mean the pencil-pushing "theory", not the engineering field "experimentation") is really just a subset of applied mathematics.

    2. Re:depends on whether math is a science by kallisti · · Score: 2
      I see science as a top-down approach and mathematics as a bottom-up approach.


      Except sometimes math does top-down as well. Those axioms and definitions are generally selected in order to guarantee that certain results apply. Mathematicians create entire new branches of math in order to explore areas better than existing tools.


      As a "scientific" math take set theory. The question was to find a system in which all math could be grounded in so we would know it was consistent and complete. Even though Godel smashed that dream, it is generally conceded that Zermelo-Frankl + Choice can derive all known math. This system was found by a version of the scientific method, Frankl started with basic properties and tried to build a system (hypothesis) which was published (peer review). Russell, among others, found flaws (experiment), specifically with sets that contain themselves. The theory was modified into its current form (refinement), which hasn't shown any flaws I am aware of (acceptance), even though the Axiom of Choice is extremely bizzare.

    3. Re:depends on whether math is a science by Tony-A · · Score: 2

      You can argue that pure math is applied logic. And of course logic is a sub-subsection of math. Axioms as "self-evident" doesn't work. Finding the right axioms is empirical. You need the right axioms so you don't come up with wrong results. Some forms of the Axiom of Choice seem intuitively obvious, but no one has yet come up with* a well ordering of the reals. (order so that every subset has a least element).
      *I haven't kept track, but I'm sure I would have heard of that if it happened.

    4. Re:depends on whether math is a science by pthisis · · Score: 2

      Most theoretical physics (and I mean the pencil-pushing "theory", not the engineering field "experimentation") is really just a subset of applied mathematics.

      Not sure exactly how relevant it is, but....

      It was Feynman who once said that the study of mathematics per se is almost completely irrelevant to the study of physics. He didn't mean, of course, that you can do physics without mathematics; he meant rather that almost no independent mathematical advances wind up being useful later to physics. Instead, the physicists invent the math they need as they need it. Part of the point being that the funding of mathematics "because what we prove/discover will later be used in exciting new science" is misleading at best, and that physics has always depended on people like the Bernoullis, Newton, and Gauss who invent the math to go along with their physics investigations.

      Of course, I was a math major, not a physics guy. ;-)

      Sumner

      --
      rage, rage against the dying of the light
  18. Quotes by dargaud · · Score: 5, Funny
    For memory:
    "The question of whether a computer can think is no more interesting than the question of whether a submarine can swim." - Edsgar W. Dijkstra.
    "The use of COBOL cripples the mind; its teaching should therefore be regarded as a criminal offense." - E.W. Dijkstra.
    "In the good old days physicists repeated each other's experiments, just to be sure. Today they stick to FORTRAN, so that they can share each other's programs, bugs included." - E.W. Dijkstra.
    --
    Non-Linux Penguins ?
  19. Re:Let's See... by funkhauser · · Score: 2

    I assume "dike-stra", I could be wrong though. The "Wybe" part... now you've got me there.

  20. re:guards by epine · · Score: 3, Interesting

    Two chapters from one of Dijkstra's books improved my program correctness by an order of magnitude, and this was after I had fully digested Bertrand Meyer on programming by contract. His notion of guards is the number one item on my top ten list of everything I know about writing correct code.

  21. drop this /. thread and read Dijkstra's work by dankelley · · Score: 5, Interesting
    To enjoy the next hour (or week, or month, ...) set aside this /. thread and enter into a Dijsktra thread.

    Just looking at his U texaspublication list is an awesome (pre-1990s meaning) experience. Let your eyes scan it, as they would the Grand Canyon. Then wander around the UTexas site, where many publications are online, and start reading. You'll be a better person for it. And you may experience a thrill of understanding, when you see that his hands hold up so much of today's code, as Shakespeare's hands hold up so much of the language and common experience of the English world.

    To get a feel for the span of his life's work, consider his thesis title, "Communications with an automatic computer." The word "automatic" was necessary then, to distinguish it from a person with a calculator. The machine he used in his thesis? It had a 32K memory unit. He divided this into what he called "living" and "dead" memory.

    Let's hope that his memory will be of the living variety.

    To a man I never shall meet, thank you.

  22. Dijkstra by AmberWaves · · Score: 2, Insightful

    His writings on semaphores gave me the key thoughts on scheduling real time OS's some 30 plus years ago and I went on to create and use those RTOS's in a variety of micro and mini computers over the years on a lot of consulting jobs. Most of the time, I neglected to tell management just how I did things, and the results were some amazing systems way back then. He nudged me to realize that "Simplicity is Elegance" when it comes to software design, which is really a matter of efficient resource management. If you can understand your own designs, they might even work. He will be missed.

  23. Is it really *objectively* better? by Tablizer · · Score: 2


    I am frankly not convinced that he found that nested blocks are *objectively* better than goto's. His description is not really rock-solid reasoning in that paper that I can ascertain.

    Nested blocks are "better" because they are more consistent from programmer-to-programmer I have tentatively concluded.

    More about my GOTO ramblings at:

    http://geocities.com/tablizer/goals.htm#goto

    There is yet to be a "killer proof". I heard that when that paper came out there was a lot of contraversy. Goto fans rightly claimed that it was just an opinion. Regardless, most programmers now prefer nested blocks for the most part, whether they know why or not.

    I can't find any GOTO fans to interview, so their preference reasoning is unfortunately lost to history it seems.

    1. Re:Is it really *objectively* better? by Tablizer · · Score: 2

      (* Why do you think anyone cares about your ramblings? *)

      In this whole crazy world, perhaps somebody does.

      It is an interesting philosophical issue IMO that serves as a microcosm (practice) for more complex problems, such as paradigm and programming language debates.

      If you in particular don't care, so be it. Just don't come whining to me when you find you lack the skills to *articulate* why your favorite language is better than Joe's.

    2. Re:Is it really *objectively* better? by Tablizer · · Score: 2

      IIRC, Dijkstra's argument was about the amount and complexity of state needed to mentally model the behavior of the program.

      Yes, but *his* mental model is likely different than another's. Skilled goto'ers perhaps had a great mental model for reading their own code.

      Any metric based on how one's head(s) work is probably doomed. You can only justify such for your own head and those that think just like you at the very most. I had a long argument once with somebody who thinks in words and language, while I tend to think in images. Yet, we are both forced to use similar languages by the industry.

      I want to see more rigor in justification. "Consistency" is a perhaps a good starting ground IMO.

    3. Re:Is it really *objectively* better? by Tablizer · · Score: 2

      (* Again: if you think the way Dijkstra does....gotos are evil. If you think in other ways, gotos are probably not so evil. *)

      For one, this may be a false dichotomy. People who don't think like him may still not like goto's. We don't have enough info about the phychology here to say the who and why of the preferences.

      My point is that he gave no objective details. If it is simply his opinion, then the article should be shorter. Something like, "I don't like goto's. They are too hard for me to keep track of. I prefer nested blocks. Bye bye."

      As it is, it has a *misleading* aire of mathematical rigor. He did identify a trend that most seem to prefer, but he did a lousy job of objectively justifying it.

      Thus, I give him credit as a trend finder or setter in that paper, but as an acedemic work, it frankly sucks and it should not go on the record as an example of "great reasoning" because it is not.

  24. Re:Contents of article by Pinball+Wizard · · Score: 2
    Avoiding 'goto' was one of the first things I ever learned in my first programming class. It is to be avoided because it leads to 'spaghetti code' - or code in which the execution of the program jumps all over the place, rather than an orderly, line-by-line execution of code. Spaghetti code is rather unreadable and unmaintainable.

    I've never seen anything that could be accomplished with a goto that couldn't be accomplished by simply calling functions.

    Then again, now that I think of it, if gotos are bad, recursion could be considered bad for the same reason - because it can be difficult to tell sometimes where code is being executed. Try following the code in a recursive descent parser and you'll see what I mean.

    --

    No, Thursday's out. How about never - is never good for you?

  25. Re:Ad placement by spongman · · Score: 2

    actually, yes. in c#, the following is illegal:

    switch (value)
    {
    case 0:
    DoSomething();
    /* FOLLOW THROUGH */
    case 1:
    DoSomethingElse();
    break;
    }

    you need to do:

    switch (value)
    {
    case 0:
    DoSomething();
    goto case 1; /* FOLLOW THROUGH */
    case 1:
    DoSomethingElse();
    break;
    }

    the reasoning being that it's better (more readable) to have explicitly defined follow throughs.

  26. God Bless Dijkstra by RickHunter · · Score: 5, Insightful

    This man contributed many great ideas to our field. The sad thing is how many programmers are still in ignorance of them, even now. You did great things, Mr. Dijkstra, and will be sorely missed. I just hope we're still allowed to have generic computing devices in ten years' time, so we can continue to refine and develop the revolutionary ideas you left us with.

    1. Re:God Bless Dijkstra by CoolVibe · · Score: 2
      The sad thing is how many programmers are still in ignorance of them, even now

      The good thing is that many programmers are using his techniques without even knowing about Dijkstra.

      Dijkstra was partial to popularity. The "Dijkstra wouldn't like it" quote comes to mind. As a matter a fact, I think he would find it amusing to think his techniques were thought of as common sense. He liked simple things.

      Rest in piece Edsger Dijkstra, you will be missed.

  27. Dijkstra's shunting yard... by donnz · · Score: 2, Funny

    Remember that? Only algorithm on my CS course I ever put into practical use. aka "No bracket required", (for Phil Collins fans).

    --
    -- Free software on every PC on every desk
  28. Young Science Indeed! by Louis+Savain · · Score: 2, Troll

    Its unfortunate that our field is so young that its pioneers are just now starting to pass on (compared to other sciences such as Physics, Chemistry, etc.).

    Yes. Computer science is indeed in its infancy. Dijkstra cleaned up algorithms by eliminating spaghetti code and introducing structured programming. In my opinion, we are still mired deep in the dark ages of computing. If only someone would clean up software engineering by eliminating the algorithm as the basis of software construction.

    Do a search on Google for 'synchronous reactive systems' and find out about the next big advance in software engineering.

    Project COSA

    1. Re:Young Science Indeed! by Stonehead · · Score: 2

      Sorry, but I consider you as a spammer. Diving into your posted messages, I see several COSA promotions, and never a good reply or any example of COSA's alleged superiority. Nice to see that you have some ideals, but claiming that this is the silver bullet is arrogant nonsense. Such an attitude won't bring you far. At least Dijkstra was a humble wise man, and a great algorithms scientist. I don't think you respected the man, by posting this message - if Dijkstra had been still alive, he'd probably told you to chill out until you've got something which is not vaporware.
      No thanks.

  29. I'm surprised he was alive in my lifetime... by Guppy06 · · Score: 2

    I heard reference to his algorithm (only way I heard about him) and just pegged him as another Renaissance man with too much free time on his hands (like Fourier).

  30. You want to honor Dijkstra? by Salamander · · Score: 2

    Learn what he taught. Avoid GOTO. Learn about structured programming and CSP. Strive for elegance and simplicity in your programs. I can think of no better testament to his work than to show that we really were listening.

    --
    Slashdot - News for Herds. Stuff that Splatters.
  31. Re:Damn you Order by Carlos+Laviola · · Score: 2

    find . -type f -exec grep goto {} \;

    So you're running this without any indication that the files you're grepping are really source code (are you running it on a clean /usr/src?) or a mix of source code, binaries and grocery lists which just happen to have the string 'goto' somewhere, and then seeing how many times that happens with wc? Dijkstra would be ashamed of you.

  32. Re:Final Exception() by Pig+Hogger · · Score: 2, Insightful

    I understand that this could be construed as funny, but it strikes me as rather distasteful.

  33. Re:Damn you Order by Carlos+Laviola · · Score: 2, Funny
    While we're at it, I've ran a variation of the command on /usr/src/linux and found a number of goto's (and excuses for them in comments...) but this one is pretty pertinent:

    (drivers/scsi/NCR5380.c, lines 1466-1468)
    if (hostdata->selecting) {
    goto part2; /* RvC: sorry prof. Dijkstra, but it keeps the
    rest of the code nearly the same */
    }
  34. zerg by Lord+Omlette · · Score: 2

    We are informed when great men die. We are never informed when great men are born. Here's hoping whoever he comes back as can live up to his potential.

    --
    [o]_O
  35. Dijstra's papers from the mid 1970's. by sbaker · · Score: 5, Interesting

    When I was just fresh out of college back in 1978, a collegue of mine who had been on Dijstras circulation list gave me a large stack of photocopied papers from Dijstra...all written in his own handwriting because he liked to invent his own symbols and found typewriters too limiting. I was working for Philips Research at the time - and I suppose Dijstra was working at Philip's "Math Center" in Eindhoven, Holland.

    I've kept a whole boxful of his papers over the years - just because they are so fascinating to browse.

    He invented his own programming language for expressing algorithms - but doesn't seem ever to have written a compiler for it. He refers to algorithms his mother came up with...almost every document has something interesting like that.

    The notes are written in the most perfect handwriting you've ever seen.

    They could have been printed - they are that precise. Then, one of them out of the blue seems to have been written in someone else's handwriting - it's just as amazingly neat though and when you get to the end of it, it says something like: Apologies for the poor handwriting in this note, but my left hand could use some practice. :-)

    These cannot be stored as text files without losing most of their historical interest. Maybe I should spend an evening or two to scan them and put them online. There could be no more fitting tribute to the man.

    --
    www.sjbaker.org
    1. Re:Dijstra's papers from the mid 1970's. by sbaker · · Score: 2

      It turns out that there is no need.

      All of the EWD papers I have are already available online at the UT Austin site.

      --
      www.sjbaker.org
  36. Re:Ad placement by SirSlud · · Score: 2

    somebody in the internet advertising business like me? or are you a publisher?

    --
    "Old man yells at systemd"
  37. Re:Contents of article by sconeu · · Score: 2
    I've never seen anything that could be accomplished with a goto that couldn't be accomplished by simply calling functions.

    The classic example is breaking out of deeply nested looping constructs. Note: This does not apply to languages that have exceptions.
    for (/* outer loop */)
    {
    /* ... */
    for (/* inner loop */)
    {
    /* ... */
    if (disaster()) goto terminal;
    /* ... */
    }
    /* ... */
    }
    terminal:
    /* loop exited, either normally or by abort */
    --
    General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
  38. EWD - Algol, the stack model and recursion by tarvid · · Score: 3, Funny

    Although Edsger is remembered for the article on the
    goto, his development of the stack model was an
    evolutionary leap in the development of computers.

    Every computer made today embodies his model.
    Interrupt handling, recursion, reentrant
    programming, multi-programming, multi-processing,
    virtual memory all come out of Edsger's model.

    I had the great fortune to work on a Burroughs B5500
    and later the first B6500 that made it out of
    manufacturing. This entire series of computers
    was based on Edsger's model and his Algol 60 compiler.

    Tony Hoare may have put it best when he quipped
    "Algol is an improvement over all its successors".

    Certainly Edsger was an improvement over most of
    his successors.

    Jim Tarvid

    1. Re:EWD - Algol, the stack model and recursion by Tony-A · · Score: 2

      "Algol is an improvement over all its successors".
      Probably applies to the old Burroughs mainframes too.

  39. Re:he taught an honors undergrad course at UT by dant · · Score: 3, Interesting

    I took it in 1992. He was an amazing professor--as eccentric as you'd imagine him to be. I remember him once asking us if any of us knew of a good place to get his worn Birkenstocks repaired.

    He was the person who first made me realize--at a visceral level--that clear thought is as important in a program as clear prose is in writing a novel.

    After the final exam (conducted verbally, one-on-one, at his home), he asked me what one thing I would most take away from his class. He seemed to consider my answer to this question more important than my performance on the test itself. I told him what the above about literature and programming. He nodded, thought for a bit, and said 'Very good. Can I offer you some tea before you go?'.

    I got an A, so I guess he liked my answer.

  40. Re:Learning from the Past by nbvb · · Score: 3, Insightful

    Honestly, I think the biggest crisis in software development is the "function follows form" problem. People are choosing implementation parameters before the problem is even designed!

    It's the "I don't know what it is we're going to do exactly, but I know it'll be done in Java" problem.

    The second-biggest crisis in software development today is the bloat problem, IMO. The fact that hardware speeds & memory capacities are following Moore's Law is no reason for us to bloat the code so badly.

    Re-writing things that used to function just fine in a new paradigm just for the sake of rewriting it is asinine!

    The concept of "Webifying" everything is just silly. Whoever thinks that stateful tasks should be done with a stateless protocol (HTTP) is insane!

    Anyway, enough ranting. :) These are just my personal feelings about software development today ........

    And you are completely correct. We need to learn not only the lessons of our mentors, but their mistakes too. Mistakes like C shouldn't ever be repeated...

    Oh, did I just say that?

    Sorry, I'm letting my personal feelings out again ;)

    --NBVB

  41. Re:Contents of article by sbaker · · Score: 3, Interesting

    It's bad to think of Dijstra only in terms of *one* memorable thing he did...but since we're doing that anyway...

    When I learned to program in the early '70s, our lecturer told us that if we used even *one* 'goto' in our work, we'd score zero for the entire assignment.

    I've been programming for ~30 years now and never felt the slightest need to use one in a high level language since that day.

    I strongly disagree about recursion though. Used properly, it's *very* readable:

    void binaryTree::walk_binary_tree ( void )
    {
    if ( isALeafNode () ) ...processLeafNode...
    else
    {
    leftBranch -> walk_binary_tree () ;
    rightBranch -> walk_binary_tree () ;
    }
    }

    Try writing that more cleanly without recursion!

    (NOTE: You may be able to make it faster or more memory efficient without recursion though).

    The art of reading and writing recursive programs is to try to forget that they are recursive.

    I think to myself:

    "In order to walk this tree, I walk the two child branches
    - hmmm - I have a function to walk trees - I'll just use it
    and assume it'll do what it's told."

    The fact that the routine you are calling is also the routine you are currently writing just doesn't matter in most cases.

    --
    www.sjbaker.org
  42. They're scanned and webbed already by phr2 · · Score: 4, Informative
  43. Re:Contents of article by mikec · · Score: 2

    Put the inner loop in a function and return if disaster.

  44. Re:Contents of article by glitch! · · Score: 2

    Hmmm... somebody give me a short description of why 'goto' needed to be 'abolished'?

    870 if j go to 800,900,400

    Any other questions? :-)

    --
    A dingo ate my sig...
  45. Re:Damn you Order by Leimy · · Score: 2

    You should really learn how to use find if you don't know what {} does. Silly xargs user!

  46. Re:Contents of article by the+eric+conspiracy · · Score: 2

    Put the inner loop in a function and return if disaster.

    And watch your code run like molasses.

  47. A great loss... by DCowern · · Score: 4, Insightful

    Moderators: This is one of those posts where I say screw karma. Mod me to redundant hell if you wish, it just doesn't matter.

    This is an extremely sad day for computer science. There is hardly a field in CS that Dijkstra's work didn't touch. His work can be seen everywhere we use computers.

    Personally, this is an extremely sad day for me as well. Although I never met the man or saw him speak (now one of my greatest regrets), being in college, he's my equivalent of a Joe DiMaggio or a Ted Williams. This man was a hero and an inspiration to me.

    Sometimes it really pisses me off that we show such public sorrow for sports figures who pass away like Ted Williams who for the most part didn't do a damn thing to really and truly improve our lives (granted Ted Williams was a marine and fighter pilot but that's not why most people were mourning him). This man greatly and directly contributed to a vast improvement of our quality of life as human beings. His obituary will be a foot note and page Z-42 of the NY Times and Washington Post but when celebrities die, they're front and center on page 1. It makes me sick.

    That's my 2 cents and I'm not giving any damn change. >:o

    1. Re:A great loss... by Khalid · · Score: 2

      To paraphrase someone who posted this earlier; in his time Newton was probably less known than the king who ruled England at that time. I am sure Dijkstra, Knuth and the likes will be remembred forever as great pioners of computer science. I am not the celebreties you are talking about will be remembered some years from now.

    2. Re:A great loss... by Feldmrschl · · Score: 2, Informative

      Although I understand your sentiment, not only did Ted Williams defend his country in two wars, or one war and one "police action", he also did a lot of work for the Jimmy Fund, a charity that supports the Dana Farber Cancer Institute (back then it was called the Children's Cancer Research Foundation). I wouldn't characterize that as someone "who for the most part didn't do a damn thing to really and truly improve our lives."

      Facts about Ted Williams and the Jimmy Fund

  48. Re:Final Exception() by sbaker · · Score: 3, Informative

    If you know him for nothing else, Dijkstra's Semaphores (aka P and V operators) are a fundamental construct in pretty much any parallel processing environment. Many CPU's have Dijkstra's semephores implemented at the hardware level. It's hard to think of anyone else who has such a fundamental construct named after them. OK, maybe 'Booleans' and the long defunct "Hollerith String".

    --
    www.sjbaker.org
  49. Abandon hope... by pongo000 · · Score: 2
    Mr. Dijkstra has some bad news for you:
    It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
    1. Re:Abandon hope... by Qbertino · · Score: 2

      It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

      In a way I know what he means - but he's wrong. I did a lot of Basic, Assembler and Opcode before I got into OOP. Those are 2 completely different ways of thinking, I'll give him (and everbody else) that.
      The Problem isn't the students though. Until now (15 years of computing) I haven't met a single softwaredeveloper with significant OOP skills that could actually explain to normal people how OOP works. CS theorist are big at insulting hands-on programmers. But as soon as it comes down to getting the message across and the team going they're often utterly clueless.
      I've learned the hard way. It took me years to grasp OOP even though I did programm years before - and I'm still chewing on my design patterns and UML. But when I'm finished, I'll actually be able to teach 'spagetti coders' the way - and not just bullshit about them like the arrogant rest of the pack.

      --
      We suffer more in our imagination than in reality. - Seneca
  50. 1968 by autopr0n · · Score: 2

    He wrote "goto considered harmful" in 1968

    --
    autopr0n is like, down and stuff.
  51. Re:guards by jason_watkins · · Score: 3, Insightful

    This is speculation, but I would guess that he's speaking of the first couple chapters of "A Discipline of Programming".

    Dijkstra's mindset is not for everyone. It's the mindset of a computer scientist who wants to have confidence in his code, confidence that does not come from ego (I am aswome, therefor my code never stinks).

    I think the ugly hack has it's place. After all, breaking a window is usualy a bad way to accomplish something, but if the context is you're trapped in a burning house, it's more likely a good move. Bodgeing it out has a similar context, but 99% of the people who don't value clean, well considered code are not in that context. And of the 1% who are, I would bet many of them are in that burning house because someone before them didn't value clean and well considered code.

  52. Re:Learning from the Past by EvlG · · Score: 2

    I'll bite.

    What's wrong with the algorithm?

    Predictable runtime, finite outcome.

  53. Re:Ad placement by EvlG · · Score: 2

    I wholeheartedly agree.

    I have always looked at the default fall-through behavior of the case in C as a design error - a complete disaster waiting to happen.

    Why is it so?

  54. Re:Contents of article by EvlG · · Score: 3

    Except I thought good compilers these days are able to recognize a sitation like this an inline the function?

    Anyone have good profiling tools available for the really good compilers?

  55. Re:Contents of article by mikec · · Score: 2

    Maybe, but probably not. After all, the inner loop is all in one function. And with a decent compiler it will probably be in-lined and unrolled a few times anyway.

  56. You know you're right but.... by CresentCityRon · · Score: 2, Insightful

    this is the slashdot crowd. The same one that gets all crazy about MS or DRM or RMS. The rabble cannot "clean up" for this important post. Be kinder.

    There is an old zen saying:
    Show a swordsman your sword
    Show a poet your poem.

    Slashdot is just slashdot.

    1. Re:You know you're right but.... by mosch · · Score: 2

      When you meet a master swordsman, show him your sword.

      When you meet a man who is not a poet, do not show him your poem.

      I've found this quote attributed to Rinzai, Lin Chi and Lao Tzu. Unfortunately, I have no idea which, if any, of these attributions is correct.
  57. Re:Ad placement by MajroMax · · Score: 2
    I have always looked at the default fall-through behavior of the case in C as a design error - a complete disaster waiting to happen.

    Why is it so?

    Because Original C is almost completely a block-structured language. With very rare exceptions (that tend to involve comma-delemited lists of statements), all control structures control a single statement -- the beauty of C, however, is that a block is acceptable in any case a single statement is allowed.

    As this relates to the switch/case statement, it becomes a question of what exactly each component can control. The switch statement has to control a list of something, obviously, because it has to contain the cases. What the cases control is a more interesting question.

    If the case controlled a statement/block, such as what happens in Pascal, then we end up with code that would look something like this:

    switch foo {
    case bar {
    ....
    }
    case baz {
    ....
    }
    }

    With structure like that, there is no mechanism for fall through, even explicitly -- using a goto would involve gotos between a block and its sibling (instead of its ancestor), which creates spaghetti-code problems with gotos all over again. The only way that the language could implement fall-through would be through a new explicit statement to do so, and taking that route too many times leads to PL/I or APL.

    Kernighan and Ritchie, the designers of C, were expressly designing the language for systems programming -- operating systems and compilers. These people want (and even need) a language that is both high-performance and flexible. To them, a "weak switch," one that allows fall-through, was potentially useful and came at neither a performance nor complexity (of the language) price.

    Therefore, the optimal decision was to implement switch controlling a block of statements, with the innovative implementation of cases as labels within those statements. Programmers who used C were supposed to understand what this meant for fall-through, and although I'm sure they made the mistake of leaving out a break occasionally (just as often as Us Normal People leave out semicolons or the like), the error it caused wouldn't be impossible to find or fix.

    --
    "Evil company X is threatening to restrict our rights! Let's all get together to stop--OOOH! SHINEY!!!" -- AC
  58. Personal Experience with by kurtbollacker · · Score: 2, Interesting

    I had Dijkstra for a graduate CS class in the Fall of 1996. It was an exploration of elegance in the process of quantitative reasoning. I must say that he taught me the virtue of careful thinking more so than any other instructor during my formal education. Check out this link starting around manuscript 1237 to see the course notes. As an example, he showed us an algorithm for calculating increasing cubes (x^3 for x=1 to N) of integers that reduces to 2 C statements and uses only integer addition and initial assignment as operators. E-mail me if you want the code. Hint: It would only be a 2 statement algorithm for any arbitrary polynomial function.
    k u r t AT s p a c e s h i p . c o m

  59. Dijkstra's Law (of programming inertia) by ediron2 · · Score: 2, Interesting

    Dijkstra's Law (of Programming Inertia):

    If you don't know what your program is supposed to do, you'd better not start writing it.

    I'm very sorry to hear he's died, even though I never met the good Doctor. In fact, each time I'm led off into the weeds by some dumbass project manager who misinterprets XP or RAD or ??? into contradicting this law, I quote Dijkstra's Law to anyone nearby. Along with quoting from Yourdon's "Death March", it's my favorite self-help therapy method.

  60. goto alternative: comefrom by Michael+Wolf · · Score: 3, Funny

    Let's not forget this bit of fun. We can banish goto forever now that someone finally invented
    comefrom.

    1. Re:goto alternative: comefrom by shren · · Score: 2

      Invented? I wanted an implementation, and I want it to fork if there are two different come-froms for the same label. I want to try it out, just for the hell of it. Doesn't even have to be a real language.

      --
      Maybe the state's highest function is to grind out insoluble problems. (Zelazny, Hall of Mirrors)
  61. Re:Let's See... by Otis_INF · · Score: 2

    dike-stra is much like it, not totally, but the 'ij' sound is very typical for the dutch language, so there is no similar sound in English.

    'Wybe' is pronounced as 'Wee-buh' where the 'wee' part is a short sound, not a long weeeeeee :)

    --
    Never underestimate the relief of true separation of Religion and State.
  62. Linux Kernel by AftanGustur · · Score: 5, Interesting


    Those who actually read the linux kernel source codem probably already knew Dijkstra and his god-like powers in the computer-sciences.

    But for those who put their nose in there and juts read the comments, there are some references

    Fr example: drivers/scsi/NCR5380.c

    goto part2; /* RvC: sorry prof. Dijkstra, but it keeps the rest of the code nearly the same */
    --
    echo '[q]sa[ln0=aln80~Psnlbx]16isb572CCB9AE9DB03273snlbxq' |dc
  63. Re: True metal survives the acid test of time. by guybarr · · Score: 4, Insightful

    It is sad that in the last decade of so, CEOs like Bill Gates and Jeff Bezos have gained so much public recognition while people Dijkstra languish in relative anonymity.

    and in his time, whom do you think was more famous, Newton or his King/Queen ? Lagrange or whatever Louie ruled then ?

    True metal survives the acid test of time. The ornamentations, the hype-sellers, the gates'es and Bezos'es, will be forgotten by everyone (except historians) by the next century.

    Dijkstra's shortest-path algorithm and other works will be remembered in centuries to come.

    --
    Working for necessity's mother.
  64. Re:Learning from the Past by Cryptnotic · · Score: 2

    C is a perfectly good cross-platform assembly language.

    C++ is an inconsistant, bloated, pseudo high-level, partially object-oriented, Frankenstein somewhat C-compatible language.

    --
    My other first post is car post.
  65. Re:Let's See... by Kharny · · Score: 2, Informative

    Hmm... This might be nice, The problem is that Mr Dijkstra's name comes from the northern part of the netherlands. This 'state' or province as we call it has an own language, with different pronouncement. My go at it:
    Normal Dutch:
    D'ii'kstra: the ij is pronounced a bit strange, it is hard to explain......
    Fries:(northern language/accent)
    D'ee'kstroa : the ee is pronounced as in english the seperate e but longer.

    --
    Make a man a fire and he will be warm for a day, set a man on fire and he will be warm for the rest of his life
  66. Re: True metal survives the acid test of time. by Khalid · · Score: 2

    I hope I had moderation points for this !

    So true :)

  67. Not just RTS games... by dido · · Score: 2

    I believe the Internet core routing protocols use Dijkstra's shortest path algorithm, whereas RTS games probably use the A* algorithm to find approximate shortest paths. So everyone who accesses slashdot remotely uses his algorithm... :) IIRC, Dijkstra also developed semaphores and mutexes, according to our old friend Andy Tannenbaum, which are an absolute requirement for any multitasking, multithreaded OS. Gosh, the man was a legend...

    --
    Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
    1. Re:Not just RTS games... by GlenRaphael · · Score: 2
      I believe the Internet core routing protocols use Dijkstra's shortest path algorithm, whereas RTS games probably use the A* algorithm to find approximate shortest paths.

      In that case, RTS players owe their debt more directly to Danny Bobrow, Nils Nilsson and my dad Bertram Raphael, who invented the A* algorithm while working on Shakey the Robot at SRI. (And those three in turn owe debts to Dijkstra, Minsky and others. Isn't science grand?)

      --
      I play Nerd-Folk!
  68. Re:Let's hope he's Hindu by Khalid · · Score: 2

    That's why open source is such great thing, everybody want to improve your code ;)

  69. Re:Dijkstra by invid · · Score: 2

    It is practically impossible to teach good programming style to students that have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration.

    I've always had great respect for the man, but after reading that quote it has increased.

    Also to note: More than half the college books I've had to read have some reference to Dijkstra in them. He is one of the greatest contributers to computer science, not only in the theoretical level, but on the practical design level as well.

    --
    The Moore-Murphy Law: The number of things that will go wrong will double every 2 years.
  70. A few years back.... by Hugh+Kir · · Score: 2, Interesting

    I had a friend working for the computer center at UT. She emails me that she just done such-and-such a thing for Professor Dijkstra. Upon reading this, I of course send some reply about all the stuff he has done, and how it must be cool to have met him, etc, etc, and she replies, "I didn't know he was famous. I just thought he was a nice old man!"

    So, here's to a great computer scientist and a "nice old man". May he rest in peace.

  71. Re:Remembrances of Dr. Dijkstra by pokeyburro · · Score: 2

    I took a course he taught at UT Austin. The final exam was oral, one-on-one, for about two hours or so. I walked into his office at the end of the hall, which was larger than the classroom was. Actually, I don't walk into the office; I walk into the waiting room leading to the office.

    So there's this huge room, with two walls covered in bookshelves, filled with books, periodicals, publications, a picture of Dijkstra in his graduation robes, awards, etc., all neatly arranged. I get the feeling the Doctor has written half of what's shelved there. (Knuth wrote half of the rest, I reckon.)

    Dr. Dijkstra sits me down, and after a quick chat, launches into the first problem. It's a proof, fairly simple. After presenting the problem, he sits down in the chair across from me, and waits, quietly and patiently. On me.

    I got so flustered I ended up with a B. One of my great regrets.

    --
    Lately democracy seems to be based on the skybox, the Happy Meal box, the X-box, and the idiot box.
  72. Re:Final Exception() by Zeinfeld · · Score: 2
    The Google list is apparently by the number of times someone is referenced rather than attempting to be some sort of guide to emminence. The equivalent list for journalists would probably have Ann Coulter and Rush Limbaugh at the top.

    Other people missing from the list include Whitt Diffie and Ron Rivest. I am suprised to see Eric Raymond but not Linus Torvald or any of the Apache people.

    Given some of the names that are on the list I don't see any reason to complain about TBL. If Tim was lucky then so was Denis Richie, C was after all merely an incremental development of CPL, BCPL and B. It is very strange to have Ritchie on the list and not Hoare whose work on Algol came long before.

    More interesting however than a pioneer's list is a contemporary list. I would much rather be on a list of people currently at the forefront of research than a has been's list.

    --
    Looking for an Information Security student project suggestion?
    Try http://dotcrimeManifesto.com/
  73. Read his writings by Junks+Jerzey · · Score: 2

    For an older view, try:

    A Discipline of Programming

    for a more refined, later view, read:

    Predicate Calculus and Program Semantics

    Many people are showing their lack of knowledge by endlessly citing the GOTO thing--which was a letter, not even a paper. But Dijkstra's main work was in what he called the calculation of programs: developing provably correct programs. Yes, it isn't everyone's cup of tea, and no it isn't completely realistic for most purposes, but it is some brilliant, pioneering work.

    1. Re:Read his writings by andrew+cooke · · Score: 2

      Apologies if self-linking in a thread like this is bad taste, but the post above mentions Dijkstras "A Discipline of Computer Programming". If anyone reads that book and is curious about the programs, they may be interested in an interpreter for the language that was used - http://www.acooke.org/jara/egg

      I should add a quote from that book: None of the programs in this monograph, needless to say, has been tested on a machine. (and, of course, all the ones I tested worked)

      --
      http://www.acooke.org
  74. Three reactions by Lumpish+Scholar · · Score: 2

    There are three classes of programmers out there:

    First, those who say, "Dijkstra was a genius; if only every programmer followed his dictates."

    Second, those who say, "Dijkstra was a complete iconoclast; he had a lot of good ideas, but his approach wasn't practical in the real world."

    Third, those who say, "Dijkstra who?"

    Sadly, there are a lot of third class programmers out there.

    --
    Stupid job ads, weird spam, occasional insight at
  75. Re:Why Care? OSPF by Pii · · Score: 2
    Mod this up...

    The Dijkstra Algorythm is the mechanism that determines path selection in an OSPF routing domain.

    RIP determines best path based solely on hop count, irrespective of the bandwidth of the links along the path.

    OSPF determines path without considering hop count. Instead, it utilizes metrics derived from the bandwidth of the links between the source and destination as the determining factor in deciding the best path.

    I'd rather send my packets across two DS-3 connections than one 9.6kbps connection in reaching the destination.

    Couple that with it's support for VLSM and Classless operation, and it's super efficient update "flooding" mechanism, and you have the basis for the Mac Daddy of interior routing protocols.

    This was a brilliant man. I'm sorry to hear of his passing.

    --
    For those that would die defending it, Freedom
    has a sweet taste that the protected will never know.
  76. Re:Learning from the Past by scrytch · · Score: 2

    Cute. He died of cancer, so you get to kludge in the same metaphor to plug your megalomaniac, ah, "theory" (when I can find evidence of sound CS or even engineering principles on that page, I'll remove the quotes).

    You should be ashamed of yourself.

    --
    I've finally had it: until slashdot gets article moderation, I am not coming back.
  77. So long, and thanks for all .. by C.+E.+Sum · · Score: 4, Interesting

    I received my computer science degree from the University of Texas, where Dr. Dijkstra taught before retiring. I never took the undergraduate class he offered (I was kind of intimidated at the time), but the professor who taught my Software Engineering class had him come in to lecture one day.

    This software engineering class was very pragmatic, emphasizing methodical design, implentation, and testing. As I recall, Dr. Dijkstra gave his lecture near the end of our semester, by which time we had been heavily involved in something resembling a team development evironment for a few months.. There was a very corporate feeling to our regimen of meetings and reports.

    So one day we all go to the faculty lounge to hear the esteemed professor speak. He comes in the door of the lounge appearing to me most unlike the kind of man who could write so forcefully about programming, dressed in shorts and a tee-shirt with a distinctly old-grandfather look on his face.

    In his very soft-spoken manner, he told us that he beleived that the main problem with programmers was a lack of rigor. People were so concerned with coding and testing that they never learned how to write something correctly the first time. He asked us to prove the correctness of the code for a binary search and spent the next half-hour proceeding glumly as we slowly worked through the process with him.

    I got the impression we were a vaguely dissapointing group of students who he could tell were not convinced of the validity of his approach. It wasn't even a bitter dissapointment, though. I felt as though he was someone who had totally convinced himself that he knew how to make the world a better place, but that noone was listening.

    He answered our questions about "gotos considered harmful" (it was his editor's idea to give it the cute title) with what I considered obvious patience. He talked about how he really only was able to keep up on the research that people referred to him these days. And then the lecture was over.

    Our professor and Dr. Dijkstra were good friends, and I hung around after class talking with them about computer science and Dijksta's past. I ended up in his office after a while and we chatted about the current state of the industry as he saw it, why he really liked Texas, and so on. He was so intelligent in his conversation--asked so many probling questions--that by the time I was done I felt both touched and exhausted. He put on his cowboy hat and walked out of the office with me and headed off to his next appointment.

    That was the last time I saw Esdgar Dijkstra--the only real time I ever talked to him. But I feel that the world has lost a quiet crusader, and I feel a tug in my heart thinking about this old dean of computer science with his cowboy hat.

    --
    -- Have you ever imagined a world with no hypothetical situations?
  78. Even more Dijkstra quotes by Lumpish+Scholar · · Score: 3, Informative

    It is practically impossible to teach good programming style to students that have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration.

    APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.

    The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.

    When FORTRAN has been called an infantile disorder, PL/I, with its growth characteristics of a dangerous tumor, could turn out to be a fatal disease.

    COBOL is for morons.

    With respect to COBOL you can really do only one of two things: fight the disease or pretend that it does not exist.

    The question of whether computers can think is like the question of whether submarines can swim.

    --
    Stupid job ads, weird spam, occasional insight at
  79. Re:How to find the funeral? by Edward+Kmett · · Score: 2

    It just happens to be able to find all shortest paths in the same amount of time it takes to find one, hence the running out of memory comment.

    I hate to respond to a troll, but I'll bite.

    --
    Sanity is a sandbox. I prefer the swings.
  80. Re:Ad placement by EvlG · · Score: 2

    This makes sense, but I don't understand why they didn't make the default behavior equivalent the break, and provide a "fallthrough" keyword or something similar that does the same as the default requirements.

    What I mean is, why did they make the default the way they did? It seems like an error to do so, and there is no technical reason it couldn't be done the other way.

  81. Modern Euclid by notfancy · · Score: 2

    He was the Euclid of our times. Reading his writings I get the same feeling of economy, conciseness, clarity, effectivity that I do when reading the Elements. His calculational style of proof is, to me, entirely on par with Euclid's use of the Theory of Proporions.

    I hope it won't have to take two thousand years before we recognize his fundamental brilliance.

  82. Re:Ad placement by MajroMax · · Score: 2
    This makes sense, but I don't understand why they didn't make the default behavior equivalent the break, and provide a "fallthrough" keyword or something similar that does the same as the default requirements.

    I'll admit -- what you describe is very technically possible. However, implementing this would make the language more complex than necessary.

    Firstly, implementing something like this would put an 'implicit break' at the end of each case-list of statements. Doing this would crack the program sequence of C-code, in that (unless specificially altered by the deliberate use of a control statement by the programmer) the lexically next statement is always the chronologically next statement. Admittedly, this specific case wouldn't have _too_ much of an impact on code writing, but for the language in general the statement 'program instructions are executed in order' becomes 'program instructions are executed in order EXCEPT when it's part of a switch statement.' It's inelegant, and doing something like this to solve this particular problem could lead to similar stopgap solutions for other preceived problems, and before long we may as well reintroduce the unlimited goto.

    Secondly, introducing a specific keyword for this function means that all C programmers would have to learn YAK (Yet Another Keyword). No existing keyword serves a similar purpose as fallthough (continue being reserved only for loops, and 'switch' is most definitely not a looping construct), and the addition of any new keyword in a language should come only after much debate -- with too many keywords, programmers learn only a subset of the language, and you get 'dialects' of the language based on coding style.

    In my opinion, modern compilers should catch this kind of thing (when possible) and, on suitably detailed warning levels (such as -Wall or -Wstudent [yes this one's made up]) should emit a warning. Although a prime source of small errors in code, constructs like these (and assignment-in-ifs) have their uses. Expressly dealing with them makes the language more complex than it needs to be, IMO, and forbidding them takes power from the programmer -- better to recognize and warn (if told to do so), but otherwise compile just fine.

    --
    "Evil company X is threatening to restrict our rights! Let's all get together to stop--OOOH! SHINEY!!!" -- AC
  83. Obituary in the London-based Times by Observer · · Score: 2
    Probably too late to be noticed on /., but The Times has a measured and appreciative obituary. You can find it in the online edition here (no registration needed).

    RIP.

  84. He'd still probably disagree by Trepidity · · Score: 2

    As he also said "OOP is an exceptionally bad idea which could only have originated in California," you becoming proficient in OOP after starting with BASIC is unlikely to convince him that his assessment of people who start with BASIC was wrong. =]

  85. Old poem: "Father Edsger" by phr2 · · Score: 2
    Dijkstra's passing is of course a great loss, like the closing of an era in CS. But even with the deepest respect for his memory, I can't resist posting this old classic (from Cornell University in the early 80's):

    "You are old, Father Edsger," the young man said,
    "All your papers these days look the same;
    Those EWD's would be better unread --
    Do these facts never fill you with shame?"

    "In my youth," Father Edsger replied to his son,
    "I wrote wonderful papers galore;
    But the great reputation I found that I'd won,
    Made it pointless to think any more."

    "You are old," said the youth, "as I mentioned before,
    And make errors few people could bear;
    You complain about everyone's English but yours --
    Do you really think this is quite fair?"

    "I make lots of mistakes," Father Edsger declared,
    "But my stature these days is so great
    That no critic can hurt me -- I've got them all scared,
    And to stop me it's now far too late."

    "You are old," said the youth, "and your programs don't run,
    And there isn't one language you like;
    Yet of useful suggestions for help you have none --
    Have you thought about taking a hike?"

    "Since I never write programs," his father replied,
    "Every language looks equally bad;
    Yet the people keep paying to read all my books
    And don't realize that they've been had."

    "You are old," said the youth, "and I'm told by my peers
    That your lectures bore people to death.
    Yet you talk at one hundred conventions per year --
    Don't you think that you should save your breath?"

    "I have answered three questions, and that is enough,"
    Said his father. "Don't give yourself airs!
    Do you think I can listen all day to such stuff?
    Be off, or I'll kick you down stairs!"

  86. Re:Re~ by Anonvmous+Coward · · Score: 2

    "I'm a ChickenHawk, and I only eat Chickens!" heh.

  87. Re:Contents of article by William+Tanksley · · Score: 2

    The classic example is breaking out of deeply nested looping constructs. Note: This does not apply to languages that have exceptions.

    I can't beat Knuth's paper; I have to refer you to it for a complete discussion of why and where gotos are useful.

    I just wanted to say that exceptions do not, can not, and MUST not be used as a tool to avoid GOTOs. Exceptions are dynamic (runtime) events; GOTOs are static, constant effects. An uncaught exception results in a crash; an uncaught GOTO results in uncompilable code.

    -Billy

  88. The Ted Williams Tunnel@Boston by Hoi+Polloi · · Score: 2

    I'd support renaming the Ted Williams Tunnel here in Boston to the Edsger Dijkstra Tunnel but then it would never let me GOTO anywhere!

    *load groan*

    --
    It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning