Hacker News new | ask | show | jobs
by huhtenberg 1736 days ago
Seems to be mixing up software with code.

    > 3. Good software is aesthetic
    >
    >    Take a moment to step back and look at your code. 
    >    It should look beautiful to you. 
    >    ...
It's not that the code quality doesn't matter, but this is just apples to oranges.
1 comments

I'd go even further and say code is pretty strictly a liability. If you don't hate your code enough to throw it away and replace it on a whim, then you've made it more important than it should be. Why else would we encourage things like loose coupling and building upon abstractions? That thing you're abstracting away is likely to be thrown away at some point and replaced with something different.

I can understand feeling pride in your work and all that, but let's not pretend--the code I write today is probably best viewed through beer-goggles, not in a wedding dress :D

While I think the core of your idea is right, some could understand it the wrong way:

> If you don't hate your code enough to throw it away and replace it on a whim, then you've made it more important than it should be.

You shouldn't write code you hate just to avoid attachment. What you should do instead is to develop the ability to (as product designers tend to say) "kill your darlings". You should love the code you create, but you should love the freedom even more that comes with being able to wipe it away with one stroke. Like sand drawings in a zen garden you should accept that nothing is ever final and don't let the things you created excert power over you.

You can also be proud of what you created as well, not because the thing is the thing it is, but because you made it and you were happy with how it turned out under the circumstances of the moment, maybe you even learned some things. Circumstances and the whole world change (including you), so what you created might not be up to the task anymore, you might be able to create something even better, more reduces, more clear, etc.

And you can feel all that while still happily throwing away your code. It is not a contradicition.

I hear you, and I agree. There are a lot of subtle factors that go into designing good software. And even if you could write code that never needed to be rewritten or thrown away, the desired outcomes change over time anyway, so eventually you just end up with a really nice paper-weight. Still, if you go out of your way to write crappy code you'll end up with a crappy outcome.