Redundant Coding: The new paradigm!
-
Soemwhere, I've got an electronicafied copy of the Apollo Orbiter Guidance System Manual. Serriouly geeky stuff.
Panic, Chaos, Destruction. My work here is done. or "Drink. Get drunk. Fall over." - P O'H
-
Today my esteemed coworker invented a brand new programming paradigm: Redundant Coding (tm). This buggy old legacy code we are working with has a least three almost identical and insanely complicated instances of a special form of coordinate transformation. We want to simplify, but which one to keep? My coworker suggested that we compare the results of the three code blocks too see which one, if any, would give diviant results. This immideately lead to the idea of letting the three instances "vote" on the right result. And BAM the Redundant Coding programming paradigm was born. Just as a jumbo jet has three of everything just in case, our code has three almost identical code blocks, just in case one of them is buggy! If one code block produces deviant results, the other two will take over! I am, of course, kidding. We will clean this mess up eventually.
See, here we go again. It's just old technology wrapped up with a new name and released upon an unknowing public. I think this used to be called the Copy-Paste paradigm. :)
Chris Meech I am Canadian. [heard in a local bar] In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
-
Soemwhere, I've got an electronicafied copy of the Apollo Orbiter Guidance System Manual. Serriouly geeky stuff.
Panic, Chaos, Destruction. My work here is done. or "Drink. Get drunk. Fall over." - P O'H
Nagy Vilmos wrote:
Soemwhere, I've got an electronicafied copy of the Apollo Orbiter Guidance System Manual. Serriouly geeky stuff.
"electronica-fied". Wow, an Apollo Orbiter GSM set to blinding techno perhaps, now that is a geek-fest. :laugh:
-
I'm pretty sure the very model you describe is in use in some situations. Am I crazy for thinking that something along those lines was in use by NASA at some point? Or was that just a crazy story I heard? There's a scene in the movie Apollo 13 where the guys back in Houston need to check some maths. The camera pans along a line of slide rule wielding boffins all confirming that they get the same result and giving a thumbs up. -Rd
-
Today my esteemed coworker invented a brand new programming paradigm: Redundant Coding (tm). This buggy old legacy code we are working with has a least three almost identical and insanely complicated instances of a special form of coordinate transformation. We want to simplify, but which one to keep? My coworker suggested that we compare the results of the three code blocks too see which one, if any, would give diviant results. This immideately lead to the idea of letting the three instances "vote" on the right result. And BAM the Redundant Coding programming paradigm was born. Just as a jumbo jet has three of everything just in case, our code has three almost identical code blocks, just in case one of them is buggy! If one code block produces deviant results, the other two will take over! I am, of course, kidding. We will clean this mess up eventually.
Delphi4ever wrote:
We will clean this mess up eventually
Although you used the phrase "clean..up", the Google query (( Joel rewrite )) is actually ALL you need to bring up "Things You Should Never Do, Part I by Joel Spolsky". I find this query amazing - it makes me suspicious, that Google has tracked my searches, knows I am interested in programming stuff, and e.g. if some random person enters the Google query (( Joel rewrite )) then it might fetch a differently tailored hit list ? Anyway the article speaks for itself and being now an oldster I find myself agreeing, although I cringe at my history of youthful aspirations to "clean up" stuff.
pg--az
-
Delphi4ever wrote:
We will clean this mess up eventually
Although you used the phrase "clean..up", the Google query (( Joel rewrite )) is actually ALL you need to bring up "Things You Should Never Do, Part I by Joel Spolsky". I find this query amazing - it makes me suspicious, that Google has tracked my searches, knows I am interested in programming stuff, and e.g. if some random person enters the Google query (( Joel rewrite )) then it might fetch a differently tailored hit list ? Anyway the article speaks for itself and being now an oldster I find myself agreeing, although I cringe at my history of youthful aspirations to "clean up" stuff.
pg--az
I've just finished an almost complete rewrite of a system that I support. The users see relatively few differences apart from the fact that things are a little nippier. I see big differences when I need to react to features requests. The original app was developed under extreme time pressures by a developer that was figuring out ASP.Net as they went. I think I might have just about stayed within the spirit of that Joel article. I didn't start again with an empty IDE. It was an evolution, even if virtually every line of code in the App was touched at some point. Kinda like the Janitor that has had the same Mop for 30 years. He's changed the handle 6 times and the head 20 times, but it's the same Mop. -Rd
-
I've just finished an almost complete rewrite of a system that I support. The users see relatively few differences apart from the fact that things are a little nippier. I see big differences when I need to react to features requests. The original app was developed under extreme time pressures by a developer that was figuring out ASP.Net as they went. I think I might have just about stayed within the spirit of that Joel article. I didn't start again with an empty IDE. It was an evolution, even if virtually every line of code in the App was touched at some point. Kinda like the Janitor that has had the same Mop for 30 years. He's changed the handle 6 times and the head 20 times, but it's the same Mop. -Rd
Richard A. Dalton wrote:
I see big differences when I need to react to features requests
I didn't go back and reread Joel's article, but indeed if your app NEEDS to support further changes that can easily justify refactoring - bad code is so brittle.
Richard A. Dalton wrote:
developer that was figuring out ASP.Net as they went.
But, even Microsoft is figuring-out-stuff-as-it-goes. I don't know much about Asp.net personally, but synchronicity-wise I was just skimming slashdot and found a seemingly worrisome article -- Google query (( slashdot cookies ASP )) finds the article IT: New Crypto Attack Affects Millions of ASP.NET Apps[^]
pg--az
-
http://www.ibiblio.org/apollo/links.html[^] http://history.nasa.gov/afj/[^]
Quidquid latine dictum sit, altum viditur.
-
http://www.ibiblio.org/apollo/links.html[^] http://history.nasa.gov/afj/[^]
Quidquid latine dictum sit, altum viditur.
-
Yes, its probes' systems vote between the results of the calculations in metric, imperial, and knotted rope tied to a log that's thrown off the back.
-
Today my esteemed coworker invented a brand new programming paradigm: Redundant Coding (tm). This buggy old legacy code we are working with has a least three almost identical and insanely complicated instances of a special form of coordinate transformation. We want to simplify, but which one to keep? My coworker suggested that we compare the results of the three code blocks too see which one, if any, would give diviant results. This immideately lead to the idea of letting the three instances "vote" on the right result. And BAM the Redundant Coding programming paradigm was born. Just as a jumbo jet has three of everything just in case, our code has three almost identical code blocks, just in case one of them is buggy! If one code block produces deviant results, the other two will take over! I am, of course, kidding. We will clean this mess up eventually.
Delphi4ever wrote:
Today my esteemed coworker invented a brand new programming paradigm: Redundant Coding (tm). ... This immideately led to the idea of letting the three instances "vote" on the right result. And BAM the Redundant Coding programming paradigm was born.
Sorry, that's as "old as the hills".. or at least, as old as the Space Shuttle. Three computers, each with software written by a different team of engineers (so the bugs are in different places) that vote on the result. Everything's working correctly when every vote is unanimous, but it can fly when there's only a simple majority. They scrubbed a launch in the early days because the votes weren't all unanimous. Now there's the way to use your backup systems :)
patbob
-
Today my esteemed coworker invented a brand new programming paradigm: Redundant Coding (tm). This buggy old legacy code we are working with has a least three almost identical and insanely complicated instances of a special form of coordinate transformation. We want to simplify, but which one to keep? My coworker suggested that we compare the results of the three code blocks too see which one, if any, would give diviant results. This immideately lead to the idea of letting the three instances "vote" on the right result. And BAM the Redundant Coding programming paradigm was born. Just as a jumbo jet has three of everything just in case, our code has three almost identical code blocks, just in case one of them is buggy! If one code block produces deviant results, the other two will take over! I am, of course, kidding. We will clean this mess up eventually.
One place I worked had five (count'em...5!) different memory management routines because "Microsoft's doesn't work." Really? Could it be you just don't know how to use it? Because that's going to be a big surprise to the millions of other programmers using it. But hey, when management wanted my opinion they told it to me.
Psychosis at 10 Film at 11