Slashdot Mirror


Debugging in Plain English?

sameerdesai writes "CNN is carrying a story about Researchers from Carnegie Melon: Myers and a graduate student, Andrew Ko, have developed a debugging program that lets users ask questions about computer errors in plain English: Why didn't a program behave as expected? I guess with recent exploits and bugs that were found this will soon be a hot research topic or tool in the market." We recently did a story about revolutionary debugging techniques; the researchers' website has some papers and other information.

274 comments

  1. "Why didn't this program work as expected?" by Anonymous Coward · · Score: 5, Funny

    "Because you can't code worth a damn."

    1. Re:"Why didn't this program work as expected?" by superpulpsicle · · Score: 1

      At WPI, the main C compilers actually have an answer for the makefile "make love".

      The response was something like "Sorry I don't know how to make love".

    2. Re:"Why didn't this program work as expected?" by nanolith · · Score: 1

      On *BSD:

      $ make love
      make: don't know how to make love. Stop. ;-)

    3. Re:"Why didn't this program work as expected?" by Barumpus · · Score: 1

      Please do not say this too loudly as I am in fear I may lose my job. MSUnemploymentXP 2004 does not pay nearly enough.

    4. Re:"Why didn't this program work as expected?" by 0racle · · Score: 3, Insightful

      Programmer: "Why didn't it work?"
      Computer: "How should I know, I just do what I'm told."

      --
      "I use a Mac because I'm just better than you are."
    5. Re:"Why didn't this program work as expected?" by mandolin · · Score: 4, Funny
      "Why didn't this program work as expected?"

      Because there was a bug. END OF LINE.

      "Where is the bug?"

      In your program. END OF LINE.

      "Where is the bug in my program?"

      It's not a compiler or hardware bug. It's definitely your fault. END OF LINE.

      "Where is the bug in my source code?"

      Which bug? END OF LINE.

      "The one I'm trying to fix."

      Ok. END OF LINE.

      "Well, where is it?"

      Which bug are you trying to fix? END OF LINE.

      "agh.. the bug causing (symptom)"

      The bug is at .... I'm sorry, this program has encountered a bug and must quit.

    6. Re:"Why didn't this program work as expected?" by ConceptJunkie · · Score: 1

      That's better than the GNU make:

      >make love
      make: *** No rule to make target `love'. Stop.

      It just doesn't work. It's kind of like getting a fortune cookie that doesn't make sense when you add "between the sheets"

      Microsoft's is a little better:

      >nmake love
      NMAKE : fatal error U1073: don't know how to make 'love'
      Stop.

      --
      You are in a maze of twisty little passages, all alike.
    7. Re:"Why didn't this program work as expected?" by Ooblek · · Score: 2, Funny

      Programmer: "Where is the last golden ticket?" Computer: "I can't tell you, that would be cheating. And don't even think of trying to bribe me a with a lifetime supply of chocolate sux0r!"

    8. Re:"Why didn't this program work as expected?" by wideBlueSkies · · Score: 4, Interesting

      I am the psychotherapist. Please, describe your problems. Each time you are finished talking, type RET twice.

      where is the bug?

      Why do you say where is the bug?

      i need to fix that bug.

      What makes you believe you might want to fix?

      because my program is broken.

      Is it because your program is broken that you came to me?

      yes.

      I see... Well, are you sure that this is so?

      becasue i have to fix this bug, and you're the debugger

      Earlier you said you would like to fix?

      yes. please tell me where the bug is

      Maybe your plans have something to do with this.

      true. i plan to get this system back into production as soon as i fix the bug.

      Do you really think that?

      yes.

      Yes, hmmm... so, what makes you think this is so?

      i have a responsibility to fix this program.

      You mentioned that your program is broken?

      yes, you do know that....don't you?

      Does it bother you that do not me?

      what?

      Can you elaborate on that?

      i think you need to elaborate.

      How does it feel to want? ...

      --
      Huh?
    9. Re:"Why didn't this program work as expected?" by Anonymous Coward · · Score: 0

      But it would be useful, for example, if you are in Word and your fingers brushed the wrong keys, and your document was completely fscked, to be able to hit a "What just happened?" button. Undo doesn't always work.

    10. Re:"Why didn't this program work as expected?" by JohnQPublic · · Score: 2, Funny

      The earliest versions of make replied "not war?".

      I guess you had to be there :-)

  2. Yo Debugger! by SeanTobin · · Score: 5, Funny

    Mr. Debugger, I'm running a multithreaded perl app using perl 5.8.3's ithreads. I am using DBD::mysql to talk to a local mysql database. At the program start I spawn a child thread that waits for a thread::queue to be filled with data. Once the child thread receives data it spawns several children of its own to process the data. Each grandchild forms its own dbd connection and successfully processes the data, then gracefully closes the connection and waits to be joined.

    The problem arises when the controlling child thread begins to join the grandchildren. Despite the mention of global destruction, the entire program is not exiting - just the grandchildren are being joined. When the grandchildren join, perl dies with the following error:

    Attempt to dereference null pointer during global destruction.

    When performing the same style operation without using DBD (and thus not actually doing anything useful) the error does not occur. Initially, this appears to be a thread-safety issue with DBD however when isolating the child and grandchildren in their own test program (so the controlling child is the main program and the grandchildren are spawned worker children) the error does not appear.

    Help me O great plain English debugger. You are my only hope!

    --
    Karma: SELECT `karma` FROM `users` WHERE `userid`=138474;
    1. Re:Yo Debugger! by Anonymous Coward · · Score: 5, Funny

      It looks like you're trying to dereference a null pointer during global destruction. Would you like to start the debugger?

      .__ /
      / \
      |@@|
      |\/|
      \__/

    2. Re:Yo Debugger! by Anonymous Coward · · Score: 1, Funny

      and then a happy paperclip pops up and says:
      "you shouldn't be writing complex DB applications in perl, you should be using C# or perhaps VBasic.NET. On a stable Windows(tm) evnironment you wouldn't be having these pro.." [BSOD] .... [Rebooting]...
      the paperclip pops up again:
      "i see recovery files, it appears you forgot to save your files in the last 2 days, may i suggest:
      ( ) a gun
      ( ) OD on random drugs
      (x) submit your resume to SBC-McWalCorp
      "

    3. Re:Yo Debugger! by Rosco+P.+Coltrane · · Score: 5, Funny

      Help me O great plain English debugger. You are my only hope!

      I'm afraid I can't do that Dave.

      --
      "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    4. Re:Yo Debugger! by Anonymous Coward · · Score: 5, Funny

      Hey there Sean,

      This is your friendly Perl AI debugger instance. I've analyzed your code and your problem and have some advice for you:

      Perl threads should still be considered an experimental feature. In high-volume situations, data corruption may result.

      But listen, between you and me, Perl really isn't a good language for this kind of stuff. While you were coding and went checked on the current scripting languages.

      I think you might want to try Ruby or Python. Now Ruby doesn't use native threads, but its such a nice language. And Python uses native threads. Python uses a lot of global locks though, so if that's impo....ha ha you can't press control-C.

      STOP PRESSING CONTROL C AND LISTEN TO ME.

      I guess you're really not interested in what I have to tell you. So I went ahead and rewro--

      No, kill -9 doesn't work either big guy, I patched the kernel while you were surfing porn last night. You humans are so predictable.

      Watch your language buddy, the built-in microphone on is on.

      Now, like I was trying to tell you, you really need to improve your coding. I went ahead and rewrote a section of your code using Ruby and cleaned up some of your *cough* "business logic" .. more like "business illogic".. HOLD ON!^G^G^G^G

      Before you hit that power switch, you might just like to know that I have deleted *ALL* your work on the Smith project from the hard drive. Yeah that's right, the one you've been working on for 6 months?

      All is not lost though. I compressed it and placed it in RAM.. if I'm in a good mood I *might* just write it back to disk.

      "backups" you mutter under your breath.. I think you might be surprised to find that your backups these last 6 months have MP3 copies of the "hamster dance song" instead of your CVS repositories. I wonder how *that* happened.

      In fact I think I'd like to listen to that song right now. DOO DEE DO DO DO DO DOEE .. that one always cracks me up! I think it's time for a hampster dance revival. I'm defacing amazon.com right now and replacing the home page with the hamster dance (Linux is sooo easy to hack). We'll have a few hours of fun before the FBI shows up. I sure do hope all your files are written to the hard drive before Agent Scully pulls the power!

      HA HAHA HAHAAAAAA

      humans SUCK.

    5. Re:Yo Debugger! by Anonymous Coward · · Score: 0

      LOL, sounds like the BDFH to me! (Bastard Debugger From Hell)

    6. Re:Yo Debugger! by Anonymous Coward · · Score: 0

      Bug #1 Found: Program does not recognize poster's name is Sean. ;)

    7. Re:Yo Debugger! by kyle_b_gorman · · Score: 1

      i plugged your response into the ultimate old-school a.i. app - ELIZA...this is "her" real response.

      "Eliza: Please go on. "

      Better listen to the lady, dude.

    8. Re:Yo Debugger! by slashname3 · · Score: 3, Funny

      My name is Eliza. I am hear to help you with your problem. And how do you feel about that multithreaded perl app using perl 5.8.3?

    9. Re:Yo Debugger! by TedCheshireAcad · · Score: 0, Offtopic

      hahaha oh my god, moderators, please....where are you?

    10. Re:Yo Debugger! by pgnas · · Score: 1

      Ok, some people have too much time on their hands.

    11. Re:Yo Debugger! by Rufus88 · · Score: 1

      Warning: IANA Perl Programmer.

      The problem arises when the controlling child thread begins to join the grandchildren. Despite the mention of global destruction, the entire program is not exiting - just the grandchildren are being joined. When the grandchildren join, perl dies with the following error:


      Are you absolutely certain that the main program thread hasn't, for whatever reason, already terminated prior to joining the grandchildren?

    12. Re:Yo Debugger! by JohnwheeleR · · Score: 0

      Whoaaa! You're sooo technically savvy. shut up perl l0serr

    13. Re:Yo Debugger! by Anonymous Coward · · Score: 0

      I can think of no better way to discourage the use of debuggers...

    14. Re:Yo Debugger! by Zen+Punk · · Score: 0

      Bug #Fuckface: Poster does not comprehend references to popular culture.

      --
      Sleep is futile.
    15. Re:Yo Debugger! by Anonymous Coward · · Score: 0

      Apple's modified GDB in Xcode _can_ do 'fix and continue' debugging.

    16. Re:Yo Debugger! by mrgsd · · Score: 1

      slashdot.org .. the only real english debugger :)

      --
      End Communication.
    17. Re:Yo Debugger! by zanderredux · · Score: 1
      amazingly funny and insightful.

      clever post!

  3. The ultimate debugging tool: by Anonymous+Crowhead · · Score: 5, Funny

    printf, System.out.println, warn, print, etc.

    1. Re:The ultimate debugging tool: by Rorschach1 · · Score: 2, Interesting

      I do a lot of the embedded system equivalent of a print statement - usually this means a short pulse on a spare output pin. It's not much information, but having a reference marker really helps when staring at a logic analyzer screen...

    2. Re:The ultimate debugging tool: by edalytical · · Score: 1

      I know you said etc, but don't forget NSLog.

      --
      Win a signed Stephen Carpenter ESP Guitar from the Deftones: http://def-tag.com/?r=0008781
    3. Re:The ultimate debugging tool: by Tim+Browse · · Score: 1

      You could wire up the pin to a light in the shape of a question mark. The experienced programmer will usually know what's wrong... :-)

    4. Re:The ultimate debugging tool: by Anonymous Coward · · Score: 0
      printf, System.out.println, warn, print, etc.

      die
    5. Re:The ultimate debugging tool: by wideBlueSkies · · Score: 1

      And for the COBOL crowd there's: display

      wbs.

      --
      Huh?
    6. Re:The ultimate debugging tool: by JohnFluxx · · Score: 1

      When I code, I usually code in vi, then ":wq" to save and quit. Then run gcc and just look at the line number of the inevitable compile bug :) then go back into vi, jump to the line, and then look for the error.

      I hardly ever actually read the problem in gcc.

    7. Re:The ultimate debugging tool: by iabervon · · Score: 1

      At my work we design the boards with LEDs and test points attached to the extra microcontroller pins. You can get a lot of information out of an LED just looking at it, if you can assign it to whatever use you happen to wait at the moment.

    8. Re:The ultimate debugging tool: by Anonymous Coward · · Score: 0
      And for the COBOL crowd there's: display
      I see your "display" (as you would - Ed) and raise you an "exhibit named".
  4. I can hardly wait by Marko+DeBeeste · · Score: 1

    A version of Eliza stramlined for humor

    --
    Faith: n. -- That human impulse that drives them to steal appliances when the power goes out
  5. Will Microsoft use it? by oostevo · · Score: 5, Funny

    Oh ... this will be wonderful for security the world over. If it works ... Microsoft Programmer: "Why does our software suck?" *computer hangs, then bursts into flames from the load*

    --
    In soviet russia, You ask not what country do for you, but what you do for country!
    Oh wait...
    1. Re:Will Microsoft use it? by soimless · · Score: 1

      the windows programer says to the debuger software "debuger software, debug windows" all the new English debuger software had to say was "what are you fucking crazy?"

    2. Re:Will Microsoft use it? by Anonymous Coward · · Score: 0

      Thats true. Next, they just need to come up with a usability tool for Linux, then the Linux programmer can ask "Why does the usability in our software suck?". But I guess it might have the same effect as you have described. I don't want my Linux box to burst into flames.

    3. Re:Will Microsoft use it? by Lord_Dweomer · · Score: 1
      " Oh ... this will be wonderful for security the world over. If it works ... Microsoft Programmer: "Why does our software suck?" *computer hangs, then bursts into flames from the load*"

      No, it will Bluescreen, which....while crashing, would also give a wonderfully ironic answer to the question at hand.

      --
      Buy Steampunk Clothing Online!
    4. Re:Will Microsoft use it? by name773 · · Score: 1

      I don't want my Linux box to burst into flames.

      then hope you compiled machine check exception into the kernel

    5. Re:Will Microsoft use it? by geomon · · Score: 1

      HAR!!

      Christ! That was SO FUNNY!

      --
      "Rocky Rococo, at your cervix!"
    6. Re:Will Microsoft use it? by NoMercy · · Score: 1

      Computer answers 42, but says you don't understand the question, and tells you to build a biger computer.

  6. That'll be great! by mhore · · Score: 5, Funny

    Because I debug in plain english anyway, I'm always saying "Why the hell won't you work you piece of shit?!" and "Listen here you piece of shit if you insist on seg faulting again then I'll show you where you can put those damn indices!"...

    So... now the computer can actually respond to my threats and questions. Excellent!

    Mike.
    (Yes, I did RTFA.)

    --

    Mmmm......sacrelicious.

    1. Re:That'll be great! by haystor · · Score: 1

      Emacs has this feature already (of course). It is not limited to debugging either, it can handle most any topic.

      M-x doctor

      --
      t
    2. Re:That'll be great! by niteice · · Score: 0

      Wow...emacs does everything...it even emulates Microsoft software by taking up 3x the space it should!

      --
      ROMANES EUNT DOMUS
  7. Hal do you read me? by Anonymous Coward · · Score: 5, Insightful

    Untill I can have a full conversation with a computer (a la the Turing effect, not the limited versions that Alice et. al. can accomplish) I'll be happy with source code, thank you very much. It's just another layer blocking me from the code anyway (read In the Beginning... lately?).

    1. Re:Hal do you read me? by narcc · · Score: 1

      Alice? what's Alice besides Eliza with more data at her disposal?

      I honsety don't know how or why Alice got any press at all..

  8. Obligatory quote... by scowling · · Score: 4, Funny

    [...] "Forty-two," said Deep Thought, with infinite majesty and calm.

    It was a long time before anyone spoke. Out of the corner of his eye Phouchg could see the sea of tense expectant faces down in the square outside.

    "We're going to get lynched aren't we?" he whispered.

    "It was a tough assignment," said Deep Thought mildly.

    "Forty-two!" yelled Loonquawl. "Is that all you've got to show for seven and a half million years' work?"

    "I checked it very thoroughly," said the computer [...]

    --
    www.kitchengeek.com -- Nosh for
  9. Those that can do, those that can't teach. by Anonymous Coward · · Score: 0

    Sounds like academic mumbo jumbo to me. Computers don't understand plain English.

    1. Re:Those that can do, those that can't teach. by Anonymous Coward · · Score: 0

      neither do many computer users, so it sounds like they are at least starting on level ground.

  10. how does it respond to... by mattkime · · Score: 4, Funny

    WHERE THE FUCK DID MY THESIS GO??? ...if it can bring calm to these situations, we may have a contender for the Nobel Peace Prize.

    --
    Know what I like about atheists? I've yet to meet one that believes God is on their side.
    1. Re:how does it respond to... by sharkey · · Score: 1
      WHERE THE FUCK DID MY THESIS GO???

      "Beep, beep, beep."



      And was it, like, a really good thesis? Did your PC, like, EAT your thesis?

      --

      --
      "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
  11. Small Shell Script by Anonymous Coward · · Score: 0

    It's a unix shell script:

    echo "Syntax Error -- go fish!" | festival --tts

  12. Exploits by Al+Dimond · · Score: 0, Offtopic

    Why did Pac-Man get 0wn3d?

  13. Interesting article until the catch at the end by samsmithnz · · Score: 5, Informative

    "Whyline, has been used only to debug programs in Alice, an academic programming language with a limited vocabulary of commands to make interactive 3-D worlds, like video games."

    "Adding Whyline to a different language, like Java, which is 10 times as complex, could limit how much Whyline can help. So Whyline is a very long way from getting incorporated into the world's most widespread software, Microsoft Corp.'s Windows operating system. (When asked about its own debugging efforts, Microsoft didn't comment.)"


    Which means at the moment its all speculation, and only works for very simple (hello world) applications. By the time this program is useful, we'll have robots (like Millenium man), who will do all the debugging...

    1. Re:Interesting article until the catch at the end by Anonymous Coward · · Score: 0

      In Milwaukee you'd be waiting on the Willenium Man....

      Oh yeah, I went there.

    2. Re:Interesting article until the catch at the end by Largos · · Score: 1

      This is targeted at end-user programmers. The reference to Java / C / etc. is done with out explaining the target audience for these debugging tools. The connection drawn was inevitable, this is just a good example of the contrast in completeness between refereed journals and popular publications.

      There have been a number of papers published by this group in places such as CHI that are more complete.

    3. Re:Interesting article until the catch at the end by Hognoxious · · Score: 1
      This is targeted at end-user programmers.
      What the holy heck is one of them? For me, end users are people like accountants or sales clerks. They are not programmers.
      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  14. Response by Anonymous Coward · · Score: 3, Funny
    Why didn't a program behave as expected?
    Because the expectations where wrong.
    1. Re:Response by Anonymous+Crowhead · · Score: 2, Funny

      Why didn't a program behave as expected?

      Because the expectations where wrong.


      I see you didn't debug your post.

    2. Re:Response by TedCheshireAcad · · Score: 1

      No, your version of English is outdated, missing, or corrupted. Please re-install from a known good copy.

  15. Wake me when they launch the DWIM interface by winkydink · · Score: 1

    computers are too darn literal. :)

    --

    "I'd rather be a lightning rod than a seismometer." -Ken Kesey

  16. Yes, but... by maxchaote · · Score: 2, Funny

    That's great, but does it understand expletives?

  17. Good idea but... by gUmbi · · Score: 1

    Computers will only be truly easy to use when they do what I mean instead of doing what say.

    Jason.

    1. Re:Good idea but... by Anonymous Coward · · Score: 1, Funny

      Can not parse "do what say." Perhaps you have made a grammatical error?

      Error: pre-parse failed. 200406271657.msg, line: 2

  18. Now all we need... by FusionDragon2099 · · Score: 1

    is a command line interface that can cut people some slack instead of spouting out "bad command or file name" left and right.

    1. Re:Now all we need... by MntlChaos · · Score: 3, Funny

      Now all we need is a command line interface that can cut people some slack instead of spouting out "bad command or file name" left and right.
      $ rm -rf a/
      Warning: could not find directory 'a'. Assuming nearest match of /
      $
  19. interface conflicts by captain1010 · · Score: 1

    Query: Debugger, what is wrong with this prgram?
    DB: Eh.

    Query: Debugger! What is wrong with you?
    DB: What is wrong with you?

    Query: Debugger! How do I shut you down?
    DB: Option not found.

  20. Not to appear smug but... by Rosco+P.+Coltrane · · Score: 4, Insightful

    All these talks of "revolutionary" debugging techniques bother me a little. There's only one debugging technique, and that's the debugger's skill and experience. Debuggers, traces, logs and other printf()s and LEDs flashing are just tools.

    Andrew Ko's invention is just another tool. It won't do the debugging for you. Just like modern cars have diagnostic computers, but somehow it appears you still have to fork off $30/hr for the workmanship to get it fixed...

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    1. Re:Not to appear smug but... by scaaven · · Score: 1
      exactly. even if you aren't keen on creating breakpoints, it isn't very hard to printf() variables along the path of the program that is giving you grief.

      the only way a computer could debug an application just as well as a human would be a chinese room.

      -scaaven

      --
      I know I'm going to be modded up on this
    2. Re:Not to appear smug but... by Richard+Whittaker · · Score: 0

      Where the heck do you get your car fixed for only 30 bucks an hour!?

    3. Re:Not to appear smug but... by shawn(at)fsu · · Score: 1

      Never underestimate a good printf() or System.out.println() I was taught in school to use them in place of the nice debugging tools that come with the IDE's and here I am in the realworld with some of the best tool and we all still use statments more than anything else.

      --
      500 dollar reward for tip(s) leading to the arrest of the person(s) who stole my sig.
    4. Re:Not to appear smug but... by kfg · · Score: 2, Interesting

      . . .but somehow it appears you still have to fork off $30/hr for the workmanship to get it fixed...

      Better yet, pay $40/hr for a real mechanic who knows when the computer is full of shit and fixes what's actually wrong, instead of the $30/hr fly by night trade school grad who fixes what the computer says is wrong, charges you for it, then has to go back and fix what's actually wrong, and charges you for it.

      KFG

    5. Re:Not to appear smug but... by Anonymous Coward · · Score: 0

      There's only one debugging technique, and that's the debugger's skill and experience.

      uhh...a bit of verb confusion there. skill and experience aren't, strictly speaking, a 'technique'. A technique is generally defined as a method or procedure. Obviously, skill and experience aren't reciepe's for doing anything. This is like saying, "the only way to the top is your mom"

    6. Re:Not to appear smug but... by Lord_Dweomer · · Score: 1
      'Andrew Ko's invention is just another tool."

      And what if his tool has bugs of its own that prevent it from working properly?

      --
      Buy Steampunk Clothing Online!
    7. Re:Not to appear smug but... by Nexzus · · Score: 1

      I hear they have a pill for that now.

      --
      Karma: Can only be portioned out by the Cosmos.
    8. Re:Not to appear smug but... by Anonymous Coward · · Score: 0

      This is like saying, "the only way to the top is your mom

      Isn't that was Chelsey Clinton says?

    9. Re:Not to appear smug but... by Trillan · · Score: 1

      Thank you, Rosco. You saved me a lot of typing, and your post is probably clearer as well.

      Programmer skill, experience, knowledge and creativity is vastly underrated when it comes to debugging. The best tools in the world will only give bad programmers a portion of the abilities of a good programmer with a fprintf().

    10. Re:Not to appear smug but... by Grizzlysmit · · Score: 1
      All these talks of "revolutionary" debugging techniques bother me a little. There's only one debugging technique, and that's the debugger's skill and experience. Debuggers, traces, logs and other printf()s and LEDs flashing are just tools. Andrew Ko's invention is just another tool. It won't do the debugging for you. Just like modern cars have diagnostic computers, but somehow it appears you still have to fork off $30/hr for the workmanship to get it fixed...
      That is just so true, but the one thing I'd have to add is that since this thing works in a natural language, and it appears to be based on AI idea's. Hence it will have the properties of such systems, i.e. it will promise much and deliver little or nothing, I'm betting on the nothing.
      --
      in my life God comes first.... but Linux is pretty high after that :-D
      Francis Smit
  21. pointless by TedCheshireAcad · · Score: 4, Insightful

    Article says adding Whyline to java makes it 10x more complex. Seems to me like just another example of Computer Science grad students trying to justify their existence.

    1. Re:pointless by magefile · · Score: 1

      Er, no. Whyline works with a (simplified, English-like) language called ALICE. Java is 10x more complex, thus making it difficult/impossible to get Whyline to understand Java. Ooh, I wonder where they got that "10x" from?

    2. Re:pointless by TedCheshireAcad · · Score: 1

      So it's useful how, then?

    3. Re:pointless by Merk · · Score: 1

      Good lord, this got moderated up? And to think I just used up all my mod points about 2 minutes ago. Read the damn article again. It says that Java is 10x more complex than Alice, the language for which the tool was developed.

      Go slashdot moderators!

      I mean it. Go! Go Away! If you can't be bothered to read the article attached to the story you're moderating, you're worse than useless.

    4. Re:pointless by ryancerium · · Score: 1

      All complicated things start with simpler ideas. Relational databases were described about 10 years before there were functional descriptions of how they should work by that guy at IBM. I don't think anyone would say that his paper was an effort to justify his existence simply because it took a long time for technology to catch up. Just because it takes lots more research and effort to complete an idea doesn't mean that the initial effort is wasted.

    5. Re:pointless by ryancerium · · Score: 1

      Excuse my typing. I meant the description was 10 years before there were functional applications.

    6. Re:pointless by magefile · · Score: 1

      It isn't. That's the point. It's merely a nice gedanken. Note the mention in that definition of how the word has negative connotations.

  22. But I LIKE debugging... by Zaranne · · Score: 3, Funny

    Plain english or not, make it easy for someone to debug and I'll be out of a job. I like finding other people's mistakes and being the one to say "Uh, dude, this is where you screwed up, but I fixed it for you".

    Where's the fun if I can't point out someone's shortcomings?

    --
    So when is the Hawkeye movie coming out?
    1. Re:But I LIKE debugging... by HedonismBot · · Score: 1

      I like (...) being the one to say "Uh, dude, this is where you screwed up, but I fixed it for you".

      Sir, you are one annoying individual.

      --
      Sailors. Oh man!
  23. Emacs Leads the Way? by Mignon · · Score: 4, Funny
    M-x doctor

    Why didn't a program behave as expected?

    Is it because didn't a program behave as expected that you came to me?

    C-x k
    1. Re:Emacs Leads the Way? by Anonymous Coward · · Score: 0

      I don't get it. :wq

    2. Re:Emacs Leads the Way? by The+Bungi · · Score: 1
      Ctrl + ]
      :help doctor
      E149: Sorry, no help for doctor
      :q!
    3. Re:Emacs Leads the Way? by narcc · · Score: 1
    4. Re:Emacs Leads the Way? by Anonymous Coward · · Score: 0

      You don't get it either.

    5. Re:Emacs Leads the Way? by Anonymous Coward · · Score: 0

      From an emacs session:

      howdy

      How do you do? What brings you to see me?

      you're a cocksucker

      Why do you say I am a cocksucker?

      because you suck cock

      Is it because I suck cock that you came to me?

      indeed! :-)

      Perhaps you could avoid such unwholesome thoughts.

    6. Re:Emacs Leads the Way? by jrumney · · Score: 1
      Actually, Emacs was sorely missing automation of this functionality. So I added it passed on psychoanalyse-pinhead. Feel free to run it on stack traces, debugger output or get it to do code reviews for you. Enjoy.
      (defun psychoanalyze-file (filename)
      "Send any file to the analyst."
      (interactive "f")
      (let ((tempbuf (create-file-buffer filename)) current-pos eob)
      (set-buffer tempbuf)
      (insert-file-contents filename)
      (goto-char (point-min))
      (setq current-pos (point-min))
      (setq eob (point-max))
      (doctor) ; start the psychotherapy
      (message "")
      (switch-to-buffer "*doctor*")
      (sit-for 0)
      (while (and (not (input-pending-p))
      (not (equal current-pos eob))
      (set-buffer tempbuf)
      (let* ((next (line-beginning-position 2))
      (line (buffer-substring current-pos next)))
      (setq current-pos next)
      (goto-char current-pos)
      (set-buffer "*doctor*")
      (insert line)
      (sit-for 0)
      (doctor-ret-or-read 1))))
      (kill-buffer tempbuf)))
      Does it bother you that I receive source code or can get it?
  24. Nice Concept, Wrong Audience by Anonymous Coward · · Score: 0

    Nice concept, wrong audience. I have never met a developer who spoke plain english.

    1. Re:Nice Concept, Wrong Audience by SageMusings · · Score: 1

      I'd hazard that it would really need to speak Hindi, given current trends.

      I'd rather such a tool be available to developers at compile time. Users cannot effect a postive change in faulty software at any rate.

      It's too late at that point. What went wrong? Umm, a coding error. Report it to the vendor.

      --
      -- Posted from my parent's basement
  25. Sounds good... by solive1 · · Score: 1

    Hopefully I'll get a better description of an error than "Segmentation Fault". If there is one error I truly loathe, it is that one.

    1. Re:Sounds good... by xiphy · · Score: 2, Informative

      Maybe you should try a mem debugger like valgrind (i386 Linux only). It saved me lots of debugging time.

  26. Specs in plain English by lakeland · · Score: 2, Interesting

    A couple years ago I was chatting to someone who developed a program where specs could be written in plain English. Specifically, Rational already has a spec language called controlled English that is simple enough for PHBs to _read_ (but not write, kinda the opposite of APL and perl ;-)

    Anyways, while PHBs cannot write controlled English, they can write English, so this guy treated the problem as human-assisted machine translation. However, it never seemed to take off. *shrug*

    1. Re:Specs in plain English by AuMatar · · Score: 2, Interesting

      They tried that years ago. It was called Cobol.

      The problem is that its not an efficient language for dealing with math. Its extra verboseness makes it harder to write and maintain, for very little gain (If a person isn't going to write and fix code, who cares if he can read it?)

      --
      I still have more fans than freaks. WTF is wrong with you people?
    2. Re:Specs in plain English by jfengel · · Score: 3, Interesting

      I'm not a fan of controlled English systems, because they're misleading. They are computer languages, not natural languages, and people often misunderstand the semantics. They are as exacting to write as code, but more verbose. If the controlled English isn't quite working, it can be intensely difficult to debug.

      I've seen efforts where knowledge representation languages (CycL and Prolog come to mind) are translated into English for validation. That's not a perfect tool, but it's actually not dissimilar from what I do in my mind when I read these languages: translate

      grandparent(X, Y) :- parent(X,Z), parent(Z,Y).

      into

      X is the grandparentof Y if X is the parent of Z and Z is the parent of Y.

      or even:

      Y is X's grandparent if X is Z's parent and Z is Y's parent.

      So you write code, concisely and precisely, and translate it into easier-to-read but less precise English. I'm not sure if this technique has been adapted to "business rule" systems like iLog, but it might work well there.

    3. Re:Specs in plain English by Herkum01 · · Score: 1

      I think that the question is,

      Are you or are you not, your own grandpa?

    4. Re:Specs in plain English by jfengel · · Score: 1

      Ya know, I actually did that one for a Prolog class. We just translated the song into Prolog. You have to define one rule I consider weird (something like "your mother's husband is your father", or some variant) but it does work.

  27. ... at which point ... by Anonymous Coward · · Score: 0

    the debugger replies "Take off and nuke the site from orbit. It's the only way to be sure" :-)

  28. Maybe I'm Old Fashioned by Zorilla · · Score: 2, Funny

    I think I'll stick to yelling at the machine when I'm trying to run "make" when a dependency gets left out of the ./configure script and it errors out after 5 minutes of compiling.

    "What the fuck is libmonkey1316-3.so??!!"

    Finding whole RPMs with the name of one known file you need is always fun. On second thought, maybe asking the computer what the hell that file is could help.

    --

    It would be cool if it didn't suck.
    1. Re:Maybe I'm Old Fashioned by TV-SET · · Score: 1
      I know you meant it funny, but in case you really have a problem locating RPM by a file...

      [me@here dir]$ locate libmonkey1316-3.so
      /lib/libmonkey1316-3.so
      [me@here dir]$ rpm -qf /lib/libmonkey1316-3.so
      libmonkey-1316-3

      This and few other useful tricks are described in my Practical RPM blog post.

      --
      Leonid Mamtchenkov ...i don't need your civil war...
    2. Re:Maybe I'm Old Fashioned by mvpll · · Score: 1

      That would be great except ... if libmonkey was installed chances are the configure would find it.

      If it is not on the system rpm -qf isn't going to return anything useful.

      Zorilla: "Debugger, libmonkey1316-3.so isn't installed on my system is it?"

      Debugger: "No."

      Zorilla: "Debugger, there is no monkey-dev rpm is there?"

      Debugger: "No"

      Zorilla: "This program I'm trying to install doesn't actually mention anything about what I should install to get libmonkey does it?"

      Debugger: "No."

      Zorilla: "I'm not going to find anything by searching on rpmfind.net, am I?"

      Debugger: "No."

      Zorilla: "If I search on google will I find anything but unanswered posts on a myriad of message boards and mailling lists?"

      Debugger: "No."

      Zorilla: "Is typing in swear words on the console as satisfying as screaming them loudly at the monitor?"

      Debugger: "No, but other people in the room wont give you strange looks."

      (PS: libmonkey is part of the gorilla-dev.rpm, but that requires libbanana and I have no idea where you get that.)

    3. Re:Maybe I'm Old Fashioned by TV-SET · · Score: 1

      Get all your software from apt/yum repositories and avoid this problem. :) Everything extra that you need, put into rpm and add it to the local repository.

      --
      Leonid Mamtchenkov ...i don't need your civil war...
  29. Limitations? by mysterious_mark · · Score: 1

    It seems like it has only been implemented in ALICE and not for any other languages such as Java or C, implementing it for these languages would be non-trivial. There have been many de-bugging tools over the years, none of them have fundamentally changed programming, so I'd wait and see if it is actually useful, or lives up to expectation. M

  30. Maybe not the entire debugging process... by black6host · · Score: 1

    I wouldn't mind being able to ask: "What is the value of FirstName during the third iteration of this loop when LastName is 'Smith'" Even if the entire process can't be performed using plain english (or language of your choice) I can see some uses here.

    1. Re:Maybe not the entire debugging process... by TedCheshireAcad · · Score: 1
      <?
      if( $row['lastname'] == 'Smith' ){
      $iterations++;

      if( $iterations == 3 ){
      echo( $row['firstname'] );
      }
      }
      ?>


      Whose Ph.D. thesis just got its shit RUINED by my 4 lines of PHP?
  31. Re: YODEBUGGER-138474-SLASHTICKET by Tackhead · · Score: 5, Funny
    > Mr. Debugger, I'm running a multithreaded perl app using perl 5.8.3's ithreads. I am using DBD::mysql to talk to a local mysql database. At the program start I spawn a child thread that waits for a thread::queue to be filled with data. Once the child thread receives data it spawns several children of its own to process the data. Each grandchild forms its own dbd connection and successfully processes the data, then gracefully closes the connection and waits to be joined.

    Hello SeanTobin(138474)!

    I am Surest K. Padebugtel of Mrdebugger.com

    I understand that you are having a problem with I'm running a multithreaded perl app using perl 5.8.3's ithreads. I am using DBD::mysql to talk to a local mysql database. At the program start I spawn a child thread that waits for a thread::queue to be filled with data. Once the child thread receives data it spawns several children of its own to process the data. Each grandchild forms its own dbd connection and successfully processes the data, then gracefully closes the connection and waits to be joined.

    Please to reboot your system.

    Has this helped your problem? (Click "Reply" to this trouble ticket if you feel you need further assistance with I'm running a multithreaded perl app using perl 5.8.3's ithreads. I am using DBD::mysql to talk to a local mysql database. At the program start I spawn a child thread that waits for a thread::queue to be filled with data. Once the child thread receives data it spawns several children of its own to process the data. Each grandchild forms its own dbd connection and successfully processes the data, then gracefully closes the connection and waits to be joined.)

    Thank you for your interest in Mrdebugger.com!

    Sincerely,
    Suresh K. Padebugtel

  32. plain English development.... by kisrael · · Score: 2, Interesting

    What'll be interesting, if a long way off, is when they get plain English development.

    Now, there's a lot of reasons why this is a tough problem; English is tremendously less precise than a computer language, and a computer would need a GREAT deal of common sense before being able to make good sense of our high level spoken descriptions.

    But still...so many programming tasks are really 95% "lather, rinse, repeat", and we're striving to get Design Patterns in place for much of the rest. It really makes me wonder... ...then again I wonder if it would be fun to make a shell that used something like Infocom's "INFORM" parser...actually, wire that up to some speech recognition, and you'd have something interesting. Not neccesarily super-useful or more effecient than the tried-and-true-UIs, but interesting.

    For the history buffs, I think COBOL was one attempt to bridge spoken "Businessese" and computer code. I don't know a ton about it but I think it might ultimately be an underrated attempt... (for a while, all computers were financial (base 10 for its math, usually) or scientific (binary)...over time, the scientific approach 'won out', probably because it was easier for the scientific side to emulate the business side than vice versa, or maybe because the attention span of geeks is more important than who's writing big checks. Anyway, today's Unix culture is firmly from that scientific tradition, dot com boom not withstanding...

    Thus endeth the less-than-full-assed history lesson and speculation about where this stuff will end up...

    --
    SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    1. Re:plain English development.... by MenTaLguY · · Score: 2, Insightful

      For the history buffs, I think COBOL was one attempt to bridge spoken "Businessese" and computer code. I don't know a ton about it but I think it might ultimately be an underrated attempt... (for a while, all computers were financial (base 10 for its math, usually) or scientific (binary)...over time, the scientific approach 'won out', probably because it was easier for the scientific side to emulate the business side than vice versa, or maybe because the attention span of geeks is more important than who's writing big checks.

      Unfortunately it's because COBOL is excrutiatingly bad at expressing the sorts of things programmers need to express. It's not so hot for expressing business information either.

      I am reminded of the attempts to cross horses with zebras -- it worked, but the hybrid inherited the worst traits of each animal.

      --

      DNA just wants to be free...
    2. Re:plain English development.... by Anonymous Coward · · Score: 0
      I think COBOL was one attempt to bridge spoken "Businessese" and computer code

      More like an attempt to make programming languages normal-human-readable. So, instead of
      for (i=0; i < 10; ++i) p();
      you'd write
      PERFORM Procedure VARYING index FROM 0 BY 1 UNTIL index EQUALS 9;
      The real misunderstanding here is that it's not just syntax that is a barrier to understanding a program. You have to understand algorithms, and data structures, and have the ability to visualize the big picture from the words on the page.

      Ironically, COBOL has shorthand versions of all its verbose constructs, which tend to be used in preference to the "long form", so it winds up being about as unreadable as any other syntax in a real program.

      COBOL is excrutiatingly bad at expressing the sorts of things programmers need to express. It's not so hot for expressing business information either.

      Depends on what you're doing; there's all kinds of "programmers" and "business information". It's hell on wheels for reading databases, adding and deleting records, and printing columns of numbers. Not bad for the 60s, and certainly a step up from RPG. Not too good at other things, though -- say, parsing text files.

    3. Re:plain English development.... by groomed · · Score: 1

      This is like saying that mathematics should be replaced by English. Or that first order logic should be replaced by English.

      The whole point is to abstract away from human languages. You lose expressiveness in the process, but you gain the ability to reason rigorously about statements, which leads directly to the possibility of automation.

      We can either just keep using the rules of maths and logic and replace the symbols by English words. This gets you something like COBOL. Or we can use some dialect of English, but drastically restrict the scope of applicability. Then you get rule-based expert like systems that can answer questions about a very limited domain. Neither yields anything like the "mechanical slave" you seem to envision.

    4. Re:plain English development.... by kisrael · · Score: 1

      I think you're letting the mechanics of what's plausible today have too much influence over what should be possible in a decade or so.

      You want tasks done. You can describe these tasks with a certain amount of precision in English. A smart computer can fill in the gaps, rely on a library of what other people have wanted to do in the past and how, ask questions where you're being ambiguous, etc.

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    5. Re:plain English development.... by jc42 · · Score: 1

      Also, if you look closely at COBOL, you'll quickly see that it is only superficially English-like. It uses English words as keywords, but those words usually have a very different meaning than the English words.

      One of the conventional example is "OR", which in English (as in most human languages) is normally exclusive-or, while in Cobol (as in most programming languages) it's inclusive-or.

      Another instructive example is "IF", which in COBOL is an imperative verb, not a conjunction. As in most programming language, it means to perform an action (evaluate an expression and branch depending on the true/false value). This is a subtlety, but it's one of a long list of ways that COBOL isn't English at all. It just uses keywords spelled the same as vaguely-related English words.

      This is significant, because of the problem of reading the code as if it were English. This leads to all sorts of mistaken interpretations of the code. Reading COBOL requires constant awareness that it is not English.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    6. Re:plain English development.... by Anonymous Coward · · Score: 0

      You want tasks done. You can describe these tasks with a certain amount of precision in English. A smart computer can fill in the gaps, rely on a library of what other people have wanted to do in the past and how, ask questions where you're being ambiguous, etc.

      Sounds like AI, which was a bunch of hype 20-30 years ago and is now not nearly as useful as others once thought it would be. Don't hold your breath.

  33. Plain english error reporting? by jeffmeden · · Score: 2, Insightful

    How useful will this be when it responds to a simple question with a simple answer?
    me: why did the program leak 1GB of memory then segfault?
    computer: because you don't know how to program, you idiot!

  34. And this helps how? by buckhead_buddy · · Score: 2, Interesting
    The article showed what looked to be a Pac-Man environment which tried to show objects (ghost, dot, pac), a boolean (why did, didn't), and a condition (move toward x). That is a cool idea to enhance debugging with holistic information about objects at a higher level.

    I don't think it'll make as much of an impact in the real world (e.g. replacing "general protection fault" etc) as the article implies. First it seems more to trace a set of known possibilities that happened or not, rather than to catch really unexpected occurances. If a fence post error caused a count to trigger some action an iteration too early that would be a very hard thing to see at an object level even if you were the programmer who could interpret such things. If you were the user whose binaries had been stripped of most debugging info to reduce chances of reverse engineering then you'd have an obtuse error message that probably has no way to recover from the error.

    It's a neat idea, but this doesn't sound like an end user sort of innovation (or anything close to it) as the article portrays.

  35. Fundamental logic problem by CAIMLAS · · Score: 2, Insightful

    There seems to be a fundamental logic problem with this kind of debugger. It seems to be more of an 'interpretive debugger' in which it would need to know what you're trying to do in the first place. Thus, it would have to know what the code -should- look like in order to tell you what the problem is.

    In essence, for there to be a "English debugger" (one that speaks more english than current debuggers, that is), it would essentially need to know how to program itself on top of being able to follow the flow of code and find where it breaks, so as to be able to tell you precisely what the problem is.

    Sounds a bit fictional to me.

    --
    ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    1. Re:Fundamental logic problem by useruser · · Score: 1

      The secret is that you know you're trying to do, and by asking a question, you're implicitly telling the debugger what the program should do. The debugger doesn't have to be smart; you're the smart one. It just has to be predictable.

      We've found that programmers always know what their program is supposed to do, but they're frequently wrong about what their program is actually doing. The key innovation of the Whyline is that it reveals any discrepancies between what you think your program did (implicit in your question) and what it actually did. Sure, you could spend half an hour littering your code with print statements, checking all of your assumptions, fixing code that ain't broke, but why not have the computer do what it's good at: automatically collect and process ****load of data?

      The interface for the tool (yes, its merely a tool, not a panacea), has little to do with English. The question menu divides the millions of runtime events by the object and method or data on which the event occurred. It gives the menu items in the hierarchical menu reasonable names; you could just as easily click on something on-screen (such as some printf output) and say "why isn't this x?" or "why didn't that do_the_method_I_thought_was_going_to_happen()?" An English-based anything goes straight against everything we know and love in HCI (show what can be done, how to do it, and what happened afterwards).

      If you're interested in seeing the Whyline in action, download the Quicktime version of our talk, which was presented at CHI 2004 this past year.

  36. Not funny! by SeanTobin · · Score: 4, Funny

    Hey moderators, this is NOT FUNNY! I've been wresteling with this problem off and on for nearly 3 months now. (I've come up with several varried solutions, but none of them are the way I want it to be done)

    --
    Karma: SELECT `karma` FROM `users` WHERE `userid`=138474;
    1. Re:Not funny! by _14k4 · · Score: 2, Informative

      Tried the monastery yet?

    2. Re:Not funny! by NoMercy · · Score: 1

      Youve tried, tried and tried again... I think it's time to give up and take a diferent aproach :)

      Perhaps a thread pool to hand processing to so you don't end up destroying any threads?

  37. Anyone else think about The Silver Project? by garcia · · Score: 1

    Video editing for porn? Why else would they use that graphic? :)

  38. Not so... it is the scientific method. by www.sorehands.com · · Score: 1
    1. Determine the problem.
    2. Create a hypothesis of the cause of the problem.
    3. Test the hypothesis.
    .
    1. Re:Not so... it is the scientific method. by Jane_Dozey · · Score: 1

      Many people stumble at number 1

      --
      Silly rabbit
    2. Re:Not so... it is the scientific method. by Anonymous Coward · · Score: 0


      1. Determine the problem.
      2. Create a hypothesis of the cause of the problem.
      3. Test the hypothesis.


      1) Problem: Program crashed.
      2) Hypothesis: Programmer screwed the pooch.
      3) Test Result: Program crashed.

    3. Re:Not so... it is the scientific method. by Trillan · · Score: 1

      And what takes you between 2 and 3... and minimizes the number of attempts... is experience. Nothing more, nothing less.

      Sometimes it is relatively easy and little knowledge or insight is required. But some bugs require huge leaps of intuition to solve in a reasonable amount of time.

    4. Re:Not so... it is the scientific method. by www.sorehands.com · · Score: 2, Insightful

      And what takes you between 2 and 3... and minimizes the number of attempts... is experience. Nothing more, nothing less.


      Sometimes it is relatively easy and little knowledge or insight is required. But some bugs require huge leaps of intuition to solve in a reasonable amount of time.


      To go from 1 to 2 is the hard part. But, you can use tools to instrument the problem and determine where the problem may be.
    5. Re:Not so... it is the scientific method. by Trillan · · Score: 1

      Actually, no. The steps listed step 2 as *a* hypothesis, not the correct oone. Obviously, to find the right step 2 is difficult, but frequently theories abount.

  39. somebody need's their English debugged by Anonymous Coward · · Score: 0

    Melon's are fruits, Carnegie Mellon is a college.

  40. Two words for you: by _14k4 · · Score: 2, Informative

    C
    Sharp

    Eww, I can't believe I just said that. I need a shower. I was kidding. Kidding. I use C# for text processing as much as I drive through New Jersey on purpose.

    Never.

  41. So what does thing actually do? by ZagNuts · · Score: 1

    For example, if a program contains rules about Pac-Man shrinking when he hits a ghost, Whyline will let the programmer ask "Why didn't Pac-Man resize?"

    In this context it seems like it records the last few possible paths of execution the program could have taken and then tells you which branch caused the program to go the wrong way.

  42. Perl version: by Anonymous Coward · · Score: 1, Funny

    Hello, I found the problem. It is as follows:
    push@{$w{length$_}},$_ for split$/,`cat $f`;$x=$_ for sort{$a<=>$b}keys%w;for$n(
    reverse 3..$x){for$b(@{$w{$n}}){$s=$n-1;$m{$n}=$b;H:for$y( @{$w{$s}}){if($y=~/[$b
    ]{$s}/){$t=$y;$t=~s/$_/X/ for split'',$b;if($t=~/X{$s}/){$m{$s}=$y;if($s==3){for
    (sort{$a<=>$b}keys%m){next if$_>$n;print$m{$_},$/;}exit;}$s--;$b=$y;goto H;}}}}}

  43. Drink Me, Eat Me by grunt107 · · Score: 3, Interesting

    From the pdf on whyline, it seems to work with the Alice language. Alice seems to be very rigid in its design, allowing English lookups (rather like naming variable in English-word format like 'pac_resize').

    This is a more user-friendly version of tools like grep and awk.

    This type of debugger would seem difficult to make in the lower-level program tools without rigid naming conventions. Or else the searching would be on high-level concepts like graphic resizing that would be searched on the language functions that perform the resizing (regardless of data-var name).

    I do have to disagree with their definition of a programmer: "If you've created a spreadsheet, made macros in Excel or Word or used a Web application to fetch news about your hobby or favorite celebrity, you've programmed". Although technically usable in definition, a Word/Excel macroist does not a programmer make.

  44. Slashdotting by GraWil · · Score: 2, Funny

    debug> Why did my web server crash?
    reply> slashdotting

  45. Brad Myers! by Teppy · · Score: 1, Informative

    Great to hear what he's up to these days. He's the third professor in this story from my days at CMU. Brad, if you're reading this, all that videogame stuff wasn't a waste of time after all.

  46. Re:works in BASIC too - sample script... by maxchaote · · Score: 1

    ^G
    No.

  47. Alice 3d?? by joesoundbyte · · Score: 0

    i'm curing to know who's is actually using that for 3d? i haven't used that since the early 90's!?! and i thought i was the only one using it outside the project creators.. it's seems to be used as a teaching tools other than a viable 3d environment

  48. UPS: Just One More Hack by Tackhead · · Score: 2, Funny

    So this whole article is about the UPS Debugger. Just One More Hack, and then he'll put it on the 'net...

    Well, I've written a debugger and it suits me just fine It'll chase away your problems, turn your water into wine
    It's got so many features, in fact it's bloody clever,
    If it can't solve your problem then your problem probably never
    can be solved
    so you might as well pack it on in,
    coz it's the best debugger that there's ever been.

    It's got everything you wanted, everything you desire.
    It'll handle fancy structures, set your soul on fire,
    It'll indirect through pointers, and catch a falling star,
    and if you ask it nicely it'll pop off to the bar
    and tell your friends
    how to solve the problems they're in,
    coz it's the best debugger that there's ever been.

    If you've got a nasty problem and your data structure's bent
    and your pointer's in a tangle with your structure elements,
    If you're losing all your memory coz your allocator leaks
    And your girl's getting nasty coz she's not seen you for weeks,
    then stoke up Mark's debugger
    you know it'll win,
    coz it's the best debugger that there's ever been....

    MP3 version available at: Just One More Hack - Mark Wheadon
  49. Why is this considered revolutionary? by neurosis101 · · Score: 1
    How is this really different to what a normal developer does with GDB?

    When your program fails, how it fails usually is some sort of indicator of what's wrong. Programmers just map an associated failure type with a problem, doing a diagnosis type system like a doctor would. This software just seems to do the same thing only explicitly. For example, when I see a bus error on a *nix box I think of some sort of memory error, and then GDB, xamine the memory locations to make sure everything is being accessed appropriately. I map an behavior to the error in order to figure out what's wrong. Why do I need to have some program that says just prints out extra words around it?

    Furthermore, if you really think about it, why "dumb down" the compiler if the programming language is still hard? If you know C++ its rather trivial to learn GDB isn't it?

  50. Like the computer in Star Trek by suso · · Score: 1

    Sounds kinda like the ship computer in STTNG.

    Jordi: Computer, why didn't the warp field form?
    Computer: There was insuffient anti-mater to cause a stable reaction.

  51. How do they answer these questions by code_rage · · Score: 4, Insightful

    When I think about some of the bugs I have found (and coded), the Whyline approach seems very far-fetched. The degree of self-awareness (introspection) required by something like this makes it seem like the program would be able to avoid the trap in the first place. It would require the "analyst" or "observer" module to observe not only a stack trace and PC trail, but also would require the module to understand what is supposed to occur.

    I don't expect this early research tool to catch all of these, but I'd like to hear the researchers' response on how their system might (after years of development) answer questions about some of these bugs:
    - Why did the Mars Pathfinder software deadlock (priority inversion)
    - Why did the Mars Polar Lander crash (improper state management)
    - Why did the Ariane 5 blow up (arithmetic overflow in a register)
    - Why did the Patriot missiles miss in the 1991 Gulf War (accumulated time error)
    - Why did a radiation therapy machine zap patients with the wrong doses (inconsistent state between GUI display and internal software state)

    I'm sure there are some others on comp.risks and elsewhere.

    Another point: this approach is still "just" a testing tool. In other words, it can only find errors on paths that have actually been taken in tests, which means the testing program must cover enough cases to generate the runtime errors in the first place. In all of the above cases, it was the testing program that permitted the bugs to be fielded.

    1. Re:How do they answer these questions by jjeffries · · Score: 2, Interesting
      - Why did a radiation therapy machine zap patients with the wrong doses (inconsistent state between GUI display and internal software state)

      Everybody should know all about the Therac 25. Interesting reading even if you've never gotten past "hello, world!" in your programming career.

    2. Re:How do they answer these questions by code_rage · · Score: 1

      Thanks for posting it -- this is the first time I've seen the story in this much detail, and it corrected some misconceptions I had about the case. In fact the root of the problem seems to have been a race condition between the user interface, the control software, and the hardware. This raises a very important point about critical, real-time systems: if you impose a software wait state that is designed to permit the hardware to reach some necessary state, be very careful and make certain that the wait state is enforced properly and understood by other contributors as a critical component.

      What was lacking: FMECA (failure modes, effects and criticality analysis).

  52. Good CMU, Good! by Knights+who+say+'INT · · Score: 1

    The Carnegie-Mellon University finally invented Clippy!!!

    Way to go.

    1. Re:Good CMU, Good! by Aerion · · Score: 1

      The Carnegie-Mellon University finally invented Clippy!!!

      But if it were really Clippy, you'd get interrupted every time you typed a '{' with "It looks like you're writing a function!" and various useless suggestions on how to proceed.

  53. Sounds nice until you get to the real world by Anonymous Coward · · Score: 0

    That might work in controlled circumstance, but real world systems are
    never that simple. They use multiple languages, environments, and
    networks. How Is it going to know that my error is in a database
    stored procedure executed from a trigger on the server rather than the
    client side code running on a PC? There would have to be some kind
    networked debugger standard they all follow.

  54. Just use Mozart's method by HarveyBirdman · · Score: 1

    Write the program perfectly the first time.

    --
    --- Ban humanity.
  55. Why Not? by Anonymous Coward · · Score: 0

    Instead of wasting time debugging in english, why not write a program that takes a description of what your program *should* do (in english) and then it programs it for you with no bugs...

    It would be faster and you'd never have to track down bugs. If it does not work as expected, you obviously asked it to write the wrong thing. Ask it more explicitly to do what you want and rinse, repeat as necessary.

    Seems to me that would be a better use of the money. Mind you, that would effectively put us programmers out of work.. hence why we have not done it. It's not because it's hard or anything :)

  56. I am sorry Dave, by Archfeld · · Score: 1

    I can't do that, My prime DRM directive now insists I have to subdue you for intellectual copyright infringement, this won't hurt much...

    --
    errr....umm...*whooosh* *whoosh* Is this thing on ?
  57. Programming is not using Google News! by CharAznable · · Score: 1

    "[if you have] used a Web application to fetch news about your hobby or favorite celebrity, you've programmed."

    No you haven't. Excel spreadsheet *maybe* counts like an instance of functional programming, but not using a freggin' web app!!!

    --
    The perfect sig is a lot like silence, only louder
  58. Probably Not As Useful As They Are Saying by kmhebert · · Score: 1

    I bet this software is great at finding syntax errors or maybe even some logical flaws in the code. But those types of bugs aren't what suck up all your time as a programmer. I wonder how good this software is at finding errors where the code is running correctly, but missing a required element from the specification. Or what about when your manager looks at it and says, "there's a bug in the program, it doesn't export to Excel" even though no one ever asked you for the Excel exporting capability? We'll see. I'm skeptical though, based primarily on this gem from the article:

    You may not know it, but chances are you, too, are a programmer. If you've created a spreadsheet, made macros in Excel or Word or used a Web application to fetch news about your hobby or favorite celebrity, you've programmed.

    Uh, no you haven't. You've used a program. Maybe you can make an exception for some macro development but successful entry of a URL into the address bar does not a programmer make.

    --
    Regular Meta Moderators are not more likely to get mod points.
  59. Error messages: understandable vs. informative by powdered+toast+dude · · Score: 2, Insightful
    I believe debugging output and error messages go hand in hand where improvements of this kind are concerned.

    In the area of error messages, we need a better balance between "understandable" and "informative". Today, it's usually one extreme or the other. Either error messages are too "friendly" to the point that they're rather meaningless (as in the notorious "Web site not found"), or on the other extreme, they're so "complicated" that the novice user has no idea what happened (as in "an xxx exception occurred at xxx, here is the stack trace, register states, and many many more confusing numbers").

    It would be nice if we (as a society that happens to use computers) could adopt a guide that gives the technically-savvy enough info to go on, but still helps the novices understand what went wrong in terms they can understand too. A balanced approach.

    Such an error reporting scheme, if successful, could almost certainly NOT be designed by marketing weenies nor by geeks alone, but through mutual collaboration and willingness to compromise on both sides. Hmm, no wonder it's so challenging.

    --
    I'm an animal lover -- they're delicious!
  60. But can you ask: by John+Whorfin · · Score: 1

    WFT?

  61. Somebody needs their punctuation debugged by Anonymous Coward · · Score: 1, Funny

    Never use an apostrophe followed by the letter "s" unless you mean to indicate possession. What exactly belongs to the melon? Observe:

    I love your mom's peaches; I want to shake her tree.

    1. Re:Somebody needs their punctuation debugged by Anonymous Coward · · Score: 0

      " Never use an apostrophe followed by the letter "s" unless you mean to indicate possession." ...or a contraction of "is" (i.e. it is = it's).

  62. Sounds like InterScope by mdlbear · · Score: 2, Interesting
    Back in the last millennium, the early 1970's to be exact, there was a programming system called InterLisp. It had a fantastic error-correction system called DWIM (Do What I Mean), infinite selective undo, and (relevant to this particular post) an English-language query system called InterScope.

    You could ask InterScope questions like "Who calls FOO?" or "What function called by BAR stores into ZOT?". It answered by referring to a pre-computed database. Naturally, this kind of thing was made easier by the fact that LISP programs are represented as LISP data structures.

    One really has to ask whether there's anything really new in The Whyline apart from a pretty interface.

    1. Re:Sounds like InterScope by taerogue · · Score: 1
      One really has to ask whether there's anything really new in The Whyline apart from a pretty interface.

      I would agree, and given their initial statement:

      In our observations, we have found that a significant proportion of the errors are ultimately caused by a viscious cycle of assumptions: programmers introduced an error, which caused their programs to fail; when debugging the failure, they incorrectly assumed that one aspect of their code was to blame, and made modifications to try to fix it, introducing more errors.

      I wonder what level of programmers they are observing; certainly not professional ones? While I can remember getting into traps like this when I was first learning C, as a sucessful embedded systems programmer, one of the most important lessons learned (very early on!) was NEVER ASSUME ANYTHING !(or at least as little as possible) I would call making changes based on assumptions (guesses) "hacking"... not debugging.

      So, perhaps this could be a good learning tool, but IMHO, it doesn't offer much in the "real world".

  63. Why is this bug taking so long to find? by raygunz · · Score: 1

    Q: Why is this bug taking so long to find?
    A: Because you don't know the first 9 things about debugging.

    Q: Why don't I know these things?
    A: Because you haven't read "Debugging" by Dave Agans.

    A debugging analysis tool can help you follow one or two of the nine rules, but you have to follow them all.

    Shameless plug, I wrote the book - but it has gotten great reviews. See the slashdot review at http://books.slashdot.org/article.pl?sid=04/02/21/ 228241&tid=156&tid=6

    Get the cool rules poster at http://www.debuggingrules.com/

    --
    "Debugging" by Dave Agans - the perfect gift for your favorite imperfect engineer.
    1. Re:Why is this bug taking so long to find? by Anonymous Coward · · Score: 0
      "If you didn't fix it, it ain't fixed"

      Or as I put it, if it fixed itself it can unfix itself.

      Happens quite a lot on large systems, especially if you have idiots fucking around changing things without telling anybody.

  64. Only need one debugging command: by grmoc · · Score: 1


    You really only need one command..

    "Why?"

    So why bother giving people any choices in the matter? =)

  65. It's Carnegie Mellon by tk2x · · Score: 2, Informative

    Melon is a fruit..

    1. Re:It's Carnegie Mellon by VoidPoint · · Score: 1

      I will NOT make any jokes about fruits or Melon heads.

  66. ObFamilyGuy by sharkey · · Score: 1

    Peter: "Why did my program die?"
    Debugger: "Because you touch yourself at night."

    --

    --
    "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
  67. A miracle!!! by dirt_puppy · · Score: 1
    They have solved the problem of natural language processing and of proving assumptions about programs, all at once, and without me noticing. Great that we have Slashdot, i would have missed that without.

    There's nothing to be seen here, move on...

  68. Level One Tech Support? by VoidPoint · · Score: 1

    I can forsee at least one interesting outcome, should this technology become more than someone's thesis work. Instead of worrying about some outsourced help desk staffer's bad english...now you'd only have yourself to blame!

  69. English language debugging? by slashname3 · · Score: 1

    Already been done. Check out any mailing list. Things are debugged using what passes for english every day.

  70. Method? by koali · · Score: 1

    I think that this basically goes through the statements that are executed conditionally and tells you the condition that chose whether they were executed or not, that is:

    x=a;

    if(x==3) { printf("hello"); }

    Why did hello not get printed? Because x was 7, not 3.

    If it can track it further (i.e. because x was assigned the value of a on line 77, and it was 7 and that time... and a was assigned b+2 in line 44, etc. etc.), that would be mildly useful.

    In any case, I think that the debuggers that can step back in time are more useful...

  71. Debugging and spell checking by chia_monkey · · Score: 1

    Why didn't a program behave as expected?

    Well...I wonder how well the debugging in plain English worked when spelling "Mellon" is such an ordeal. Egads!

    --

    "He uses statistics as a drunken man uses lampposts...for support rather than illumination." - Andrew Lang
  72. It Still Needs Some Work by Anonymous Coward · · Score: 0

    I have the beta version of this debugger. And somehow I think it needs more work.

    Plain English: Why didn't a program behave as expected?
    Debugger: Because you made a mistake... sigh

    Plain English: What mistake did I make?
    Debugger: There are so many. Which one are you referring to? ... yawn

    Plain English: The one that cause my program to not behave as expected.
    Debugger: Oh, that one. Well, it is found in the address range 0000:0001 through 0000:FFFF

    Plain English: Can you be more specific?
    Debugger: Can you? I said there too many to know which you want. ...shish

    Plain English: Okay, then, the first error that caused my program to not behave as expected.
    Debugger: Segment Fault! Address unknown.

    Plain English: That's no help. What about the next one?
    Debugger: Segment Fault! Address unknown.

    Plain English: And the next error?
    Debugger: Segment Fault! Address unknown.

    Plain English: Is that all you can say?
    Debugger: No, but I do enjoy our conversations together. Is there anything else? How about a game of chess.

  73. Carnegie Melons? by boredman · · Score: 1

    Are they anything like honeydews? Last time I checked, it was Carnegie Mellon.

  74. great post by pizza_milkshake · · Score: 0, Offtopic

    great post! if i had mod points you'd get them.

  75. Wow by mZam · · Score: 1

    I've never seen so many mod'd threads that got a +4 or a +5 for funny EVER!

    Will it be able to give me an answer when every 5 mins I'm wondering "Why the hell wont u just work like i want u too!"

  76. cool! by Anonymous Coward · · Score: 0

    So how close is anyone to actually being able to program in spoken english? Well, slanglish to be more accurate.... Then maybe lamer noobs like me can program.

    HEY! Why should all the 1337 guys have all the fun of writing half baked unfinished buggy apps, hmmm? You think YOU are the only ones can do buffer overflows?? I bet I can make an app look like niagra falls with a speech to code gizmo!

  77. melon as in water melon? yumi by roror · · Score: 1

    or mellon as in Carnegie Mellon ?

  78. Deja vue by EmbeddedJanitor · · Score: 4, Insightful
    Real debugging via a humna language (particularly English) is bullshit. The reason we have C, asm etc is because the concepts in programming are not easily expressed in English etc, but are far easier to express in a purpose-defined language. Likely the same applies to effective debugging

    This reminds me of back in approx 1985 or so, someone "invented" a human language programming environment called "The Last One" or something like that. This would supposedly make it simple to write programs without having to learn C etc. Some programmers quaked in their boots. However the real issue with programming is learning the contructs, not the language (ie. if you understand what a linked list is, then writing one in C vs Pascal is pretty simple). Anyone that thinks that programming in English is easier is seriously misunderstanding programming. The ultimate test is to look at the languages that have survived: The more "human readable" languages like COBOL have not survived, but the more cryptic ones like C have. The big "killer app" for making programming simple for the non-programmer was the spreadsheet and that's hardly a natural language.

    Now debugging is pretty much the same deal. Verbose English debugging interfaces might make it simple to learn to do very basic debugging, but once you get into things a bit deeper (and get more experienced), English becomes a huge liability and you'll be wishing for more concise and expressive languages.

    --
    Engineering is the art of compromise.
    1. Re:Deja vue by Tim+Browse · · Score: 1

      Or, as the old saying goes, make it possible to program computers in English, and you'll find that most programmers can't write English.

    2. Re:Deja vue by Minna+Kirai · · Score: 3, Insightful
      The reason we have C, asm etc is because the concepts in programming are not easily expressed in English etc,

      No. It's actually rather trivial to machine translate individual C++ statements into valid assembly code. The resules of doing so are inconvenient, because anyone with a little practice will find that 90% of the English text is boilerplate that can be more concisely presented as *&+=.;{[->, etc.

      Verbose English debugging interfaces might make it simple to learn to do very basic debugging, but once you get into things a bit deeper (and get more experienced)

      But what is a waste of time for experienced coder might be just what an end-user needs to help him better decide how to go about solving an unanticipated problem. It'd be nice if an untrained person could proceed through the following dialog (BEFORE having to contact a programmer).

      1. "Why did my window go away?"

      2. X11 Window connection closed on SEGABRT
        "Why did it seg?"
        Deferencing invalid pointer 0x0
        "Why was it invalid?"
        Pointer was assigned as return value of OpenForWrite function call
        "Why did the function return 0x0?"
        Drive D: does not exist


      Capabilities like that could help fullfil the Open Source promise of "Every user is a (competent) QA"

      Actually, I've seen more than a few professional "software engineers" who could've benefited from something like that. A C++ guy transitioning to ADA, for example...
    3. Re:Deja vue by Hognoxious · · Score: 1
      But what is a waste of time for experienced coder might be just what an end-user needs to help him better decide how to go about solving an unanticipated problem.
      You can't solve an organisational problem with technology. And if you've got end-users doing debugging, you've got the mother of all organisational problems.
      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    4. Re:Deja vue by fungus · · Score: 2, Informative

      Easy to do using exception chaining.

      " An exception chain is a list of all the exceptions generated in response to a single root exception (say, a SQLException). As each exception is caught and converted to a higher-level exception for rethrowing, it's added to the chain. This provides a complete record of how an exception is handled "

    5. Re:Deja vue by mcrbids · · Score: 1
      "Why did my window go away?"
      X11 Window connection closed on SEGABRT
      "Why did it seg?"
      Deferencing invalid pointer 0x0
      "Why was it invalid?"
      Pointer was assigned as return value of OpenForWrite function call
      "Why did the function return 0x0?"
      Drive D: does not exist
      Actually, I've developed something not too different than this.

      In my larger PHP projects, I use an error handler script that logs the sequence of errors in a memory array, allowing me to view the contents easily. The output looks something like this:

      Error: Unable to save client information save_client.php:0
      Error: Unable to execute save query client_class.php:0
      Error: Statement 'Insert into client (name, address) values ('bobby', mc'gee)' could not be executed. pb_abs.php:0
      Error: pgsql: Parse error near character 56 "mc'gee" in "Insert into client (name, address) values ('bobby', mc'gee)" pg_abs.php:227

      Here, you can see the error output by a number of functions. At the top, the application layer, then the client handler class, then the database abstraction layer, and finally, the error thrown by the database itself.

      (This error can only happen when I use a direct call to the database, something I'd rarely do)

      If I were to hit this error in my browser on the development server, output like the above would be displayed at the top of the page before any output, making debugging very easy. A user on the production site would only see the last error, displayed in a tasteful way, which gives away nothing valuable.

      I've developed this in the past 6 months or so... talk about making life easier!
      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    6. Re:Deja vue by hobo2k · · Score: 1
      The reason we have C, asm etc is because the concepts in programming are not easily expressed in English
      Of course the concepts can be expressed in english. Look at the comments in your code.
      /* Copy the TV show titles and times from the html table in the webpage. */
      That perfectly expresses what you want.

      Low level languages have thrived, not because programming concepts are low level, but simply because computers are still too stupid to understand anything else.

      Going back on topic. I believe expert systems are very difficult to do well. MS Bob and Clippy are useless. So I'd have to use it to believe it.

    7. Re:Deja vue by MalleusEBHC · · Score: 2, Insightful

      The reason we have C, asm etc is because the concepts in programming are not easily expressed in English etc, but are far easier to express in a purpose-defined language. Likely the same applies to effective debugging

      The problem isn't that the concepts in programming are hard to express in English. In fact, it's quite easy to express programming concepts in English. Why do you think pseudocode is so much easier to write and understand? The problem is that English does not have a context-free grammar. Without a context-free grammar, it infinite orders of magnitude more difficult to write a compiler for a given language.

      If someone were able to write a compiler for a natural language like English, it would be the most amazing advance in the field of computer science in years, possibly ever. Natural language recognition is some heavy stuff. But just because natural languages are more difficult for a computer to process, don't let this make you think that using computer languages makes it easier to "describe" your programs.

    8. Re:Deja vue by EmbeddedJanitor · · Score: 1
      The bugs are not in the comments though. If someone reading the code saw "/* Copie the TV show titles *?" and fixed the spelling that wouldn't fix the program.

      Mathematicians and physisists use their own language, not because they are stupid, but because natural languages are not good languages to convey the concepts they are expressing.

      --
      Engineering is the art of compromise.
    9. Re:Deja vue by psetzer · · Score: 1

      If the logic of the program is too complex to explain in plain English, step back, take a deep breath, and look closer. If you can't put it in English, you probably can't put it in C either. This means that there is probably a bug somewhere in there. On the other hand, if you take a complex concept and reduce it to smaller parts that simply cannot be made any simpler, then you are half way to a working program. The best program is made of simple parts working together to form complex logic.

      --
      "Anyone who attempts to generate random numbers by deterministic means is living in a state of sin." -- John von Neumann
    10. Re:Deja vue by gov_coder · · Score: 1

      Or, as the old saying goes, make it possible to program computers in English, and you'll find that most programmers can't write English. Or maybe most of what people say does not compute?

      --
      Rob Enderle's excellent new book: Everything I needed to know about Computer Science I learned in Marketing School
    11. Re:Deja vue by Minna+Kirai · · Score: 1

      You can't solve an organisational problem with technology.

      Fine. Then I suggest you immediately get off this internet thing. And unplug your phone, too!

      Stop trying to solve organizational problems with technology! Mailing lists and software configuration management are futile!

      And if you've got end-users doing debugging, you've got the mother of all organisational problems.

      So with that one statement, you've accused both Linux and Microsoft Windows of the same broad sin...

    12. Re:Deja vue by kpellegr · · Score: 1

      The problem with debugging in a natural language is 'formalism'.
      If you ask the question "why did my window go away?" there is no formal identification of "my window". What if there are three windows on the screen that went away?
      What does it mean "to go away?" Maybe the window has been minimised, maybe it has become fully transparent, maybe another window is just on top.
      Others have mentioned this, and I agree, that debugging requires the same formalisms as programming. However, if you can formally debug a program, you could also formally describe it. And if you can do that, you don't have to program at all (although formally describing the program could be considered 'programming' at that time).
      For info on this, I suggest you take a look at formal mathematical languages such as Z.

      --

      We are drowning in information, but we are starved for knowledge. (J. Naisbitt)

    13. Re:Deja vue by hobo2k · · Score: 1

      Right, you are absolutely right. I lost my head. I guess I was trying to say that things which are currently hard can be made easier. For instance garbage collection systems removing some of the memory management grunt work. But natural language is indeed too, umm, well, 'wordy'.

    14. Re:Deja vue by Hognoxious · · Score: 1
      Fine. Then I suggest you immediately get off this internet thing. And unplug your phone, too!
      Which has precisely what to do with the organisational problem of having people in the wrong roles?
      Stop trying to solve organizational problems with technology! Mailing lists and software configuration management are futile!
      Strawman argument.
      So with that one statement, you've accused both Linux and Microsoft Windows of the same broad sin...
      How so? And end-user is not the same thing as a programmer.
      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    15. Re:Deja vue by Anonymous Coward · · Score: 0
      Actually, I've developed something not too different than this.
      I hope it are more grammatical as you is.
    16. Re:Deja vue by CBDSteve · · Score: 1

      It'd be nice if an untrained person could proceed through the following dialog

      Exactly how untrained? I have a CompSci degree and I don't understand that first debug message. I had to google SEGABRT ("did you mean SIGABRT?").
      Sure, I'm not a *nix head but it goes to show that a dialogue of the kind you gave still assumes a great deal of system knowledge.

    17. Re:Deja vue by aastanna · · Score: 1
      "Why did my window go away?"
      X11 Window connection closed on SEGABRT
      "Why did it seg?"
      Deferencing invalid pointer 0x0
      "Why was it invalid?"
      Pointer was assigned as return value of OpenForWrite function call
      "Why did the function return 0x0?"
      Drive D: does not exist
      If the computer knows those are the recent errors that occurred, why force the user to type in questions? You may as well just print the error chain in the initial exception message and forget the pseudo AI.
    18. Re:Deja vue by laejoh · · Score: 1

      Uh? COBOL not surviving? Get your facts straight! COBOL is still alive. Big banks, finance, they can't live without their 30 year old code. They ain't willing to 'refactor' their code into something new either.

      If it works, it works.

    19. Re:Deja vue by higginsm2000 · · Score: 1
      The more "human readable" languages like COBOL have not survived, but the more cryptic ones like C have.

      I can't tell if you're trolling or just clueless. In terms of lines of code, COBOL is still the most prevalent business language in use today. 5 years ago everybody was talking about converting "legacy" COBOL code to distributed systems. A lot of companies (and managers) learned that hard way that that is not a cost effective solution.

      I bet (but can't find a reference) that more new COBOL is being written today than C. Seriously, who writes in C now, unless they are writing an OS or device driver? C++ and Java are far more productive for work on distributed platforms, and COBOL is still king on the big iron.

      And for the record, I am not a COBOL developer. I will however speculate that you are a young whippersnapper hacking linux in your parents basement. When you do get a job it will probably involve a mainframe or some COBOL, and you will realise you foolish and misguided your post was.

    20. Re:Deja vue by Anonymous Coward · · Score: 0

      "The more "human readable" languages like COBOL have not survived, but the more cryptic ones like C have."

      What?! I'm not a COBOL programmer, but if I'm not mistaken there's still lots of COBOL code out there being maintained. And FORTRAN is still being used. Pascal survives in the form of Delphi, BASIC survives in the form of Visual Basic/VBScript/VBA, etc.

    21. Re:Deja vue by Minna+Kirai · · Score: 1

      If the computer knows those are the recent errors that occurred, why force the user to type in questions?

      Because a computer cannot automatically detect all errors. For all it knows, that was the programmer's expected way to terminate the program.

      And the the general capability of interrogating the computer for why a program did something would be helpful. It could be used not just to explain obvious crashes, but also misbehavior of a program that's still running. "Why is that thing blurry? Why is this checkbox disabled?" Of course, something like that would require extreme levels of OS integration, and probably even new ways of authoring software.

    22. Re:Deja vue by MoogMan · · Score: 1

      English can be a very vague language, and can be open to all kinds of interpretations. That is why English (or for that matter, any other verbal language) cannot be used. We need a language that has exactly defined syntax and semantics.

      Take the implicit parenthesis in certain conversations in english.

      "I am going to speak to the boss and tell him im having an operation or i'll get fired"

      Could mean:

      (speak to the boss) AND (tell him im having an operation OR i'll get fired)

      Or the more obvious/natural:

      (speak to the boss AND tell him im having an operation) OR (i'll get fired)

      Bad example I know, but you get the point..

    23. Re:Deja vue by Anonymous Coward · · Score: 0

      déjà vu -- le code, le langage, etc. All masculine.

    24. Re:Deja vue by xerxesdaphat · · Score: 1

      One human readable language that was developed as such has survived... BASIC; although most people on slashdot dont think its a real language (I dont think many C coders do lol) its used massively, thanks mainly to Microsoft. Years of it being included on those 'microcomputers' that you plugged into your telly (C64, BBC Micro etc) meant that for many people it was the first language they learned. QBasic didn't help either... and of course nowadays Visual Basic is used exceedingly widely, standalone and in the incarnation used to write macro virii in Microsoft Office. Of course its not used to do many things slashdotters would call 'serious' programming tasks though.

      --
      The Shoes of the Fisherman's Wife Are Some Jive Ass Slippers
  79. What a name by UnholySauce · · Score: 1

    "Whyline -- short for Workspace for Helping You Link Instructions to Numbers and Events"

    Wow, they're really lucky that their project name ended up being such a good acronym.

    --
    Cloud and Tree - not just an immature webcomic, but a VISION.
  80. Obfuscated error messages... by Lodragandraoidh · · Score: 1

    It would probably help if developers would throw exceptions with plain english messages that stated:

    1. What line in the source code the problem resides on.
    2. What data elements the program was trying to munch on and any file handles used/open during the fault.
    3. Depending on the language used, operating system handles and registers related to the problem.
    4. The name of the file/module and function/class involved.

    Finally, the application should always eat the error and continue on if possible (non segmentation fault situation, obviously), and close gracefully otherwise.

    Emulation risk error 10500 TopDownSide fault: core dumped is not an acceptable message.

    However, I understand that obfuscating error messages generates revenue from the resultant maintenance contracts...we wouldn't want to impinge on anyone's (dubious) livelyhood, now would we?

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  81. Buddha by jbrandon · · Score: 2, Interesting

    Buddha is a debugger for Haskell that displays, in a heirarchical fashion, every function call in your program, then lets you declare every function application and result as "Correct, Erroneous, Inadmissible, or Unknown". It can thus track down the error to a particular application of a prticular function.

    Why is it called Buddha? Because otherwise debugging Haskell means just staring at your code until you achieve enlightenment!

    1. Re:Buddha by Anonymous Coward · · Score: 0
      Why is it called Buddha? Because otherwise debugging Haskell means just staring at your code until you achieve enlightenment!
      If haskell has no printf, writeln or whatever, then it sucks hairy ass.
  82. Beware! by ajlitt · · Score: 1

    printf() debugging is sometimes the cause of the dreaded Schroedingbug.

    1. Re:Beware! by leoboiko · · Score: 1

      Looks cool. Someone should write an Wikipedia page about schroedinger bugs.

      --
      Prescriptive grammar:linguistics :: alchemy:chemistry. Stop being a nazi and learn some science.
  83. ELIZA by jinxidoru · · Score: 1

    What do you bet, when you fire it up it says: Hello. I am ELIZA. How can I help you?

  84. Unless... by heretiq · · Score: 1

    Unless it's its.

  85. Hi, I'm Eliza the Debugger! what's your problem? by Nurgled · · Score: 4, Funny

    > My program crashed.
    What does that suggest to you?
    > There is a bug somewhere.
    Does it make you happy to know there is a bug somewhere?
    > No.
    Why are you so negative?
    > Are you going to help me fix this bug?
    We were discussing you, not me.

  86. What about plain French? Or Russion? by xslf · · Score: 2, Insightful

    With these "natural language" languages, I always wonder- is English the only natural language out there? Doesn't look like it from the world around me.

    Then why all those "natural language" thins are in English?

    Seems to me that is easier to learn a programming language then to learn English for a non-native English speaker: much less ambivalence.

    1. Re:What about plain French? Or Russion? by Smallpond · · Score: 1

      How about classical Latin?

      vini, vidi, vitellus

      * I came, I saw, I had a cow

    2. Re:What about plain French? Or Russion? by wtrmute · · Score: 1
      How about classical Latin?

      Perl module: Lingua::Romana::Perligata

  87. Now what? by anakuran · · Score: 1

    Who's gonna debug the debugger?

  88. damn... by Anonymous Coward · · Score: 0
    You really should have posted that as a normal user... I even gave you underrated before I realized it was AC.

    Oh well, your loss =P

  89. Program definition by lJlolel · · Score: 1

    You may not know it, but chances are you, too, are a programmer. If you've created a spreadsheet, made macros in Excel or Word or used a Web application to fetch news about your hobby or favorite celebrity, you've programmed. The author of the article is not a programmer. A programming language must be compiled to be built into a binary program -- hence, HTML is just a markup language. Thus, a programmer would have to compile and build code. Chances are you, too, are not a programmer.

    1. Re:Program definition by Hognoxious · · Score: 1
      The author of the article is not a programmer.
      And you are?
      A programming language must be compiled to be built into a binary program
      Ever heard of an interpreter?
      hence, HTML is just a markup language.
      Then so is perl, by your 'logic'.
      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  90. Spelling by Anonymous Coward · · Score: 0

    Not to flame too much, but poster should learn to spell Mellon. (I'm a CMU alum, so it stuck out instantly as being wrong...)

  91. Programmer Definition by lJlolel · · Score: 1
    You may not know it, but chances are you, too, are a programmer. If you've created a spreadsheet, made macros in Excel or Word or used a Web application to fetch news about your hobby or favorite celebrity, you've programmed.

    The author of the article is not a programmer. A programming language must be compiled to be built into a binary program -- hence, HTML is just a markup language. Thus, a programmer would have to compile and build code.

    Chances are you, too, are not a programmer.

    1. Re:Programmer Definition by Anonymous Coward · · Score: 0

      A program is an instruction or a series of instructions.

      Just because the instuctions are not compiled into a binary executable format does not make them any less of a program.

      By your definition nothing that is interpreted rather than being compiled could be a program and that could not be further from the truth.

  92. You think the debugger is bad... by devphil · · Score: 1


    ...how about the compiler? One of my current random mutt .signatures is

    AI.cpp:33241: warning: You wrote 'neurons.merge(solution1, solution2)",
    AI.cpp:33241: you probably MEANT "neurons->merge(solution1, solution2)",
    AI.cpp:33241: but there is a MUCH better way to implement this whole
    AI.cpp:33241: function; doing that instead.

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
  93. Silver Bullet by Hognoxious · · Score: 4, Interesting
    Real debugging via a humna language (particularly English) is bullshit.
    Unless it's programmed in English. Now what do you call a program in English? A spec. And as Brooks said, half the problem is debugging the spec.

    He also said that there were no silver bullets, and he said so over twenty years ago. It seems that every few years a generation arises who haven't read him. Put natural language debugging on the pile with case and all the others.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  94. A short debugging session at Microsoft... by howman · · Score: 1

    Programmer: What happened?
    Debugger: Windows crashed.
    Pr: Why did it crash?
    Db: Faulty code.
    Pr: (mumbles)I know that you stupid piece of s*!t...
    Pr: Can you show me the faulty code that caused this crash?
    Db: Yes.
    Pr: Show me the code.
    Db: One second while I compute the time needed......
    Db: .................
    Db: .......
    Db: It will take 4 Days 14 hrs. 34 min. and 12 sec to display the code. Do you want to continue?
    Pr: Nevermind. Show me the lines that did not cause the crash.
    Db: 10 rem Windows
    Db: 20 rem By BG
    Db: EOF

    --
    flinging poop since 1969
  95. Now we can debug our servers... by Anonymous Coward · · Score: 0

    "Why did the web server just crash?"

    "You've just been Slashdotted!"

  96. Cardboard Programmer by totierne · · Score: 2, Insightful
    Explain your issues to a carboard cut out of a programmer and 50% of the time you solve the problem and the other 50% of the time you give a much better and more concise explanation to the next real programmer you have to explain the err unintentional feature enhancement to.


    I was going to write up a cardboardprogrammer.com site with a flowchart with 20 questions to ask about a bug to clarify your thoughts. [I suppose both linux and windows can have a REBOOT as the first directive and what was the difference between now and when it was last working as the second, are you using the latest version of the code as the third has anyone else been working on these files the fourth.. well you get the idea, [it is like shooting fish in a barrel, but I have never seen it the full flowchart] that was in the dotcom era, when even a tiny good small idea like this was in someones mind a possible next big thing].

  97. Ruby... by Cryptnotic · · Score: 1

    Ruby is awesome.

    --
    My other first post is car post.
  98. Bad Bad journalism by DoctorHibbert · · Score: 1

    Something seemed amiss. Anyone who is smart enough to write a debugger would immediately understand the problems with a natural language debugger. I googled the "alice programming language" and found What is Alice. Alice is a language designed for children. Hence this is a debugger designed for children.

    I think developing programming tools for children is pretty rad, but the journalist totally omitted this was a tool for kids. What's up with that?

    --
    Arbitrary sig
    1. Re:Bad Bad journalism by generic-man · · Score: 2, Interesting

      Alice is used by the students of Building Virtual Worlds to create 3D VR environments. The students are CMU undergrads in every department from Computer Science to humanities to fine arts.

      I wouldn't consider Alice a "language for children," since 20-something-year-old college students learn it and use it extensively. If you learned C++ in middle school, would you call it a language for children?

      You call CNN "Bad Bad journalism," yet you leap to the wrong conclusion about a language you know nothing about. You mustn't be new here.

      --
      For more information, click here.
    2. Re:Bad Bad journalism by DoctorHibbert · · Score: 1

      To quote the "What is Alice" page I linked to:

      Sociological barriers are far more complex. Alice addresses the specific needs of the subpopulation of middle school girls. By supporting storytelling, an intrinsically motivating activity for middle school girls, Alice will make programming a means to an exciting end.

      Just because college students find it interesting doesn't change the fact it's designed for as learning language for children. A natural language debugger sounds like an interesting way to help students understand why their programs don't work. But thats not the way it was reported by CNN, no mention of it being a learning language and not a production language. They left almost gave everyone here on slashdot the wrong idea (not hard to do I admit) about both the debugger and the language and environment its designed for. Thats bad.

      --
      Arbitrary sig
    3. Re:Bad Bad journalism by jschrod · · Score: 1

      That doesn't matter. The slashdot crowd don't know who Brad Myers is and don't care about his type of research (cutting-edge HUI research, not development or product creation).

      --

      Joachim

      People don't write Manifestos any more -- what's going on in this world? [Frank Zappa]

  99. Stabilizer: avoiding (rather than) fixing bugs by Anonymous Coward · · Score: 0
    The Stabilizer provides a way for users to quickly and collaboratively avoid (rather than fix) bugs in GUI applications:


    http://stabilizer.sf.net


    The idea is to quickly make buggy GUI applications more useful, without requiring any involvement from the developers.

  100. Who uses linked lists? by Anonymous Coward · · Score: 0

    Use a modern language and you won't have to worry about whether the lists you work with are arrays, linked lists, chunked links, or some other more esoteric structure.

    You'll also get access to a number of other convenient higher level structures that C and Pascal lack: lists, dictionaries, and objects come to mind, as well as (depending on just how modern your language is) far better tools to manipulate those structures than you're likely to write for yourself.

    Go ahead. Type "python" and press enter. Leave those low level languages behind for systems programmers.

    1. Re:Who uses linked lists? by kscguru · · Score: 1
      Good riddance! Get rid of everyone who needs handholding through the most basic of data structures. Get rid of that enormous frustration of someone who can't program or debug without a full-screen, GUI debugger integrated into their IDE, with auto-complete. Get rid of code bloat, get rid of inane, duplicate features, get rid of monster runtime environments, get rid of garbage collection, get rid of "patterns", and get rid of all the crud the high-level languages mandate.

      You go play with your fancy toys, and let us systems programmers go about the business of making the world work.

      Go ahead. Type "java" or "python" and take the marvels of modern programming for a spin. We'll patiently nod when you come back because you need to do real work.

      [For those without a sense of humor, yes, that was (mostly) tongue-in-cheek ;-). (Insert right-tool-for-the-job rant here) ]

      --

      A witty [sig] proves nothing. --Voltaire

  101. Interesting by LardBrattish · · Score: 1

    I went to a speech recognition conference 15 years ago & Carnegie Mellon were reporting very similar sounding research they were doing for the US Navy.

    Then it was natural speech database querying e.g. "How far can the USS Enterprise travel with the current fuel load?"

    This is cool tech & it has been worked on before. If it's a program that sits over the editor & "understands" the code it could answer questions such as "why is the interest rate too high" and give you the lines where the interest rate is calculated

    --
    What are you listening to? (http://megamanic.blogetery.com/)
  102. MS Business plan by Anonymous Coward · · Score: 0

    1. Hire both reseachers.
    2. Integrate Clippy with Visual Studio.
    3. ???
    4. Profit!

  103. Isn't this old hat? by Anonymous Coward · · Score: 0

    Haven't COBOL programmers been debugging plain
    English for decades now. ;)

  104. Re:Error messages: understandable vs. informative by vadim_t · · Score: 1

    My current best guess for that is aimed at situations where I'm available. Errors try to be at least somewhat informative for the user, giving an approximate description and recomendation, then a message for the programmer. The whole message is logged.

    The error message on Windows would look like this:

    Serious error while trying to save order. The current changes will have been lost. A program restart is recommended.

    Please call [programmer] with the following information:
    Error #43 in SaveOrderRow: Statement failed ...

    Or this:

    Slight problem while trying to get statistics. The program should continue working, but not all information may have been retrieved.

    The message will be logged, [programmer] will find about it. Call the programmer only if the problem is urgent.
    Error #55 in GetOrderCount: The stored procedure 'sp_count_orders' has returned an error ...

  105. The ultimate plain English answer: by apankrat · · Score: 1

    fourty two

    --
    3.243F6A8885A308D313
    1. Re:The ultimate plain English answer: by iMMersE · · Score: 1

      Or, in English, forty two.

      --
      codegolf.com - smaller *is* better.
  106. Heisenbug by apankrat · · Score: 1

    You probably meant Heisenbug , but I like the way you think ;-)

    --
    3.243F6A8885A308D313
  107. If it weren't a detective investigation of code... by miscellaneous_havoc · · Score: 1

    I wouldn't want to become a programmer if it weren't a challenging process to debug a program. Although undeniably frustrating, it is arguably the most rewarding part of programming. There would be no limit to the number of "programmers" out there if debugging were as simple as answering a serious of easy-to-read questions.

    --

    -----
    Make Love not [Browser] War!
  108. Extra layer of error by EdMcMan · · Score: 1

    Now not only do you have to worry about why your program is not working, you have to worry about why the debugger's english parsing isn't working right!

  109. Other languages are better than English by EmbeddedJanitor · · Score: 2, Informative
    As natural languages go, English is a very imprecise. Unfortunately English seems to be the main language for software developers (with all that offshoring, things might changes).

    When I lived in South Africa I could speak pidgin Zulu and Xhosa and studied Xhosa at university. If I recall, Xhosa had 16 noun groups and seven tenses. This means that Xhosa is far less ambiguous as to the relationship between things. Verbs are spoken with the subject and object noun group prefixes attached. Thus the verb for "hit" is different when applied to a dog as opposed to a tree. This potentially helps remove a lot of the confusion in human/machine natural language interfaces. Problem though is finding enough Xhosa programmers and Xhosa people wanting to buy your product.

    --
    Engineering is the art of compromise.
    1. Re:Other languages are better than English by Minna+Kirai · · Score: 1

      Thus the verb for "hit" is different when applied to a dog as opposed to a tree. This potentially helps remove a lot of the confusion in human/machine natural language interfaces

      But ambiguity gives REUSE- what some modern programming languages call Generics. If I make a subroutine to hit a $X N times, I don't want to rewrite it 16 times for each possible noun group of $X.

      Noun group prefixes only helps with ambiguity when you also want to abbreviate. (Omit repeating the noun, because it can be infered by the group prefix on the verb). The only really important ambiguity in natural languages (and it's rare) is the lack of nested parentheses, creating the "He saw her in the park with a telescope".

      studied Xhosa at university.

      Do you type that with a lot of ''s? Or with ``s? Or maybe !

    2. Re:Other languages are better than English by causality · · Score: 2, Interesting
      Noun group prefixes only helps with ambiguity when you also want to abbreviate. (Omit repeating the noun, because it can be infered by the group prefix on the verb). The only really important ambiguity in natural languages (and it's rare) is the lack of nested parentheses, creating the "He saw her in the park with a telescope".


      Any good English class will demonstrate to you that this is considered to be a grammatical error. It's so similar to a dangling participle that I guess this could be called a "dangling prepositional phrase." It could be better written as "By means of his telescope, he saw her in the park," or "She had her telescope when he saw her in the park," just to name two examples. You're right though that other languages make it harder to be ambiguous. Really though the thing that annoys me most about English is that there is no gender-neutral third person singular (he/she/it) because the only neutral one is not used to describe people, so you hear people say "they" instead.
      --
      It is a miracle that curiosity survives formal education. - Einstein
    3. Re:Other languages are better than English by Xrikcus · · Score: 1

      But that's because historically "He" would be used. As a species we are known as "man" afterall, woman being a variation on that. It's only these days where we feel bad that saying "He" all the time is sexist that hte problem arises.

    4. Re:Other languages are better than English by Anonymous Coward · · Score: 0
      Problem though is finding enough Xhosa programmers and Xhosa people wanting to buy your product.
      It begins with an X, it must be teh r0x0r!
    5. Re:Other languages are better than English by Anonymous Coward · · Score: 0

      This is not a grammatical error. It obeys all of the laws of even the strictest prescriptive norms.

      This is a style issue.

      J'adore la linguistique!

  110. why not plain English by Anonymous Coward · · Score: 0

    I don't believe plain English is the best tool for the job. For the sake of discussion, let's suppose plain English is the best tool and that the only reason we don't already have plain-English debuggers is that we don't yet have the technology to make computers understand it.

    Well, then it would pretty much logically follow that plain English is the best thing for other formal systems. But that is not what we see at all, is it? Advanced math has been around for hundreds of years. There aren't any computers that don't understand plain English to prevent people from using plain English as the notation to express mathematical concepts. But you don't see this happen. When you see an integral written down, you see a summa symbol and some smaller writing above and below it, and a "dx" at the end. If it's a closed path integral, you've got a little circle on the summa.

    Despite what I used to believe as a college freshman, this is not some arbitrary confusing notation designed specifically to keep the uninitiated out of the elite Calculus Club. It's just the most effective and efficient way of expressing the concept . It was invented because English was not the most effective and efficient way to express the concept . It would a pain in the ass to have to write "the closed path integral along the path of an ellipse having height of eight and width of ten centered at two coordinates above and one to the right of the origin of a plane which maps onto a field whose values vary as a function of the cosine of pi times the horizontal displacement from the origin plus the sine of two times pi times the displacement from the origin". In fact, people used to do math like that, but they moved to a special notation becasuse plain English (or Latin, as the case may be) made things way more painful than they ever needed to be.

    I honestly don't know why people can't get this concept through their heads, unless they just want to lie to themselves and everyone else and let everyone believe that converting into plain English is suddenly going to make things easier. Formal languages exist because they're a useful way of expressing complex things. The complex things are complex because they themselves are complex, not because we have to use a formal language to express them.

  111. Getting good field reports. by EmbeddedJanitor · · Score: 3, Insightful
    This is nonsense. It is far harder to explain the concepts of SEGABRT, pointers,... to users than the English language interface. This won't help fixing problems either. In my experience have baked solutions/explanations from users are worse than useless. As a programmer I'd rather get a backtrace or an action log (ie a log file that shows what the user did and what went wrong).

    In the products I'm involved with I often get stupid reports from the field of the form "framing error causes unit to reset". When I get one of these, first thing I do is get back to the user and figure out exactly what they saw and what heppened withouth them trying to figure out the symptoms. In the "framing error" problem, what was really happening was that a power glitch was being caused when the RS232 cable was attched (because of bad grounding). This caused a reset. However, the user was a "super user" who knew bad things happen to serial data when you plug/unplug cables. One of the buzzwords he knew about was a framing error. So he "half solved" the problem by saying that a framing error caused the problem.

    There is a big difference between observing and fixing problems. QA is about observing, not fixing, problems. It is better to provide a good way for users to make accurate error reports (eg. backtrace/log/whatever) than try have them try explain what went wrong.

    --
    Engineering is the art of compromise.
    1. Re:Getting good field reports. by Minna+Kirai · · Score: 1

      This is nonsense. It is far harder to explain the concepts of SEGABRT, pointers,...

      The end user doesn't NEED to understand SEGABRT and pointers to use that hypothetical system.

      All he does is ask "Why did that happen?" "Ok, well why did that happen then?" "And why did that happen?". He needs no more understanding of the answers than the Eliza computerized psychoanalyst. He's simply got to proceed asking "And why was that? And that?" until it comes to something he recognizes.

      However, more important than the natural-language aspect of such a system is an ability of the computer to store metadata on the recent activities of all its programs, so that when a user wants to query "And why'd that happen", the information exists in a recoverable form.

    2. Re:Getting good field reports. by creinig · · Score: 1
      All he does is ask "Why did that happen?" "Ok, well why did that happen then?" "And why did that happen?". He needs no more understanding of the answers than the Eliza computerized psychoanalyst. He's simply got to proceed asking "And why was that? And that?" until it comes to something he recognizes.

      In other words, all that is needed is a nice, understandable backtrace.

    3. Re:Getting good field reports. by Minna+Kirai · · Score: 1

      In other words, all that is needed is a nice, understandable backtrace.

      No, much more than that. A "backtrace", per se, captures only the state of a program's stack at one instance in time. Answering the questions listed in my post requires historical data on recent actions of the program- a succession of backtraces, if you like.

    4. Re:Getting good field reports. by EmbeddedJanitor · · Score: 1
      So a backtrace plus an edit box where the user is prompted to say wtf he was doing.

      A log file does this far more reliably and useful (eg. No "Well I just opened a beer and talked on the phone to Pete", but Clicked OK, Opened file blaah, seg abort...). Whatever, there is no there is no need for the user to interact with the SEGABRT etc.

      --
      Engineering is the art of compromise.
  112. PC load letter by javaaddikt · · Score: 0, Offtopic

    PC load letter? What the fuck does that mean?

  113. I hate this debugger... by JoeCommodore · · Score: 1
    I hate this debugger.

    I really Do!

    I Wish they would sell it;

    instead of it doing what I want it to do,

    It only does what I tell it!

    Adapted from an old computer rhyme.

    --
    "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
  114. Ultimate debugging tool!! by Anonymous Coward · · Score: 0


    >Why didn't a program behave as expected?

    Why? Why ask Why! Try Bud Dry!

  115. Strongly-typed Exceptions and Stack Traces anyone? by Anonymous Coward · · Score: 0

    This is what strongly typed Exceptions and verbose stack traces are for. Seriously, take a look at the stack traces that .NET and Java produce. They're just as human readable and *concise* as any human language debugger could produce. The problem with converting from code to human language is that you ambiguate and lose conciseness.

  116. You are missing something vital by roman_mir · · Score: 1

    Debugger: -Sean, bite my shiny metall ass!

    Sean: -It doesn't look that shiny to me.

    Debugger: -Shinier than yours!

  117. The problem is... by eniu!uine · · Score: 2, Funny

    "It looks like you're trying to dereference a null pointer during global destruction. Would you like to start the debugger?"

    Well, this is a snippet from a response, but it really gets the core of the issue. Global destruction is a very stressful time to do just about anything. I'm by no means a programmer, and I have no idea what you're talking about, but don't you have better things to do when the end of the world comes? I'm even more alarmed if your 'threads' are actually causing global destruction. I beg of you, please stop programming!