Posted Mar 27, 2009 1:01 UTC (Fri) by nix (subscriber, #2304)
In reply to: Better than POSIX? by massimiliano
Parent article: Better than POSIX?
HEAR HEAR.
I'd estimate that I spend 20% of my time at work ripping out people's
buggy broken slow reimplementations of wheels and replacing them with a
wheel that uses twenty-to-forty-year-old techniques to do the same thing
faster and more reliably.
(And do the reimplementations stop? No! I ditched a chained hash table
implementation today which had a stupid bug which led to every element
landing in the same bucket. Obviously it was too hard to look
in "include/hash.h" to find that there was already a hash table in the
system with a better API...)
I mean it's not as if computers are bad at searching for things, but half
the people I work with are tentative and reluctant to just grep for a few
plausible terms to see if they can avoid reinventing the damn wheel yet
again.
Posted Mar 27, 2009 5:49 UTC (Fri) by quotemstr (subscriber, #45331)
[Link]
One explanation behind all these square wheels is the phase every programmer goes through during which he overestimates his abilities, has no sense of scale, and lacks sense for robustness. In short, he's proud, ignorant, and dangerous. He believes that libraries are bloated and slow, that he can out-perform standard implementations. He optimized prematurely, avoids function calls, abuses the ternary operator, and doesn't use a profiler.
Eventually, these programmers grow up, but in the meantime, they've written a significant amount of horrible code. I've seen this pattern again and again. As the parent mentioned, software developers have no "engineering culture." I imagine that in more established engineering disciplines, students have the above attitude beaten out of them before they graduate.