Slashdot Mirror


Dijkstra's Manuscripts Available Online

Bodrius writes "Salon has a short but interesting article called GOTO considered joyful, about E. W. Dijkstra's manuscripts, as published by the University of Texas, and their bloggish nature. I'm not sure if the blog analogy is that accurate, but the articles are a must read for computer scientists and geeks in general." (Annoying but free click-through system for non-subscribers.)

68 of 251 comments (clear)

  1. Full Text (Subscribers Only Article) by Richardsonke1 · · Score: 4, Informative

    GOTO considered joyful
    On his proto-blog archive, the words and spirit of the late computer scientist Edsger Dijkstra live on, inspiring new generations of geeks.

    - - - - - - - - - - - -
    By Rachel Chalmers

    July 9, 2003 | considered harmful: adj. [very common] Edsger W. Dijkstra's note in the March 1968 "Communications of the ACM," "Goto Statement Considered Harmful," fired the first salvo in the structured programming wars ... use of such titles has remained as a persistent minor in-joke (the 'considered silly' found at various places in this lexicon is related).

    That entry in Eric Raymond's edition of the Hacker's Dictionary was my first encounter with pioneering computer scientist Edsger Wybe Dijkstra, but thanks to the dedicated work of volunteers at the University of Texas at Austin, it was very far from my last. These volunteers maintain the massive and growing EWD archive. It's a tremendous and erudite proto-blog, the extraordinary record of an exemplary life, and it's one of my favorite places on the Web. A year after his death, a computer scientist who devoted himself to teaching people how to think is still on the podium, delivering gem after gem of insight.

    Born in the Netherlands in 1930, Dijkstra was a witty and thoroughly engaging writer in his nonnative English ("I have learned to be very suspicious of ideas I cannot express well in both Dutch and English," he noted, late in life. "As nice as it is to have the union at one's disposal, it is wise to confine oneself to the intersection.")

    Over a 40-year period that began in the early 1960s, Dijkstra wrote prolifically on timely and compelling topics: from his experience of the evolution of universities on both sides of the Atlantic from the post-WWII era to the beginning of the 21st century; to meditations on the science and art of teaching; to incredibly rich and detailed accounts of his own intellectual methods (don't miss EWD 666: "A problem solved in my head," which contains the endearing aperçu: "Goldbach's Conjecture -- I had never thought that I would ever use that!")

    Like entries in a modern weblog, many of the informal pieces collected in the EWD archive were never published in any traditional sense. Instead they were copied (and later photocopied), numbered sequentially from EWD 0 (sadly lost to history) to EWD 1317 ("From van IJzeren's correspondence to my aunt & uncle," written a few months before his death in August 2002) and circulated from the greedy hands of one computer scientist to another like Eastern European samizdat or fourth-generation copies of the Lions books.

    For years I have been dipping into this priceless archive (or at least its English language subset; is there a great Dutch-English translator out there who would do the world the incalculable favor of translating the rest?) and I have yet to scratch the surface of its treasures. But I continue to follow the trail; the archive is redolent of the spoor of Dijkstra's intellectual evolution, the physical evidence of a great mind thinking aloud. A fine, clear light shines through it all, the light of intelligence unmarred by any particular arrogance or egotism -- the set of personal qualities I tend to think of as integrity.

    Dijkstra is at his iconoclastic best on, for example, academic hypocrisy:

    "Today's mathematical culture suffers from a style of publication, in which the results and the reasoning justifying them are published quite explicitly but in which all the pondering is rigorously suppressed, as if the need to ponder were a vulgar infirmity about which we don't talk in civilized company."

    Or the relationship between programming and mathematics:

    "Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians."

    Or the truth itself, however unpalatable:

    "French science is poisoned by politics."

    One particularly apposite piece (EWD 696) is titled "Written in

    --
    "Men lie."
    "Yeah, about sleeping with other women, but never about bioluminescent plankton."
    -Dan Brown
    1. Re:Full Text (Subscribers Only Article) by mirko · · Score: 3, Funny

      This can't be : it was supposed to be manuscript, not typed !? :)

      --
      Trolling using another account since 2005.
    2. Re:Full Text (Subscribers Only Article) by rose_bud4201 · · Score: 3, Insightful

      I'm glad to hear that programming is a brain-dead job. That makes my college courses and job that much easier - apparently I can stop working my ass off to write good, efficient programs which people can actually use and start writing useless perl scripts like everyone else, no? Thank you for successfully insulting every decent programmer out there.
      Oh, and have you ever really looked at a real algorithm? They are mathematics, pure and simple. Mathematics has everything to do with programming. Case in point: Dijkstra's Algorithm. Not one of the really heavy math ones, granted, but in view of the topic I think it's appropriate.

      --
      "Eat any good books lately?" -Q

      The best Windows accelerator is 9.81m/s^2
    3. Re:Full Text (Subscribers Only Article) by LilMikey · · Score: 2, Insightful

      You obviously don't know what programming is if you're lumping programmers in with 'perl/php script kiddies.'

      --
      LilMikey.com... I'll stop doing it when you sto
    4. Re:Full Text (Subscribers Only Article) by Zeinfeld · · Score: 3, Insightful
      (1) He obviously can't tell the difference between pure and applied mathematics and
      (2) How come all the loser mathematicians who can't hack it end up becoming programmers?.

      Well I have something of an advantage here, having actually read the original notes rather than the article about them. Back in the late 1980s I spent an afternoon reading them. Dijkstra used to send the notes out to what he considered the major computer science labs. Since Oxford was run by Tony Hoare it was obviously on the list.

      At the time some of the other students thought that this practice was somewhat pretentious, tending to imply a somewhat elevated self-opinion. Today of course everyone from the lowliest grad student shares far more mundane thoughts in their blogs.

      What Dijkstra was actually doing in the article referred to was pointing out that there was nothing intrinsically superior about 'pure' mathematics. At the time computer science was regularly condescended to as an inferior for of mathematics.

      Where Dijkstra was wrong is that comp sci is not a branch of mathematics at all, it is as my tutor Tony Hoare pointed out 'An engineering profession'. At the time this was first proposed the idea was somewhat controvertial, today almost every programmer regards themselves as an engineer.

      I think that in fact we have to go a bit further and understand that the highest levels of programming are actually more akin to architecture. It combines art and engineering, just as engineering combines science and mathematics.

      There are plenty of architects and engineers who could never make much progress in the pure sciences. But take the best architects and the best engineers and you will often find that not only were most capable of being top class scientists, in many cases they actually were.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    5. Re:Full Text (Subscribers Only Article) by Marqis · · Score: 2, Interesting


      I transferred from Architecture to Computer Science. People didn't understand how I could like both, and they really didn't understand it when I said they're very similar.

      You understand it perfectly.

    6. Re:Full Text (Subscribers Only Article) by PD · · Score: 2, Interesting

      I don't consider myself an engineer. The sign on my cube says that I'm a software engineer, but that makes me cringe.

      I'm just a computer programmer, which is more like a carpenter than anything. I build things that other people want, just because I know how to do it. I didn't need any special education or certification to do my job, just experience with the tools of my trade. I'm just like a guy with a hammer.

  2. Bio by Arthaed · · Score: 5, Informative

    Here is a brief bio on Edsger Dijkstra.

    --
    Unique signatures are rare.
    1. Re:Bio by Fry-kun · · Score: 2, Informative

      a somewhat longer entry at wiki :)

      --
      Did you know that "FTW" ("for the win") is a direct translation of "Sieg Heil"?
  3. Compelling? by mao+che+minh · · Score: 2, Funny
    That was a mighty gracious tribute to a mere blog. I understand that it is a very old blog, but honestly, who really cares? It's poorly selected stories like these that are dragging Salon down. I'll never pay for a website that bothers to publish such boring material.

    Oh wait......*

    1. Re:Compelling? by garcia · · Score: 3, Insightful

      you really need to RTFA and his documents first.

      As a person only vaguely interested in CS I can say that I was more intrigued by the fact that he hand-wrote his documents, gave personal notes about what he was feeling at the time (my note about what pen-type he was using), which are all VERY interesting to me.

      For me, these little things are far more interesting than what topics he happened to be discussing.

      His "blog-like" notes are probably better to read than JoSchmoe049169666420's because they are coming from very well-known professor who was in touch with the CS academic community.

      That's my worthless .02 at least.

    2. Re:Compelling? by sbaker · · Score: 3, Interesting

      I was one of the people that somehow got onto the mailing list for Dijkstra's notes. It was always a joy to see a photocopy of one of his hand-written (mostly) notes appear in my In-Tray at work.

      Unless you've read a good number of his writings, it's hard to appreciate the way this guy thought.

      He also had the neatest handwriting in the known universe. I recall getting one of his notes that seemed as immaculately neat as all the others - with a note at the end apologising for the quality of the handwriting as he'd written it with his other hand "because it could use some practice". He resented having to use a typewriter because he liked to invent new symbols. He always wrote code fragments in a programming language of his own invention for which no known compiler exists.

      It may be that you could describe this as a 'blog' - it was disseminated by mail to people who he'd somehow run into or been associated with. I have no idea how many copies were sent out - but it must have been hundreds. The earliest ones were long before the advent of the Internet.

      Whether it makes a suitable Salon story - I can't say.

      --
      www.sjbaker.org
  4. Subscription not necessary by Blitzshlag · · Score: 4, Interesting

    You could change the expiration on the temporary cookie they give you to get perminent access. Of course, this would be illegal.

  5. Can someone shed more light on his misc. info? by garcia · · Score: 4, Interesting

    Does anyone know if he routinely let people know what type of pen he was using when he wrote that particular document? Here's one of the ones I found.

    Why did he do this? For his own personal notes on which pens were good (I guess important if you are frequently writing things).

    Why did he use pens and not electronic formats? For a CS person that surprises me.

    1. Re:Can someone shed more light on his misc. info? by CoolVibe · · Score: 4, Insightful

      Dijkstra had a very distinctive and very readable handwriting. It certainly influenced mine. I don't know which pens he used, but I do agree there is something about writing stuff by hand. For one, you write slower than you think. And it can be a really meditative experience putting words to paper by hand.

    2. Re:Can someone shed more light on his misc. info? by utahjazz · · Score: 4, Funny

      Why did he use pens and not electronic formats? For a CS person that surprises me.

      One of my profs said he was giving a speach at Dijkstra's school. He wanted to make sure Dijkstra didn't attend (apperently Dijkstra was an asshole), so he sent out the announcement via email only. This ensured that Dijkstra would never get the announcement, as he did have a computer.

    3. Re:Can someone shed more light on his misc. info? by no+reason+to+be+here · · Score: 4, Insightful

      Well, he started writing in the 1960's, so it was pretty non-trivial to fire up your computer and peck away at a keyboard in some very primitive text editor with (if one were lucky) a tiny amber monochrome display. At the point he started writing his JOURNAL (sorry, i just fucking hate the word "blog"), pen and paper was the easiest, most reliable, and most expediant option (also remember that at that time, mathematicians and engineers were still using slide rules). By the time word processing became a more viable option, he was entrenched in the habit of keeping a paper journal. Furthermore, until the advent of the portable computer, if you wanted to write in your journal regardless of where you were, pen and paper was the only option. Personally, I'd like to see more people keep pen and paper journals; one can tell a lot about people from their handwriting.

    4. Re:Can someone shed more light on his misc. info? by JewFish · · Score: 2, Interesting
      I call bullshit.


      This ensured that Dijkstra would never get the announcement, as he did have a computer.


      How does having a computer ensure that you will not get email? All the professors at my school have said nothing but kind words about the man (although they have only mentioned him post-mortum). The professors that I am talking about also know the man and never mentioned cowering in fear of him, or trying to hide from him.

    5. Re: Can someone shed more light on his misc. info? by Black+Parrot · · Score: 4, Interesting


      > One of my profs said he was giving a speach at Dijkstra's school. He wanted to make sure Dijkstra didn't attend (apperently Dijkstra was an asshole)

      I don't know about 'asshole', but he certainly qualified as a curmudgeon. Famously, if he was at a talk and the speaker put up a slide that had more than one color in it, Djikstra would interrupt and ask what the different colors meant. (I actually had an opportunity to see him do that once.)

      I have repeatedly heard rumors at second and third remove to the effect that at least some of the CS faculty at Texas found him "very divisive", but the rumors never told me what the context was. Decisions at faculty meetings, I would guess.

      But it shouldn't surprise anyone on Slashdot to hear that some CS geniuses have a contrary streak.

      --
      Sheesh, evil *and* a jerk. -- Jade
    6. Re:Can someone shed more light on his misc. info? by eli173 · · Score: 3, Interesting
      Does anyone know if he routinely let people know what type of pen he was using when he wrote that particular document? Here's one of the ones I found.

      Why did he do this? For his own personal notes on which pens were good (I guess important if you are frequently writing things).


      IF he did track what pen he was using, I can think of one possible reason. It was mentioned that these were photocopied and re-photocopied to several generations. During that process it won't be readily apparent what pen he used... but it might show that some pens gave text that withstood the degredation of copying better than others. If the papers that were written with, say, thick pens were the easiest to read 4 copy generations later, he could make a point to use thick pens in the future.

      Just a thought. :)
    7. Re:Can someone shed more light on his misc. info? by h00pla · · Score: 3, Insightful
      I love fountain pens and I really get my ideas flowing when I use them, even if it is to turn around and code the thing with emacs. I have tried to use emacs or other editors to flesh out preliminary ideas, but it just doesn't have the same appeal to me. I believe I read something about air traffic controllers still doing part of their job on paper because they can't get the same results with computer programs. It has something to do with that meditative experience your talking about, IIRC.

      --
      I've been swashdotted -- Elmer Fudd
    8. Re: Can someone shed more light on his misc. info? by Black+Parrot · · Score: 4, Interesting


      > Since CS is (or at least should be) learning how to apply known algorithms to problems and the development of new algorithms to solve problems, CS should be very similar to math, and computer scientists ought to seem fairly similar to mathematicians.

      For researchers in the 'theory' and 'algorithms' sub-fields of CS, I'd say they are mathematicians. They work with axioms and theorems and stuff just like other mathematicians do.

      Other CS researchers are empiricists instead, e.g. most of those who do data mining or statistical natural language processing. And of course there's lots of other stuff in between. (E.g., network researchers may start off with an algorithmic concept but then run simulations to demonstrate their algorithm's effectiveness.)

      There's a family of jokes to the effect that PhDs in computer science don't know anything about computers or programming or whatever. In actuality the individual's engagement with computers/programming will vary very much with the sub-field he's in. These days a theorist will need to be able to use LaTeX to write papers and read e-mail to see the conference announcements, but doesn't need to program at all. OTOH someone doing experiments with genetic algorithms will probably write their own code for their experiments, and may even turn into a hardware geek by building beowulf clusters to run the massively CPU-intensive experiments on.

      > Most early CS people, as I understand it, were math people with an interest in computers.

      I think you can still find a lot of older CS professors with degrees in applied mathematics. Computers were around long before CS departments even existed.

      --
      Sheesh, evil *and* a jerk. -- Jade
    9. Re:Can someone shed more light on his misc. info? by danguyf · · Score: 3, Funny

      I am befuddled that one could consistently spell Dijkstra correctly and yet err in spelling 'speech'.

    10. Re:Can someone shed more light on his misc. info? by Pflipp · · Score: 2, Interesting

      one can tell a lot about people from their handwriting.

      This is going to be really off topic, but it might be of interest to you...

      I'm a lefty and have a terribly messy handwriting. As I aspire to be a comic artist (and have done so for years :-P), this really is a vote against me; hand-lettering your comics makes them personal and makes the work a whole, but with my handwriting, it makes the work look like sh*t.

      I've had, what? 20 years to develop a proper handwriting letter.

      It took me less than a year to develop the capability of writing an appreciable letter, by writing IN REVERSE, a la Da Vinci (although mine is of course a clear block letter). This mirrored lettering perfectly matches my current style of drawing, and I'm very satisfied with it.

      My conclusion? Handwriting might say something, like people's faces do. But if you really want to judge beyond looks, you'd have to read what's written instead of caring about the handwriting.

      --
      "We can confirm that Debian does *not* ship the version with the trojan horse. Our version predates it." [CA-2002-28]
    11. Re: Can someone shed more light on his misc. info? by Black+Parrot · · Score: 2, Informative


      > I've always thought the title of the GOTO paper was a master stroke. Anyone else would have called it "Why GOTO statements are bad" or "Structural problems caused by GOTO", and your reaction would be "That's his opinion" or "Gee, everyone knows that". He made it sound like it came from absolute authority, and if you disagreed, you were setting programming back.

      Thing is, it wasn't his title; it was stuck on by Niklaus Wirth, inventor of Pascal, when he converted the paper to a "letter to the editor" to sneak it into the current issue of the ACM rag.

      --
      Sheesh, evil *and* a jerk. -- Jade
  6. GOTO is DYING by Anonymous Coward · · Score: 2, Funny
    Fact : GOTO is dying


    It is official; Salon.com confirms: GOTO is dying One more crippling bombshell hit the already beleaguered GOTO community when IDC confirmed that GOTO market share has dropped yet again, now down to less than a fraction of 1 percent of all servers. Coming on the heels of a recent Salon.com survey which plainly states that GOTO has lost more market share, this news serves to reinforce what we've known all along. GOTO is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent Sys Admin comprehensive networking test.



    You don't need to be a Bjourne Stroustrop to predict GOTO's future. The hand writing is on the wall: GOTO faces a bleak future. In fact there won't be any future at all for GOTO because GOTO is dying. Things are looking very bad for GOTO. As many of us are already aware, GOTO continues to lose market share. Red ink flows like a river of blood.



    GOSUB is the most endangered of them all, having lost 93% of its core developers. The sudden and unpleasant departures of long time GOSUB developers Jordan Hubbard and Mike Smith only serve to underscore the point more clearly. There can no longer be any doubt: GOSUB is dying.



    Let's keep to the facts and look at the numbers.



    JMP leader Theo De Raadt states that there are 7000 users of JMP. How many users of BRANCH are there? Let's see. The number of JMP versus BRANCH posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 BRANCH users. RETURN posts on Usenet are about half of the volume of BRANCH posts. Therefore there are about 700 users of RETURN. A recent article put GOSUB at about 80 percent of the GOTO market. Therefore there are (7000+1400+700)*4 = 36400 GOSUB users. This is consistent with the number of GOSUB Usenet posts.



    Due to the troubles of QBASIC, abysmal sales and so on, GOSUB went out of business and was taken over by VISUAL BASIC.NET who sell another troubled OS. Now VISUAL BASIC.NET is also dead, its corpse turned over to yet another charnel house.



    All major surveys show that GOTO has steadily declined in market share. GOTO is very sick and its long term survival prospects are very dim. If GOTO is to survive at all it will be among OS dilettante dabblers. GOTO continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, GOTO is dead.



    Fact: GOTO is dying

  7. Re:Is Dykstra still relevant today? by Alranor · · Score: 3, Insightful

    Um, since when is perl legacy technology?

  8. Statement I don't agree on by errl · · Score: 5, Insightful

    The article states that Dijskstra has said:

    "Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians."

    I do not agree with this. I mean, in pure mathematics there are not much to think about besides mathematics. Programming includes many other aspects, for example creativity. So if you are a poor mathematican but have other qualities that are needed for programming, you would have an easier time doing programming than pure mathemtaics I think.

    1. Re:Statement I don't agree on by errl · · Score: 2, Insightful

      I do see, and understand, your point. Maybe my point needs some clarification.

      I think too that good mathematicans very often make good programmers and the other way around. The problem I see with Dijkstra's statement is that he says (as I understand it) that poor mathematicans would do better pure mathematicans than they they would do programmers. However you see it, there is more mathematics in pure mathematics than there is in programming. And thus if you have other qualities needed in programming, but you are not very good at maths, you would make a better programmer than pure mathematican (though maybe not a very good one at either). I hope that makes my point a bit clearer.

    2. Re:Statement I don't agree on by jason0000042 · · Score: 2

      Pure mathematics does require creativity. If it didn't it could all be done by computer. But some times coming up with, say, an utterly logical, but new, proof requires a degree of inspiration that most people don't ever experience. I sometimes wish I had the attention span and discipline do be creative in that way.

      --
      i don't like my old sig.
    3. Re:Statement I don't agree on by Dun+Malg · · Score: 2, Insightful
      The problem I see with Dijkstra's statement is that he says (as I understand it) that poor mathematicans would do better pure mathematicans than they they would do programmers.

      Perhaps he meant something along the lines of "if you're a poor mathematician, don't compound your poor choice of career by becoming a programmer instead, because programming is still math." I don't think he meant that pure mathematics is the easier course of study, only that programming isn't necessarilly easier either.

      --
      If a job's not worth doing, it's not worth doing right.
  9. Re:Subscription not necessary by Anonymous Coward · · Score: 2, Insightful

    Only in the United Corporations Of America my friend...

  10. I'm not sure if the blog analogy is that accurate, by Anonymous Coward · · Score: 5, Funny

    It's not accurate, because that would make the material self-important, tedious, badly written nonsense.

  11. Re:Is Dykstra still relevant today? by Blitzshlag · · Score: 5, Insightful

    His teachings are not language specific.

  12. Re:Is Dykstra still relevant today? by Berzelius · · Score: 5, Informative

    Dijkstra was the 1972 recipient of the ACM Turing Award, often viewed as the Nobel Prize for computing. He was a member of the Netherlands Royal Academy of Arts and Sciences, a member of the American Academy of Arts and Sciences, and a Distinguished Fellow of the British Computer Society. He received the 1974 AFIPS Harry Goode Award, the 1982 IEEE Computer Pioneer Award, and the 1989 ACM SIGCSE Award for Outstanding Contributions to Computer Science Education. Athens University of Economics awarded him an honorary doctorate in 2001. In 2002, the C&C Foundation of Japan recognized Dijkstra "for his pioneering contributions to the establishment of the scientific basis for computer software through creative research in basic software theory, algorithm theory, structured programming, and semaphores". From: http://www.cs.utexas.edu/home/news/articles/index2 002/ewdobit.html I can't imagine him being important today, can you?

  13. Ever hear of OSPF by alen · · Score: 3, Insightful

    I heard it's still pretty popular in the routing of traffic on the internet.

  14. Salon.com by Orne · · Score: 3, Informative

    Funny, and I thought Salon was the one dying...

    "Salon has a history of significant losses and expects to incur operating losses in the near future. For the year ended March 31, 2003, Salon had net losses attributable to common stockholders of $5.7 million and had an accumulated deficit of $82.3 million." -- SEC Annual Report

  15. Re:Is Dykstra still relevant today? by pdbogen · · Score: 2, Interesting

    Well, Dijkstra's Algorithm is pretty relevent, but I don't see what that has to do with what's "on that radar screen". And, in any case, to more properly address your comments- Java is slow, and laughed at. C# is Microsoft (I.e., not open) and less than portable. Furthermore, a lot of CS work is maintaining software, and all the Java knowledge in the world won't help you with the fifty-thousand line FORTRAN program you're getting paid to maintain.

    Also, C++ and, as one of your responders aptly noted, Perl are not "legacy technology"- Just because something is old doesn't mean it's out of date. I won't pretend to be qualified to properly extoll the virtues of C++, but if you're really curious, I'm sure you could e-mail one of the C.S. profs here, bs at cs.tamu.edu (Bjarne Stroustrup).

  16. Re:Is Dykstra still relevant today? by David+Frankenstein · · Score: 2, Informative

    If you honestly believe that Dykstra's relevance has anything to do with C++, then you missed the boat. Dykstra's work is still important because of his *algorithmic* work. C++ has nothing to do with it.

    And in any case, what do think most of those applications on your computer were written in?

  17. Wife swapping??? by tvm662 · · Score: 5, Funny

    There is some saucy stuff in there that he's written about wife swapping and you thought CS was dull.

    Tom.

    1. Re:Wife swapping??? by notque · · Score: 4, Funny

      There is some saucy stuff in there that he's written about wife swapping and you thought CS was dull.

      Now all we need is a p2p program for that, and we're set.

      --
      http://use.perl.org
  18. Algorithms? by TrekkieGod · · Score: 3, Insightful
    Dijkstra developed some very efficient algorithms, and algorithms span all computer languages, even if I were to agree with you that C++ and perl are no longer used...which I don't.

    What comes to mind right at first is Dijkstra's Shortest Path Algorithm. And hey, look...that page has java programs. In fact, take a look at a Java applet to better understand the algorithm.

    --

    Warning: Opinions known to be heavily biased.

  19. Re:Is Dykstra still relevant today? by jejones · · Score: 4, Insightful

    Yes, Dijkstra is still relevant. That you should think he has anything to do with C++ is strange, and makes me wonder whether you're familiar with Dijkstra's work at all. Take a look at EWD 1243, and you'll see that he thought it was just another one of the messes pushed as the savior of us all. I dare say he'd say the same for Java and C#, which will be the legacy technology of tomorrow.

    Dijkstra's work on writing programs so as to be confident in their correctness from the start is very relevant--how much do you think people would be willing to pay for an OS written that way?

  20. Re:Is Dykstra still relevant today? by arivanov · · Score: 5, Informative
    Yes he is.

    You have entirely missed the point.

    If you know math and language theory the actual language you currently know does not matter. Language is a tool. You can learn to use a new tool in a matter of weeks if not days. Math is the knowledge on how to use all of the tools, not just the particular shiny one that has just been produced last week.

    After learning 5 or 6, the next one comes in a matter of days. Been there, seen that, trying to do it.

    This has not changed since Dykstra and ain't going to change. Ever. This is the fact known as the 5 times salary difference between the factory floor and the chief designer office.

    It is a fact of life, it exists in all industries and it is here to stay.

    Actually, Asimov has described this brilliantly in one of his novells. Read "Profession". It is thy best novell he ever wrote.

    --
    Baker's Law: Misery no longer loves company. Nowadays it insists on it
    http://www.sigsegv.cx/
  21. Re:Subscription not necessary by Rogerborg · · Score: 5, Insightful

    > You could change the expiration on the temporary cookie they give you to get perminent access. Of course, this would be illegal.

    I was winding myself up to sneer, but then I realized that this would be [circumventing] a technological measure that effectively controls access to a work protected under [Title 17].

    While we're at it, remember that "No person shall [...] offer to the public [or] provide [...] any technology [...] or part thereof that is primarily designed or produced for the purpose of circumventing a technological measure that effectively controls access to a work protected under [Title 17]."

    Citizen, remain at your console while the Secret Service analyzes the case against you and decides your guilt and an appropriate punishment.

    --
    If you were blocking sigs, you wouldn't have to read this.
  22. Call for volunteers by sheck · · Score: 5, Interesting

    The EWD archive is looking for volunteers to convert the handwritten articles to google-able HTML. See here if you are interested.

  23. Re:Is Dykstra still relevant today? by nullp0inter · · Score: 2, Insightful

    Maybe your comment was intended to be a troll, but if you think C++ and perl are no longer relevent you're deluding yourself Doctor Burns. Maybe you have moved on to more "bold and beautiful" things but C++ and is still widely in use, for much more than just the tech support night shift. Just because you aren't using them does not make them, or Dijkstara's writings which are not specific to any programming language, irrelevant.

  24. Slashdotters descended from Dijkstra by loonix_gangsta · · Score: 5, Funny
    Here's proof that Slashdotters are decended from Dijksta. Here's some quotes from document EWD498 "How do we tell truths that might hurt?". Note the problems that he faced in 1975 are similar to what we have today!

    FORTRAN -- "the infantile disorder" --, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use.

    PL/I -- "the fatal disease"-- belongs more to the problem set than to the solution set.

    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.

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

    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.

    Also the Microsoft-like problems that he faces with IBM. His disdain is clearly shown by labelling IBM the devil!

    ....

    Many companies that have made themselves dependent on IBM-equipment (and in doing so have sold their soul to the devil) will collapse under the sheer weight of the unmastered complexity of their data processing systems.

    We can found no scientific discipline, nor a healthy profession on the technical mistakes of the Department of Defences and, mainly, one computer manufacturer.

    ....

    18th June 1975

    Dijkstra - trolling since 1975 ;)

  25. Re:Is Dykstra still relevant today? by Cpt.+Fwiffo · · Score: 5, Insightful
    I think you are very much mistaken there.

    I study CS @ Eindhoven University, where he came and teached a lot(his and his compatriots were good in programming methodology: http://www.win.tue.nl/pm/ - horrible looking webpage) Trust me, it shows. Most of the 'hardcore' faculty members were friends/exstudents/what have you, and work the way he did. Dijkstra (and the folks at my faculty) did not bother himself with implementations of programming languages. Nor with what function to call for what. They all strive to understand the nature of the problem, and from that they try to derive the solution.
    That's a totally different approach to programming, which is a *lot* of work. However, it shows in areas where simplicity is key. There is a reason why Dijkstra used Semaphores (what do you think Java uses?). Or have you ever seen a good proof of Peterson's Algorithm? (I know Feijen and van Gasteren gave a generic derivation in 'On a Method of Multiprogramming', but that's just me having had to read it because it's part of my study there, of course. A book which delves into seemingly simplistic problems, but then gathers a framework which can tackle much bigger problems then you would expect.)

    The problems for single-process computing are easy. For those of you who program in them, I'm not trying to critisize or anything (I personally know that it's still damn hard from time to time), but there are no synchronisation problems, for one. To ensure that these are all systematicly handled you'd really want to have a proof that nothing can go wrong. Java and exceptions? Fine, it's just a way to get away with bad programming. There are a lot of places where you simply cannot get away with dirty programming: you don't want your car to deadlock going at 90 MpH, now would you? You want to be absolutely positive that it will *never* happen. THat means having either done extensive testing (which you can only hope it was sufficient), or having formal proof that it cannot go wrong.

    That is why Dijkstra held himself to the 'very hard problems'. The easy ones you can mess up with and still have not too much problems. The hard ones are problematic if they fail.
    He did not believe in cluttered code. Everything should be there for a reason, should be proven to be there and exactly there for a reason.


    "If I've learned one thing it's that in IS/IT/CS you either adapt and move on or you end up doing tech support on the midnight shift. Plain and simple. I think Fred Brooks touched on this in his book "The Mythical Man Month" when he said that computer programming will never be a mature field because to excel in it you must always be changing your language focus.


    To excel in Computer Programming you must be so smart as to be able to tackle the really hard problems. That means tackling problems on the problem field. You don't need languages for that, you need proof. Languages are but a tool for describing a solution and verifying your proof. Some languages describe easier then others, yes, but the solution is the same.

    I can write a C to Haskell to C++ to Prolog to Java compiler. Pretty straightforward too. The languages are the same. You just don't want to see the spaghetti which comes out of a program once I'm through with it. And that's the reason why you use a specific language for a solving a problem: some languages simply are much easier to express the solution in.
    However, that does NOT solve the problem, it merely makes it easier to program a solution understandibly.

    Dijkstra was above all a scientist, and thus had to convince the scientific community of his ideas. This normally is done by using formal methods which describe both the problem as the solution in such a away that they can be easily understood.

    That is still the holy grail for may solutions: how can they be written such that they can be understood more easily.

    But I'm starting to rant here...
  26. I'm impressed by anyone by CompWerks · · Score: 2, Insightful

    that support's the KISS principal when it comes to CS

    --
    If you can read this sig - the bitch fell off.
  27. Subject by Laxitive · · Score: 3, Interesting

    I had the pleasure of going to a Q&A session with Djikstra hosted by our university CSClub. It was interesting - he talked about shortest path, algol, and a whole bunch of other stuff.

    One of the major points he made before he left, and somewhat adamantly at that, was that software is so poor in quality nowadays because developers don't really bother to come up with formal proofs of correctness for their programs.

    There was some back and forth from the audience on this point, with people wondering wether it was feasible for large pieces of software (e.g. OS kernels) to be proven, because of their size and complexity. He didn't seem to think that it should really be a problem, and attributed the lack of correctness proofs to laziness on the part of programmers.

    It was an interesting talk.

    No point to this post, really.

    -Laxitive

    1. Re:Subject by Anonymous Coward · · Score: 2, Interesting

      ...software is so poor in quality nowadays because developers don't really bother to come up with formal proofs of correctness for their programs... people wondering wether it was feasible for large pieces of software (e.g. OS kernels) to be proven...

      Ideally, kernels and other large portions of code are made up of smaller functions. If each function is proved correct, then all that should remain at the end is to verify that each link maintains integrity. Think of it as a recursive proof, if you will.

    2. Re:Subject by Darth_Burrito · · Score: 2

      Disclaimer - I was never particularly fond of Djikstra. He seemed to be too wordy and too self important, which is not to say he didn't make some good contributions.

      software is so poor in quality nowadays because developers don't really bother to come up with formal proofs of correctness for their programs

      Asides from it being perposterous to expect all the developers in the world to write formal proofs for their programs, this statement is at best a wild assumption. He is proposing that the lack of use of a particular (his) potential solution to a problem is the root cause of the problem. Also, I've got to doubt that formal proofs would be worth nearly the tradeoff in terms of time. If you think about it, a program is itself akin to a proof of correctness. If a coder makes a mistake in his initial code, it seems likely he will repeat that error in a formal proof. Peer review could improve the failure rate, but that is a whole nother ballgame.

      attributed the lack of correctness proofs to laziness on the part of programmers

      Whether it's Djikstra or that guy in accounting, people who dismiss problems in code or code development to lazy programmers really piss me off. I mean, if I had a dime for everytime I heard a 9-5 guy talk about a lazy programmer who happened to be working 60 hours a week without extra pay.... Formal proofs, code review, perfect robust design, I'd love to. Whether or not I, or most folks I know, do these things has absolutely nothing to do with laziness or how willing we are to do work, it has to do with the amount of time we are given to do certain segments of work.

    3. Re:Subject by murr · · Score: 2, Insightful

      One of the major points he made before he left, and somewhat adamantly at that, was that software is so poor in quality nowadays because developers don't really bother to come up with formal proofs of correctness for their programs.

      Evidence that Dijkstra was not particularly in touch with what most software nowadays is about. It's not that it's fundamentally impossible to prove a large program correct, i.e., prove that its postcondition follows from its precondition, but that for many programs, coming up with those postconditions would be an enormous development effort itself.

      Like many mathematicians, Dijkstra seems to have had a somewhat overy optimistic view of the susceptibility of mathematical reasoning to bugs in itself. I believe that in the general case, the proof for a program will be larger than the program itself, and will be written in a language that is more complex, has poorer abstraction capabilities, and less machine support than the programming language of the program. It would stand to reason that the proof would have at least as many bugs as the software.

    4. Re:Subject by notfancy · · Score: 2, Insightful

      Forgive me if you find me rude, but offhand dismissal without cogent arguing really taxes my patience.

      Asides from it being perposterous to expect all the developers in the world to write formal proofs for their programs,

      Why would that be so, exactly? Dijkstra was especially vocal against this "can't do" attitude. I don't ask for a compelling argument, just for a reasonable one.

      this statement is at best a wild assumption. He is proposing that the lack of use of a particular (his) potential solution to a problem is the root cause of the problem.

      That's true, but how exactly is that bad? He believed that his method is effective with a passion bordering on mania. Again, if you have alternative explanations for the problem that are reasonable, I'd love to hear them.

      Also, I've got to doubt that formal proofs would be worth nearly the tradeoff in terms of time. If you think about it, a program is itself akin to a proof of correctness. If a coder makes a mistake in his initial code, it seems likely he will repeat that error in a formal proof. Peer review could improve the failure rate, but that is a whole nother ballgame.

      First off, I think that trading thinking time for debugging/QA testing time is a definite savings (i.e., it makes sense from an economics point of view). Secondly and regarding repeated mistakes, yes and no. Yes you can err in the proof. However, in my experience, errors in a proof feel very different to errors in a program. There's a little voice in your head telling you: "can't be, can't be" and it's not until you go back and recheck your proof and you find your errors that it would rest.

      Anecdotal evidence is no evidence at all, I know, so I offer the following argument: consider the proof and the code as two different embodiments of the same solution; doing it twice cuts the probability of errors (not trivial, fifteen-second-to-spot mistakes, but hard errors) by half.

      Another argument for is that should an error remain, it's easier (i.e., mechanical) to check the proof; if the code is annotated with the proof steps, it's natural to check for agreement.

      I'm a convert; I've found errors in my code that never surfaced in five years of heavy usage but were nonetheless there, just by employing (very simple) formal reasoning. You don't need to acquire much knowledge (a very good grasp of logic; a moderate one of elementary integer functions like floor, minimum and maximum; a modest one of number theory) but you need constant practice to change mindsets.

      Eighty percent of code is, allow me a loaded word, "trivial" in the sense that yes, you could have pointer manipulation bugs, a reversed condition in a loop, whatever; but for the twenty percent of remaining code, stopping and pondering about the problem makes the road down towards the solution considerably smoother.

  28. Your logic is outstandingly poor by Morgaine · · Score: 5, Insightful

    (1) He obviously can't tell the difference between pure and applied mathematics and

    That conclusion is not obvious. Given that the real world introduces complications that can be ignored in the world of pure mathematics, his (presumed) premise that "if applied is hard, the weaker might better stick with pure" makes logical sense.

    (2) How come all the loser mathematicians who can't hack it end up becoming programmers?.

    Both of your premises of "loser" and "can't hack it" are just some sort of pejorative that mean nothing in practice if you're trying to make a logical argument, and the "end up becoming programmers" is patently false. So the statement is just plain empty of value.

    I've never had much respect for Dijkstra. I have even less now.

    Well, as a personal statement of your dislike for someone, it requires no rational justification and hence cannot be faulted. Whether others will feel a consequent lack of respect for your own self as a result is hard to say, but it's pretty safe to assume that they won't be impressed by your ability to reason.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
  29. Re:Is Dykstra still relevant today? by the_2nd_coming · · Score: 2, Interesting

    as you can all see people, this is a great example of the diffrence that exists between a person who knows how to program, and a person who studies Computer Science.

    --



    I am the Alpha and the Omega-3
  30. Ummm... Not so much. by Pii · · Score: 5, Informative
    While I'm glad to see someone mentioning OSPF (Which assigns a numerical value to each link within an area based on the available bandwidth, and determines best path by applying the Djikstra algorithm... This is also how Spanning-tree Protocol (802.1d) functions.), it's not how traffic is routed on "The Internet."

    The Internet uses Border Gateway Protocol (BGPv4), which is a Path-Vector routing protocol. OSPF is a Link-State routing protocol.

    OSPF is considered an IGP (Interior Gateway Protocol). It can be used within an autonomous system, but has no place in determining path selection for traffic between automonous systems.

    As far as IGPs go, there's only one that would be capable of handling the routing table for the entire Internet, and it's not OSPF. IS-IS, Intermediate Syetem to Intermediate System, is another Link-State protocol developed by the OSI during the same period when OSPF was being developed.

    They share a lot of similar features, and address all of the same shortcomings inherent to Distance-Vector routing protocols (RIP, IGRP). You can actually redistribute the full Internet routing table from BGP into IS-IS, and it will handle the strain.

    Aside from the ability to handle astronomically large routing tables, IS-IS has one additional feature that sets it above OSPF: No requirement for a single backbone area (Area 0, in OSPF speak).

    OSPF is not particularly well suited to "meshy" environments, due to the need for a single, clearly defined backbone area (In OSPF, all traffic between non-backbone areas must traverse Area 0). IS-IS alleviates this requirement. There can be multiple Inter-area paths, which can be very useful in a complex network.

    Of course, the pool of IS-IS savvy network engineers is far smaller than that of the OSPF disciples, so you don't see it in use very often. The exception is in the service provider space. Big ISPs, and Backbone Carriers frequently utilize IS-IS when an IGP is called for, notably for it's ability to handle large routing tables.

    (Don't get me wrong... I'm a fan of OSPF, but much like the programmer folks like to say, "It's just a tool in the toolbox." The savvy network engineer will utilize the Routing Protocol which best suits his requirements (In some cases he'll use more than one), just as the savvy programmer with utilize the programming language that best suits his requirements.)

    In summary:

    • Djikstra Good.
    • Dijkstra Algorithm Good.
    • OSPF Good.
    • OSPF != Internet Routing.
    • BGPv4 = Internet Routing.
    • IS-IS Good.
    • IS-IS > OSPF.
    • Routing Protocol Selection every bit as important as Programming Language Selection.
    • Pii = Nitpicky Pontificator.
    --
    For those that would die defending it, Freedom
    has a sweet taste that the protected will never know.
  31. Suggested reading by Oscaro · · Score: 2, Interesting

    I loved this one. The wolf-goat-cabbage problem will never be the same again.

  32. aper�u by mausmalone · · Score: 3, Funny
    (don't miss EWD 666: "A problem solved in my head," which contains the endearing aperçu: "Goldbach's Conjecture -- I had never thought that I would ever use that!")


    The Fish says aperçu is a french word that means "outline." Stupid fucking Salon elitist fucktards.

    I'm writing obscure french words in an english-language article, thereby ignoring the point of writing it in the first place! I exude a certain je ne sais quoi you cour de merd bourgoise can't approach!
    --
    -=-=-=-=-=
    I'd rather be flamed than ignored.
    1. Re:aper�u by shoor · · Score: 2, Funny

      I'd heard the word schadenfreude, and maybe even seen a definition. But I didn't understand what it meant really until I saw the Simpson's episode where Flanders opens the Leftorium.

      --
      In theory, theory and practice are the same; in practice they're different. (Yogi Berra & A. Einstein)
    2. Re:aper�u by bobbozzo · · Score: 2, Funny

      An english I had in college described it as the feeling you get when the person who passed you and cut you off gets pulled over for speeding. :P

      --
      Nothing to see here; Move along.
    3. Re:aper�u by dr.robotnik · · Score: 2, Funny
      I find it particularly ironic the way the article writer feels the need to use a french word in an english passage, just after quoting the following from Djikstra:

      "I have learned to be very suspicious of ideas I cannot express well in both Dutch and English," he noted, late in life. "As nice as it is to have the union at one's disposal, it is wise to confine oneself to the intersection."


      lol :)
  33. Re: Subscription not necessary by syle · · Score: 2, Insightful
    Whoever modded this up is abusing their points. Whether you agree with him or not about Bush's politics, you can take your pick between (a) troll, or (b) offtopic.

    Notice how I didn't respond to the trolling part? Good. Now, you don't either.

    --

    /syle

  34. I took a class from him at UT in '93 by wingbat · · Score: 5, Interesting
    > he certainly qualified as a curmudgeon. Famously, if he was at a talk and the speaker put up a slide that had more than one color in it, Djikstra would interrupt and ask what the different colors meant. (I actually had an opportunity to see him do that once.)

    He was at UT when I did my master's in CS there, and he was certainly a character. When the speaker walked into the room and saw him on the front row, little beads of sweat would immediately begin to form.

    I actually took a class from him, which had a vague Latin name he translated for us as "whatever I want to talk about". He was quirky and intimidating but friendly and engaging at the same time.

    Some of the interesting things he did:

    He took pictures of each of the students (I think there were 7 of us) to file away somewhere. I guess it helped him remember our names.

    He used a different hand for writing on the chalkboard on alternate days. Lefty-days were sometimes a bit rough. He had broken his right wrist a year or so before, and wanted to ensure he could still function if it happened again.

    The class had no tests and no homework, but featured an open-ended one-on-one "verbal final" at the end of the semester, either in his (large, corner, carpeted, blackboards-on-every-wall) office, or in his home.

    The verbal final featured *me* with those little beads of sweat...

  35. Favorite Quote by handy_vandal · · Score: 3, Interesting

    "I would therefore like to posit that computing's central challenge, viz. 'How not to make a mess of it', has not been met. On the contrary, most of our systems are much more complicated than can be considered healthy, and are too messy and chaotic to be used in comfort and confidence. The average customer of the computing industry has been served so poorly that he expects his system to crash all the time, and we witness a massive worldwide distribution of bug-ridden software for which we should be deeply ashamed."

    E.W. Dijkstra: The end of Computing Science?
    Austin, 19 November 2000

    --
    -kgj
  36. 'Tif true, indeed, good fir! by BorgCopyeditor · · Score: 2
    Asimov has described this brilliantly in one of his novells. Read "Profession". It is thy best novell he ever wrote.

    Then, af thou haft shewn, I muft fue hif Aff off for Violation of Copieright. And thou art correct, fir, it if indeed my beft Novell.

    --
    Shop as usual. And avoid panic buying.
  37. It is and isn't Mathematics by dunham · · Score: 2, Interesting
    "Computer Science" is a very wide ranging discipline, including people who do software/hardware engineering (as you describe), people who do mathematics (type theory, process algebras, ...), and people who do science (propose hypothesis, make software/hardware as experiments, measure results, analyse, repeat).

    In each branch of comp sci, you'll find people who will tell you that the others "are not computer science", but IMHO they all are real and useful aspects of the discipline.