12 August 2016 1:59 AM (computing)
In computing, nobody goes in for moderation. Everything either ‘sucks’ or it ‘rules’. People write long grandiose and somewhat hammy paragraphs to damn or praise programming languages. I think I've just realized why.
If something is ‘just okay’ there's a feeling that you ought to fix it, rather than throwing the entire thing out and starting from scratch. If you can convince yourself and everyone else that the merely ‘okay’ is more evil than Satan himself, you have a much easier time making yourself feel justified in doing what you want to do anyway.
Of course you want to. Who isn't addicted to the thrill of a clean directory waiting to be filled up with project files after you roll the ultimate, most wonderful design around in your head.
I don't think this is bad or a sign of 'professional immaturity' or anything. I certainly don't subscribe to JWZ's “cascade of attention deficit teenagers” model. (I have trouble taking JWZ seriously. Anyone who spends their life in a field and dislikes everything in that field can't be very good.) I think the desire to rewrite is a pretty natural and healthy exuberance. Systems programming is a weirdly passionate field. Everyone gets hung up on ‘startup culture’ but startup culture is, really, a misfeature that ought to be got rid of. Once you brush all that capitalist claptrap into the dustbin of history where it belongs, you still have a bunch of people who care deeply about the layer at which a data placement strategy is materialized and have long, emotional email discussions about it.
Of course this reminds me of the old claim that hacking is as much an art as a science. Art is about æsthetics and passion, don't forget. I don't have any kind of prescriptive advice here, except that everyone having the mindset that they can and should bash out a vision of stunning perfection overnight is almost certainly a good thing. They won't. At least not overnight and probably not the first try, but they'll hit it eventually, and I'd rather have them aiming for it.