Linked by Thom Holwerda on Fri 15th Feb 2013 10:40 UTC
General Development "Since I left my job at Amazon I have spent a lot of time reading great source code. Having exhausted the insanely good idSoftware pool, the next thing to read was one of the greatest game of all time: Duke Nukem 3D and the engine powering it named 'Build'. It turned out to be a difficult experience: The engine delivered great value and ranked high in terms of speed, stability and memory consumption but my enthousiasm met a source code controversial in terms of organization, best practices and comments/documentation. This reading session taught me a lot about code legacy and what helps a software live long." Hail to the king, baby.
Permalink for comment 552929
To read all comments associated with this story, please click here.
RE[8]: Comment by ilovebeer
by ilovebeer on Tue 19th Feb 2013 16:23 UTC in reply to "RE[7]: Comment by ilovebeer"
Member since:

There's always a certain degree of subjectivity, but you are trying to extend this subjectivity well beyond what is reasonable in order to rationalize bad code.

No, ... I'm saying the judgment that code is "bad" is often merely subjective. I'm not defending code that is broken, buggy, etc. For some reason that seems to have gone over some heads here.

Common attributes of bad code are lack of clarity, unnecessary complexity, insane difficulty to maintain, latent bugs which might not show up for years, etc.

lack of clarity: Disagree because it's too subjective. While code might be confusing to "you", it may be perfectly clear to another more able or experienced coder.

unnecessary complexity: Agreed.

insane difficulty to maintain: Generally agree. However, maintenance difficulty could be too influenced by a persons ability or lack thereof. If someone has trouble maintaining code it could be that they just aren't a very capable coder and not because the code itself is terrible. Remember, just because a person gets paid to code, doesn't mean they're good at it.

bugs: Agreed.

Reply Parent Score: 2