Comment On Unconditionally Useless

"The code that I maintain was originally developed when OS/2 Warp was considered new," Danielle writes. "One of the biggest challenges I have is that the original coders are long gone, and the comments they left behind aren't exactly useful." [expand full text]
« PrevPage 1 | Page 2Next »

Re: Unconditionally Useless

2012-07-04 10:07 • by notchulance
384338 in reply to 384297
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..

Re: Unconditionally Useless

2012-07-04 11:32 • by PiisAWheeL
384340 in reply to 384308
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.

Re: Unconditionally Useless

2012-07-04 13:13 • by Yazeran
384341 in reply to 384295
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

Re: Unconditionally Useless

2012-07-04 13:18 • by mightybaldking
Wrap that in a for loop and you'd have something.

Re: Unconditionally Useless

2012-07-04 13:50 • by @Deprecated
384343 in reply to 384317
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.

Re: Unconditionally Useless

2012-07-04 17:10 • by Lost (inthe spaghetti) (unregistered)
384345 in reply to 384295
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...

Re: Unconditionally Useless

2012-07-04 22:50 • by Gert (unregistered)
384347 in reply to 384289
You're such a massive idiot

Re: Unconditionally Useless

2012-07-04 22:51 • by Gert (unregistered)
384348 in reply to 384289
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

Re: Unconditionally Useless

2012-07-05 05:57 • by Steve The Cynic
384351 in reply to 384345
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".

Re: Unconditionally Useless

2012-07-05 06:54 • by My Name (unregistered)
384352 in reply to 384351
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??

Re: Unconditionally Useless

2012-07-05 07:21 • by KEYSTROKE_NOT_FOUND (unregistered)
384354 in reply to 384333
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

Re: Unconditionally Useless

2012-07-05 07:49 • by Steve The Cynic
384355 in reply to 384352
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...)

Re: Unconditionally Useless

2012-07-05 07:52 • by Joe (unregistered)
384356 in reply to 384309
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

Re: Unconditionally Useless

2012-07-05 08:26 • by PedanticCurmudgeon
384357 in reply to 384319
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...

Re: Unconditionally Useless

2012-07-05 08:35 • by Captcha:enim (unregistered)
384358 in reply to 384357
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".

Re: Unconditionally Useless

2012-07-05 08:40 • by Anonymous Coward (unregistered)
384359 in reply to 384333
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.

Re: Unconditionally Useless

2012-07-05 08:59 • by Nagesh (unregistered)
384360 in reply to 384302
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.

Re: Unconditionally Useless

2012-07-05 09:01 • by Guran (unregistered)
384361 in reply to 384358
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.

Re: Unconditionally Useless

2012-07-05 09:01 • by Nagesh (unregistered)
384362 in reply to 384348
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.

Re: Unconditionally Useless

2012-07-05 09:48 • by 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?"

Re: Unconditionally Useless

2012-07-05 10:30 • by Nagesh (unregistered)
384365 in reply to 384363
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.

Re: Unconditionally Useless

2012-07-05 10:40 • by PiisAWheeL
384367 in reply to 384348
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.

Re: Unconditionally Useless

2012-07-05 10:44 • by PedanticCurmudgeon
384368 in reply to 384365
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.

Re: Unconditionally Useless

2012-07-05 10:59 • by Chelloveck (unregistered)
384369 in reply to 384324
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!

Re: Unconditionally Useless

2012-07-05 11:01 • by Sir Twist
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.”

Re: Unconditionally Useless

2012-07-05 15:04 • by dogmatic (unregistered)
384401 in reply to 384365
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!!!

Re: Unconditionally Useless

2012-07-05 19:11 • by sinrtb (unregistered)
384427 in reply to 384291
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.

Re: Unconditionally Useless

2012-07-06 12:51 • by 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.

Re: Unconditionally Useless

2012-07-06 13:17 • by dogmatic (unregistered)
384478 in reply to 384473
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.

Re: Unconditionally Useless

2012-07-07 04:52 • by 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.

Re: Unconditionally Useless

2012-07-09 09:26 • by 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
}
}
}

Re: Unconditionally Useless

2012-07-09 10:11 • by The Great Lobachevsky
384537 in reply to 384348
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.

Re: Unconditionally Useless

2012-07-09 20:33 • by 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.

Re: Unconditionally Useless

2012-07-09 20:49 • by Paresh (unregistered)
384654 in reply to 384338
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.

Re: Unconditionally Useless

2012-07-16 04:27 • by 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>
<strong>

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:

/// <summary>
/// Gets the username for a user by id
/// </summary>
/// <param name="userId">The user id</param>
/// <returns>The username for the user</returns>
public string GetUsernameForUserById(int userId)
{
var username = <code that gets the 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.

</strong>
</rant>

Re: Unconditionally Useless

2012-07-17 13:56 • by Danielle (unregistered)
385219 in reply to 384312
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

Re: Unconditionally Useless

2012-11-08 00:20 • by Anone (unregistered)
394427 in reply to 384654
Paresh:

If(var >= 1024){
Print("thousand twenty four")
}//end 1024


One thousand and twenty-four.
« PrevPage 1 | Page 2Next »

Add Comment