• (cs) in reply to Ben L.

    Oh nooo, brace yourselves.. :) Special significance of the number 26 anyone? Zero padding?

    That's right folks, they were switching on letters, and decided to use string versions of numbers to represent that. Please post the rest of the code..

  • (cs) in reply to J-L
    J-L:
    Recursive Reclusive:
    J-L:
    Captain Obvious:
    Seems like it would make it easy to use find on page? I put in similar comments like // end $someconditional
    It would be easy to find until the day you decide to add some lines of code above the first condition. Then you'll be stuck updating all those line numbers.
    Updating what line numbers? The conditional the endbracket is the end of, haven't changed.
    Oh, I thought those numbers were line numbers. I can't quite tell for sure, but maybe they're level of nested if-blocks.

    At any rate, if someone decides to add another nested if-block somewhere in the middle, then they'll be stuck with updating all the numbers inside the new one.

    Or not. They could just put a new number (greater than the others) and allow the nested blocks to simply degrade into no particular order.

    Wow... Thats a terrible idea. For suggesting something so terrible, go home and sit in a corner and think about what you've done.

  • (cs) in reply to Rawling
    Rawling:
    I'm struggling to picture the top half of this code. else if statements don't lead to multiple close brackets.

    Yep, but you might have a lot of nested

    if (foo) { * branch 1 * } elseif (bar) { * branch 2 * } // end elseif

    Which incidently just makes the code even MORE of a WTF (My brain hurts just thinking about that possible monstrosity)

    Yazeran

    Plan: To go ot mars one day with a hammer

  • (cs)

    Wrap that in a for loop and you'd have something.

  • (cs) in reply to Severity One
    Severity One:
    This is all nonsense. The following is perfectly valid C:
    if (1) {
        if (2) {
            if (3) {
                if (4) {
                    /* ... */
                } /* end if 4 */
            } /* end if 3 */
        } /* end if 2 */
    } /* end if 1 */

    OK, so it's not perfectly useful C, but that's really a triviality.

    This is what the official Amiga programming examples looked like, back in 1990 or so.

    EG.,

    resource_1 = allocate_resource();
    if (resource_1)
    {
      initialize(resource_1);
      resource_2 = allocate_resource(resource1);
      if (resource_2)
      {
        initialize(resource_2);
        etc...
      
        destroy(resource_2);
      }
      destroy(resource_1);
    }
    

    where resource_1 might be memory, resource_2 is a bitplane based on resource 1, resource 3 is a viewport, etc...

    And that was back when monitors were substantially less than 1920 pixels wide.

  • Lost (inthe spaghetti) (unregistered) in reply to Rawling
    Rawling:
    I'm struggling to picture the top half of this code. else if statements don't lead to multiple close brackets.

    I imagine it is something like the following:

    if($somevar == "something") {
      if($somevar2 == $somevar3) {
        if($somevar3 == "someplace") {
          if($somevar4 == "someone") {
            if($somevar5 == "somethingelse") {
              doSomething();
              } // end if 5
            else { // begin else if 5
              doSomethingElse();
            } // end else if 5
          else { // begin else if 4
             doSomethingTotallyDifferent();
          } // end else if 4
        } // end if 3
      } // end if 2
    } // end if 1
    

    Are your eyes starting to bleed yet?

    Ooh, and about the "line number" changing when adding code, it would only happen if some 'programmer' would incorporate a new root level if / else statement.... And that person should have at last 6 of his fingers cut off...

  • Gert (unregistered) in reply to Nagesh

    You're such a massive idiot

  • Gert (unregistered) in reply to Nagesh
    Nagesh:
    This is very much common scenario for all legacy code. It is intentional on part of author and further succession of developers is also required mandatory to follow same pattern.

    You're an idiot of epic proportions

  • (cs) in reply to Lost (inthe spaghetti)
    Lost (inthe spaghetti):
    Ooh, and about the "line number" changing when adding code, it would only happen if some 'programmer' would incorporate a new root level if / else statement.... And that person should have at last 6 of his fingers cut off...
    I'd recommend 11 fingers, counting both thumbs and the big finger located on top of his torso, between his shoulders. I believe it's often called a "head".
  • My Name (unregistered) in reply to Steve The Cynic
    Steve The Cynic:
    Lost (inthe spaghetti):
    Ooh, and about the "line number" changing when adding code, it would only happen if some 'programmer' would incorporate a new root level if / else statement.... And that person should have at last 6 of his fingers cut off...
    I'd recommend 11 fingers, counting both thumbs and the big finger located on top of his torso, between his shoulders. I believe it's often called a "head".
    You think someone like that can be stopped just by cutting off their head??
  • KEYSTROKE_NOT_FOUND (unregistered) in reply to F
    F:
    TGV:
    Jack:
    I weep for all you poor starving children, who don't have vi and therefore can't automatically hop to the matching beginning or end brace with just two keystrokes.
    Cry for me. I am an emacs user, where it takes one keystroke, not two, and where you can also jump to the enclosing brace with a single keystroke, not to mention differentiate an expression with 4.

    Have pity!

    I'm waiting for the editor that takes no keystrokes to do anything. Whoever is supposed to be producing it is certainly taking his time, and I wish he'd get a move on - I have stuff to get done.

    KEYSTROKE_NOT_FOUND

  • (cs) in reply to My Name
    My Name:
    Steve The Cynic:
    Lost (inthe spaghetti):
    Ooh, and about the "line number" changing when adding code, it would only happen if some 'programmer' would incorporate a new root level if / else statement.... And that person should have at last 6 of his fingers cut off...
    I'd recommend 11 fingers, counting both thumbs and the big finger located on top of his torso, between his shoulders. I believe it's often called a "head".
    You think someone like that can be stopped just by cutting off their head??
    No, but at least then everyone around him would know that there is something wrong. What would you do if you found that there was a headless guy bashing on the keyboard with fingerless hands?

    (OK, yes, if he was the sort of person who produced this kind of mess, you probably wouldn't notice much change...)

  • Joe (unregistered) in reply to Kasper
    Kasper:
    while (something_to_do) {
      for (i=0; i<10 ; ++i) {
        if (i == 5) {
          // Code here
        } else {
          // More code here
        } // if (i == 5) { } else
      } // for (i=0; i<10; ++i)
    } // while (something_to_do)
    Except that we all know how it will end up looking:
    while (something_to_do) {
      for (i=0; i<8 ; --i) {
        if (frobnicate == FILE_NOT_FOUND) {
          // Code here
        } else {
          // More code here
        } // if (i == 5) { } else
      } // for (i=0; i<10; ++i)
    } // while (something_to_do) -- This shoudl never hapen.
    --Joe
  • (cs) in reply to Guran
    Guran:
    But, as usual, these comments should be a direct translation of the code they are commenting. ( i = 1; //set i to one)
    Can't tell if trolling or...
  • Captcha:enim (unregistered) in reply to PedanticCurmudgeon
    PedanticCurmudgeon:
    Guran:
    But, as usual, these comments should be a direct translation of the code they are commenting. ( i = 1; //set i to one)
    Can't tell if trolling or...
    I think he just missed a "not".
  • Anonymous Coward (unregistered) in reply to F
    F:
    TGV:
    Jack:
    I weep for all you poor starving children, who don't have vi and therefore can't automatically hop to the matching beginning or end brace with just two keystrokes.
    Cry for me. I am an emacs user, where it takes one keystroke, not two, and where you can also jump to the enclosing brace with a single keystroke, not to mention differentiate an expression with 4.

    Have pity!

    I'm waiting for the editor that takes no keystrokes to do anything. Whoever is supposed to be producing it is certainly taking his time, and I wish he'd get a move on - I have stuff to get done.

    Sorry it is taking so long, every time I go to test the editor I take my hands off the keyboard and wait for it to do what I want. Bootstraping the editor in self-same editor is a slow process. So far the editor has managed to write 0 lines of its own code... May take some time.

  • Nagesh (unregistered) in reply to MarkJ
    MarkJ:
    Nagesh:
    I ain't be massaging multiple keyboards.
    You may return to your bridge now.
    Ain't be played bridge. Prefer physical sports as in cricket.
  • Guran (unregistered) in reply to Captcha:enim
    Captcha:enim:
    PedanticCurmudgeon:
    Guran:
    But, as usual, these comments should be a direct translation of the code they are commenting. ( i = 1; //set i to one)
    Can't tell if trolling or...
    I think he just missed a "not".

    Yup. Sorry.

  • Nagesh (unregistered) in reply to Gert
    Gert:
    Nagesh:
    This is very much common scenario for all legacy code. It is intentional on part of author and further succession of developers is also required mandatory to follow same pattern.

    You're an idiot of epic proportions

    Ain't be a h8r.

  • (cs)

    This makes as strong a case for paired programming as I've ever seen. It's hard to justify a litany of useless comments when your partner stops you after the first and asks, "WTF are you doing that for?"

  • Nagesh (unregistered) in reply to Scrummy
    Scrummy:
    This makes as strong a case for paired programming as I've ever seen. It's hard to justify a litany of useless comments when your partner stops you after the first and asks, "WTF are you doing that for?"
    Ain't will work when both partner are scarecrows.
  • (cs) in reply to Gert
    Gert:
    Nagesh:
    This is very much common scenario for all legacy code. It is intentional on part of author and further succession of developers is also required mandatory to follow same pattern.

    You're an idiot of epic proportions

    You must be new here.

  • (cs) in reply to Nagesh
    Nagesh:
    Scrummy:
    This makes as strong a case for paired programming as I've ever seen. It's hard to justify a litany of useless comments when your partner stops you after the first and asks, "WTF are you doing that for?"
    Ain't will work when both partner are scarecrows.
    You used the word "scarecrow" correctly. That sets a bad precedent.
  • Chelloveck (unregistered) in reply to dkf
    dkf:
    An indentation level of (at least) 19? Refactor it from orbit, it's the only way to be sure.

    I wish I had code from one place I worked. A block of supposedly C++ code (well, we were using a C++ compiler, anyway) was deeply nested. How deep? I set my editor's indent spacing to 1 and reformatted it. On my 80-column display, I couldn't see the start of the text in the innermost block. Nested more than 80 levels deep, baby! Now that's manly-man code!

  • (cs)

    This is the kind of shit that happens when you blindly follow both “single exit” and the mistaken belief that “goto considered harmful” means “don’t use goto, ever.”

  • dogmatic (unregistered) in reply to Nagesh
    Nagesh:
    Scrummy:
    This makes as strong a case for paired programming as I've ever seen. It's hard to justify a litany of useless comments when your partner stops you after the first and asks, "WTF are you doing that for?"
    Ain't will work when both partner are scarecrows.

    TROLLFIGHT!!!

  • sinrtb (unregistered) in reply to J-L

    Before fancy code highlighting and intellisense sometimes matching braces were not highlighted or given any indication of there match (even today if your brace is more than a page back). what probably happened is during a build there was an error or a bug during testing that all came down to one missing brace or an extra brace, he commented the braces to make find the missing one, and just never bothered to remove the comments.

  • quis (unregistered)

    Completely legal code to me and a very useful habit. Picture this: You have this nested if-else-construct and each block has 20+ lines. It's very easy to loose track of which block is now closed by a bracket.

  • dogmatic (unregistered) in reply to quis
    quis:
    Completely legal code to me and a very useful habit. Picture this: You have this nested if-else-construct and each block has 20+ lines. It's very easy to loose track of which block is now closed by a bracket.

    There is no method to this madness.

  • unknown (unregistered)

    I am new to this site, with issues such as this are we allowed to offer ot look at source for the writer? I am usually goot at tracking sources of data etc.

  • big picture thinker (unregistered)

    These are the people that think it's bad practice to use "return" as a logic controller eg:

    if(!x) return; if(!y) return; if(z) return; //do something here

    Rather than: if(x) { if(y) { if(z) { //do something here } } }

  • (cs) in reply to Gert

    Gert, spend some more time here - Nagesh posts are meant to be humourous. The actual registered Nagesh usually is. The unregistered fakes are usually not even close.

  • Paresh (unregistered)

    Thats it people getting worked up over 26 nests? I've made deeper nets.

    To keep track though you should add

    Log('entering if #53');

    For each net. Lot easier to debug then step'en through.

    One more thing.... R'nt u writing code using a language then why leave comments in a different language? It just give people who don't know the programming language a chance to break code they can under stand. The compiler won't do what's int the comments but it will always do what's in the code. Developers should spend more time on getting code right and less time formatting comments to bad code tree paths.

    I'm serious about the log() part though.

  • Paresh (unregistered) in reply to notchulance

    0-8 is not there so what's to say it stops at 26?

    What if it goes like this

    If (var >= 1 ){ Print( "one" ) If ( var >= 2 ){ Print("two") ... If(var >= 1024){ Print("thousand twenty four") }//end 1024 ... }// end 2 }//end 1

    The program output could be

    Enter a number between 0-1024: 3 You entered 3: here are the words for each number One Two Three Can say each number?

    Could a cool kids learning app.

    Oh they were called applications I guess.

  • HappyGod (unregistered)

    So many people commenting on this really scare me. Mostly cause one day, I'm going to have to maintain their code!

    Comments like this are never a good idea. I don't care about your coding standards. Don't do it. For the love of God, don't do it!

    • Forget the single-exit crap, and have logic gates, so you don't have nested if statements that look like abstract art.
    • Comments that refer to line numbers (???!) or magic numbers are asking for trouble.

    And while I'm on comments

    <rant>

    Comments are the work of the antichrist. The only time you should ever use a comment is to explain why you are doing something. But never how you are doing it.

    If you have to write a comment that explains how you're doing something, then you have either written some terrible code, or you are insulting the intelligence of the developer who follows you.

    Sadly, I have to adhere to some pretty rubbish code standards here, and they enforce mandatory comments on public methods. So I have to resort to such insanity as:

    ///

    /// Gets the username for a user by id /// /// <param name="userId">The user id</param> /// <returns>The username for the user</returns> public string GetUsernameForUserById(int userId) { var username = ; return username; }

    This comment is worse than a waste of time. It's a liability! Not only does it not tell you anything you couldn't have gotten from the method signature, but the second it was written, the comment started becoming stale. Waiting patiently for the day when someone refactors the method without updating the comment.

    </rant>
  • Danielle (unregistered) in reply to Recursive Reclusive

    I submitted this code.

    It is 26 (and more) nested if

    And sadly, instead of putting comments like those:

    } //endif (Condition bla bla bla)

    They actually put those coments

    } // else if 25

  • Anone (unregistered) in reply to Paresh
    Paresh:
    If(var >= 1024){ Print("thousand twenty four") }//end 1024

    One thousand and twenty-four.

Leave a comment on “Unconditionally Useless”

Log In or post as a guest

Replying to comment #:

« Return to Article