Sunday 9 August 2009

Old Skool Coders and Their Misconceptions

I've been a software developer for a little over five years. Not very long. I've worked in the games industry for just about half of that. Now, I'm not sure if it's just the games industry or whether this attitude is prevalent elsewhere, but there's a certain mindset amongst long-time games coders that drives me nuts.

There's this common perception that new guys code wastefully. We don't optimise for every last ounce of performance, that we waste CPU cycles and memory with abandon. That we're 'spoiled' by new-fangled high level languages, that we don't know assembler, that we don't even have to manage our own memory with some of the newest languages. It's just so much bullshit. Never mind that the first thing a half-decent games engine implements is a memory management system, so as to avoid the majority of your coders having to work with raw pointers.

The real kicker for me is that these old schoolers bemoan our lack of optimisation obsession, without EVER stopping to think WHY this is such a prevalent trend amongst younger developers. They usually get as far as saying 'they just don't have to bother, with today's powerful CPUs and abundance of cheap memory'. This just misses the point. It's a sad, tired variant of every generations obsession with proving they 'had it tougher' than the next.

The real enemy in game development now is not hardware limitation, or poor performance. The REAL enemy in projects of significant size is COMPLEXITY. Their battle was with crappy hardware and limited resource. Ours is with 100-man teams and projects that span millions of lines of code. The fact that some people can't seem to recognise that there are different imperatives in software development now than there were coding single player games for the commodore 64 just gets me angry.