Programmers that think they're smart
-
Richard, I'm guessing you never had to deal with code that was complex enough that, some 3 months after writing it, the author had to figure out what he wrote? If so, count your blessings.
-
Web developers working on a 80 char terminal, trying to be "efficient" and clever: "Less lines means it's faster, right?" - every noob web developer "Who cares about indentation, we save 2 lines here this way!" - Apple before the SSL fiasco.
the y2k bug come to my mind. on a 8bit computer one byte per date is a huge space optimization, but i don't believe that mainframe COBOL programmers had to be that careful. also, i remember reading about an "optimization" of the old day ms-dos assembly programmers using the inability of i8086 to address more than 1MB so they wouldn't mind generating segment:offset addresses that past the megabyte barrier, because it will roll over and map into the address space of the zeroth+ segment. this of course caused latter compatibility issues. there was a similar man made "optimization" problem on the first mc68000 Amiga's, but i don't recall enough info to check what was the trick there.
-
earlier indeed "Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?" Brian Kernighan
-
Richard, I'm guessing you never had to deal with code that was complex enough that, some 3 months after writing it, the author had to figure out what he wrote? If so, count your blessings.
-
return JsonConvert.SerializeObject(Process(JsonConvert.Deserialize(inputStream.ReadToEnd())));
Such a PITA to inspect the intermediate results when debugging a problem. Is it bad data in the input? Is it bad data being produced by
Process
? Does the output JSON look like what the client is expecting? Wouldn't you want to do some validation before handing off toProcess
? What about atry-catch
if the deserialization fails? What about atry-catch
ifProcess
fails? :sigh:Latest Article - Slack-Chatting with you rPi Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Some IDE's have options to remove local variables. Don't ask me why! I like them for debug STOP locations as the poster prefers. I also like them for readability and documentation. Boolean summaryDescription = (super nasty Boolean expression with 4-8 components); if (summaryDescription) { handleIt(); } An ex-team member used to have their IDE preference to collapse these out of existence. I hated looking at my code after they had performed some minor tweak on my code along with a "reformat".
-
the y2k bug come to my mind. on a 8bit computer one byte per date is a huge space optimization, but i don't believe that mainframe COBOL programmers had to be that careful. also, i remember reading about an "optimization" of the old day ms-dos assembly programmers using the inability of i8086 to address more than 1MB so they wouldn't mind generating segment:offset addresses that past the megabyte barrier, because it will roll over and map into the address space of the zeroth+ segment. this of course caused latter compatibility issues. there was a similar man made "optimization" problem on the first mc68000 Amiga's, but i don't recall enough info to check what was the trick there.
Quote:
hey wouldn't mind generating segment:offset addresses that past the megabyte barrier, because it will roll over and map into the address space of the zeroth+ segment
Absolutely disgusting, this is the recipe CREATE legacy shit right from the start. I can't even imagine the hacks Microsoft must have had to do keep old Win32 apps working in a modern OS.
-
I feel your pain. I find always difficult to understand others code, even well written one (a former workmate wrote a
C++
library without comments, because 'clean code explains itself'. Well 'clean code' doesn't explain its rationale at all). Hence byzantine statements are the last thing I need. Anyway, I suppose my code might look byzantine to other people.Actually that C++ developer was correct in his belief in clean code explaining itself. However, "clean code" is only truly clean when a less experienced person can easily understand it. If you are a competent developer and found difficulties with understanding this person's code, than it is that developer who did not understand that his code was not as "clean" as he believed. Obviously, it was clean to him because he could easily understand it but he didn't take into account that someone else may not. Truly clean code means that the code is written with the most basic syntax available that will process the task efficiently. However, many developers believe their code is clean today simply because they wrote it in a legible manner while still using a lot of syntax sugar that vendors come up with in their compilers to make things simpler. Surprise, surprise! The result is exactly what you are complaining about... And with good reason...
Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com
-
return JsonConvert.SerializeObject(Process(JsonConvert.Deserialize(inputStream.ReadToEnd())));
Such a PITA to inspect the intermediate results when debugging a problem. Is it bad data in the input? Is it bad data being produced by
Process
? Does the output JSON look like what the client is expecting? Wouldn't you want to do some validation before handing off toProcess
? What about atry-catch
if the deserialization fails? What about atry-catch
ifProcess
fails? :sigh:Latest Article - Slack-Chatting with you rPi Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
-
return JsonConvert.SerializeObject(Process(JsonConvert.Deserialize(inputStream.ReadToEnd())));
Such a PITA to inspect the intermediate results when debugging a problem. Is it bad data in the input? Is it bad data being produced by
Process
? Does the output JSON look like what the client is expecting? Wouldn't you want to do some validation before handing off toProcess
? What about atry-catch
if the deserialization fails? What about atry-catch
ifProcess
fails? :sigh:Latest Article - Slack-Chatting with you rPi Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Looks like something that older Unix C programmers would write. Easy to code, difficult to read.
-
CPallini wrote:
Anyway, I suppose my code might look byzantine to other people.
or even to you in a couple of years
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.
Absolutely. I look back at some of my earlier stuff and immediately think "what the hell was I thinking!?" :laugh:
If your neighbours don't listen to The Ramones, turn it up real loud so they can. “We didn't have a positive song until we wrote 'Now I Wanna Sniff Some Glue!'” ― Dee Dee Ramone "The Democrats want my guns and the Republicans want my porno mags and I ain't giving up either" - Joey Ramone