How come almost all programs are originally buggy?

Discussion in 'Developer Services and Trade' started by fallenashes, Jul 27, 2010.

  1. fallenashes

    fallenashes Well-Known Member

    Jan 4, 2010
    306
    0
    0
    yes
    Title says all, and I hate for this to sound like I'm being a snobby critic, but I am merely curious why coding programs/apps/whatever is usually buggy.
     
  2. thewiirocks

    thewiirocks Well-Known Member

    Aug 28, 2009
    618
    0
    0
    Expert Software Engineer
    It's the nature of software. Logic is a lot harder than it looks because there are always edge cases. For example, try to give yourself foolproof instructions for walking forward.

    "Put one foot in front of the other", right? What happens when you reach a curb? If you follow the instruction to the letter (which computers are very good at), you're going to trip and fall. Now you need more complicated instructions. "Put one foot in front of the other, unless there is a curb that will intersect with the next step. Then raise foot 5 inches and then step forward."

    That's better, but it's easy to imagine situations getting more complex. Throw stairs into the mix and your instructions fail again. Worse yet, stairs are not always of a regular size. Higher stairs may mean that 5 inches is too little. Shallow steps (e.g. in front of a museum) may make your steps too high, thus causing you to fall over when you step. Perhaps you should feed your sensory data into the height calculation? Of course, you can only estimate. If you get the estimate wrong, you will fall over again. Now you have an intermittent problem. If your judgement is good, everything works. If it's bad, you crash.

    I don't want to bore you too much, but hopefully this should give you an idea of the difficulties that programmers have. More rigorous testing can find issues before the release, but that tends to be costly. Costs which independent developers have a hard time incurring and large developers (looking squarely at Gameloft) can't seem to completely justify.
     
  3. SJP99

    SJP99 Well-Known Member

    Mar 16, 2010
    1,265
    17
    0
    Ipod Touch game player person like thing????
    11th dimension
    Great answer...amazing answer. Your perfectly right
     
  4. MidianGTX

    MidianGTX Well-Known Member

    Jun 16, 2009
    3,738
    10
    38
    That was a badass analogy.
     
  5. Someone quote this post :D

     
  6. Gritztastic

    Gritztastic Active Member

    Jan 28, 2010
    25
    0
    0
    DC
    Wow, I learned more in that post about programming than my entire 'Intro to PASCAL' class in high school. Probably why I got a C-.... :D
     
  7. Mew2468

    Mew2468 Well-Known Member

    Oct 20, 2008
    1,652
    5
    0
    Vancouver, BC
    Well said; much better than I could have put it. Bravo. :)
     
  8. iphoneprogrammer

    iphoneprogrammer Well-Known Member

    Mar 26, 2009
    2,280
    18
    38
    Financial Analyst for Baines and Ernst
    London, UK
    @thewiirocks that was the most godly answer to any question i have ever seen....wow
     
  9. lazypeon

    lazypeon Well-Known Member
    Patreon Bronze

    #9 lazypeon, Jul 29, 2010
    Last edited: Jul 29, 2010
    Another answer I'll suggest is "because it can be".

    If you're designing a car, you have to get it right, or people will die. When designing any hardware really, there is no "do-over", there are no patches, only recalls. Apple would love to release a patch to fix the iPhone 4 antenna issue, but they can't. If iPhone 4 were a piece of software, we could quickly patch this bug and everyone would forget about it. Apple was sloppy with their testing of the hardware, and got burned for it. If it were a game, no one would be talking about it, because it'd be patched already.

    With software, we can afford to be sloppy because we know we can just patch it later. This is especially true with games. There is certainly software out there that is more or less fool proof. Medical software, rocket hardware... needs to be perfect, and more emphasis is put on quality and regression.

    With most software, we have a concept of an acceptable level of 'risk'. No product is bug free. All we can do is reach a point where we think the risk of any game-breaking bug is low enough that we can ship.
     

Share This Page