| « Prev | Page 1 | Page 2 | Next » |
|
meow is the meow meow
yep |
|
These comments are useful. The original programmers realized how hard it would be to figure out which closing brace was for which conditional.
|
|
Bah, it makes total sense, they visually created a staircase, and the less likely the condition is, the steeper the slope - brillant!
|
|
// Ffith
// Forth // Thrid // Sekond // Frist! |
|
Looks like they were using the Waterfall model.
|
|
I guess a switch statement was too much trouble...
|
|
Seems like it would make it easy to use find on page? I put in similar comments like // end $someconditional
|
|
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.
|
|
This ain't much uncomon scenario for scarecrow code. It is intent on part of author and further massage of programer is also required mandatory to massage same patern.
|
Re: Unconditionally Useless
2012-07-03 16:07
•
by
J-L
(unregistered)
|
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. Or you could just not update the comments at all (I have a feeling that updating comments weren't a priority with these programmers), and just let those comments rot away, forever referring to incorrect line numbers. At least with your style of comment you can mentally tell which code block is ending without resorting to multiple keyboard presses and mouse clicks. |
Re: Unconditionally Useless
2012-07-03 16:08
•
by
Nagesh
(unregistered)
|
|
I ain't be massaging multiple keyboards.
|
|
I worked on a program like this once. Around 50 levels of nested IF; nested so deeply that, from time to time, the authors were "out-denting" the code, to keep it from getting indented too much.
It took weeks to unravel that mess. |
Re: Unconditionally Useless
2012-07-03 16:11
•
by
Recursive Reclusive
(unregistered)
|
Updating what line numbers? The conditional the endbracket is the end of, haven't changed. |
|
I'm struggling to picture the top half of this code. else if statements don't lead to multiple close brackets.
|
|
it's a gust front in code, leading to a storm of uncontrollable random numbers.
|
|
TRWTF is the invalid octal number at the end. If you're going to write bad code, at least write syntactically correct comments!
|
|
I can think of about 3 different ways to write that depending on what the actual necessity of it was... switch, loops, ||...
Should I consider myself lucky that I have never needed to solve a problem with 26 nested if statements? |
Re: Unconditionally Useless
2012-07-03 17:03
•
by
Sizik
(unregistered)
|
It's probably nested if statements. |
Re: Unconditionally Useless
2012-07-03 17:04
•
by
Christopher P Clark
(unregistered)
|
|
It's quite beautiful actually
|
|
The best part of those closing braces is that they form a (nearly) perfect curve. It's (almost) pleasing to the eye.
CAPTCHA: laoreet - the next Pokemon! |
You may return to your bridge now. |
Re: Unconditionally Useless
2012-07-03 17:40
•
by
Charles
(unregistered)
|
You mean your OS2/WARP IDE doesn't do that for you automatically? |
|
Context of this sucks, does the comment above at if block 15 say what the code is for/does?
Even then, shouldn't you be happy they added those? Yeah all the if blocks suck but at least you have a map. |
Re: Unconditionally Useless
2012-07-03 18:03
•
by
Karel
(unregistered)
|
|
They probably didn´t have a switch statement at that time.
|
Re: Unconditionally Useless
2012-07-03 18:05
•
by
J-L
(unregistered)
|
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. |
Re: Unconditionally Useless
2012-07-03 18:07
•
by
Kasper
(unregistered)
|
My thought exactly. A sequence like if (var == 1) {
Would only be a minor WTF in a language supporting a switch statement. But let's assume this is a company that has a coding standard, and that coding standard requires the use of a compound statement after an if and after an else to avoid cases where you accidentally have a conditional not covering exactly what you expected it to. In other words constructions likeif (x==1)might have been banned in favor of constructions like: if (x==1) {
This is a sensible requirement in many cases. However if it is applied to else if constructions it becomes ugly. If you apply this coding standard to the above sequence of else if statements you getif (var == 1) {
Commenting close brackets can be a good idea in some cases. If you do so, then indicate what sort of block you are closing. The comment is supposed to help not confuse even further. And such comments are mostly useful at the end of a long block. while (something_to_do) {
|
|
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.
|
Re: Unconditionally Useless
2012-07-03 18:39
•
by
Recursive Reclusive
(unregistered)
|
I don't really know what the comments in the original code whas supposed to be, but the suggestion from Captain Obvious was along these lines: if (irish_girl) { if (paula) { if (!frist) { WTF WTF WTF WTF WTF WTF WTF } // endif !frist } // endif paula } // endif irish_girl If your nested blocks gets longer than a page (I know the shouldn't, but sometimes...) this is actually a good way to make the code more readable. |
|
You see? This is why java needs case switch statements for strings!
|
Re: Unconditionally Useless
2012-07-03 21:34
•
by
Nobody in particular
(unregistered)
|
They do if you're anal about bracing everything: if(foo){
Technically, else ifis a "one-line" unbraced else. |
|
I want to see the code around it. What is it supposed to do? The number 26 makes me think it has something to do with alphabetizing, but the "09" at the bottom REALLY makes me wonder.
|
|
Now that's a bad case of else-if-heimer.
|
|
This is all nonsense. The following is perfectly valid C:
if (1) {
OK, so it's not perfectly useful C, but that's really a triviality. |
|
I think the story's title, "Unconditionally Useless", is intended as a predictive description of the majority of the comments...
|
|
OK, just to point out the obvious here:
Commenting close brackets helps. Esp if the function is long. Yes the en-brackened code should not span a hundred lines, but we all know that happens, and if you at least made some decent comments, refactoring your mess becomes easier. But, as usual, these comments should be a direct translation of the code they are commenting. ( i = 1; //set i to one) if you do something like this if (i > 5) // explanation of why the first five are special { //long messy code here } else // we are no longer in the special case { //more messy code here } You might still have written crap code, but at least cleanable crap. Big difference. |
Re: Unconditionally Useless
2012-07-04 03:37
•
by
TheSHEEEP
(unregistered)
|
The good thing is, though, that we don't need three years to master a 100% unintuitive writing system to write code faster than in normal IDEs. And besides, every useful IDE can do what you just described in few keystrokes. |
Re: Unconditionally Useless
2012-07-04 04:29
•
by
Your Name
(unregistered)
|
It's not an unsolvable problem, is it?
That's the beauty of this approach. If used correctly, you will never run out of numbers (in the correct order) for your blocks. |
Re: Unconditionally Useless
2012-07-04 05:07
•
by
Honnza
(unregistered)
|
In that case, I suggest octal:
captcha: ACSI - any strict subset of ASCII, jumbled (such as EBC-DIC). |
|
An indentation level of (at least) 19? Refactor it from orbit, it's the only way to be sure.
|
|
It looks like a clumsy fudge to compensate for the bad tooling of the day.
|
|
It reminds you how many more braces you need to close.
I came across bunches of nested-ifs when writing in C and you have to check the return value of every function call you make. Not sure it came to as many as 26 but certainly can get to 5 or 6. At each stage though the else would handle what failed and you would possibly need to clean-up the last thing that was properly allocated (the hidden "finally") after the if..else block. C++ is so much nicer for this. |
|
Maybe it was the frist version of this earlier WTF.
|
|
Right. Who's for just ripping it out and seeing what breaks? Anyone? Just me then?
I'd say a refactoring is in order here. |
Re: Unconditionally Useless
2012-07-04 07:49
•
by
Najeff
(unregistered)
|
Don't be ridiculous! I've been using vi for 28 years and I still haven't mastered it. |
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! |
Re: Unconditionally Useless
2012-07-04 09:06
•
by
F
(unregistered)
|
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. |
Re: Unconditionally Useless
2012-07-04 09:24
•
by
no laughing matter
|
The current java does have Strings in switch-statements. Degrading one step further down to PHP in every new release... |
Re: Unconditionally Useless
2012-07-04 09:31
•
by
no laughing matter
|
UPDATE: The example in chapter "Using Strings in switch Statements" is an epic fail of indeed nearly PHP-like dimensions. String.toLowerCase() uses the rules of the default locale. So set default locale to "tr TR" and test with:
|
Re: Unconditionally Useless
2012-07-04 09:49
•
by
RandomGuy
(unregistered)
|
This cries for the obligatory XKCD. |
Re: Unconditionally Useless
2012-07-04 09:49
•
by
C-Octothorpe
|
Protip: if you're doing it this way, you're doing something wrong... |
| « Prev | Page 1 | Page 2 | Next » |