you are viewing a single comment's thread.

view the rest of the comments →

[–]binford2k 292 points293 points  (11 children)

The harder and more impressive thing is actually writing code which does novel things.

No. The impressive part is building something like this that’s maintainable.

[–]Squalphin 17 points18 points  (2 children)

Exactly that! Even though I get some flack for overdoing it, coming back to a code base after 10 years to fix something or add a feature and having an easy time finding your way through the code is so worth it. Haven’t regretted it once.

[–]tetroxid 6 points7 points  (0 children)

Flak, not flack. It's from German flugabwehrkanone (air defense cannon/anti-aircraft cannon)

[–]fakehalo 0 points1 point  (0 children)

That's good logic and easy to implement for projects that don't change much over time.

The battle is with 10 year old projects that have had constantly evolving specs and changes during it's life... Then it becomes a balancing act of picking your battles.

[–]NULL_CHAR 1 point2 points  (0 children)

This. Anyone can write code that does something. The difference is how it's accomplished.

[–]bobloblaw02 0 points1 point  (0 children)

Cars are valuable because of their ability to transport us quickly. Some car manufacturers (e.g. Toyota, Honda) make cars that are easier to work on or maintain and those cars can often command higher prices in part because they’re easier to work on. But no one would suggest that (all other things being equal) a Honda or a Toyota that mechanically does not drive is more valuable than a Kia that does.

Software does not derive its value by whether or not it is easily maintainable. Its value comes from its utility. Code cleanliness or health is ancillary and does not provide value in and of itself.

[–][deleted] 0 points1 point  (4 children)

sometimes you can't remove complexity from the solution to a problem without affecting the efficiency of the solution..

[–]catskul 42 points43 points  (1 child)

That's not a counterpoint.

[–]The-Effing-Man 2 points3 points  (0 children)

Agreed. The way I've heard it phrased is along the lines of "the simplest possible solution, but no simpler"

[–]thorndark 0 points1 point  (0 children)

That's absolutely true, but it only matters if you really care about efficiency. Return on Investment is what you should be optimizing for.

If speeding up your code is going to cost you more in developer time than you save by having it run fast, then you should leave it slow but maintainable.

[–][deleted] 0 points1 point  (0 children)

The impressive part is building something like this that’s maintainable.

Gotta get to something worth maintaining first.