Hacker News new | ask | show | jobs
by tjr 5367 days ago
As a freshman studying calculus and physics, it's tempting to think that the world is a stunningly mathematically beautiful place: motion and speed and acceleration described so elegantly by functions and derivatives! But in the real world, things aren't quite so pure. We don't really have frictionless surfaces or massless objects. We have to complicate those beautiful functions. The beauty is still there, but it's not as obvious.

I think likewise, we can take a big-picture look at a software project, and in our minds we see the unadulterated beautiful design. We see the elegant solution to the problem. But when we actually go to code it, try as we might, we can't stay entirely elegant. There are edge cases that the elegance doesn't handle. There are obstacles that we didn't account for, and now must work around. There are requirements changes that come mid-stream and we don't have time to start over. There are deficiencies in our own understanding of our languages and libraries and compilers, and we don't do everything in the most optimal way.

The result has a well-designed interior, but just like real-world physics, there's a bunch of other stuff bolted on. And when an outsider looks at the code, it's hard to see the beautiful inner design amidst all of hacks.