Optimisation

Optimisation is one of those religeous issues that crops up in programming from time to time. Like the placement of brackets, indenting schemes, naming conventions, language choice, methodology, the list goes ever on and on...

Who
Like many religeous issues, the discussion is dominated by people who do not work in environments where the optimisation issues that they so zealously defend would make much difference anyway.

Those that argue that you shouldn't optimise or you should optimise only after profiling completed and working code, tend to work with hugely powerful hardware that is quite capable crunching even intentionally sub-optimal code. The programs they write are frequently not interactive and run on machines that are otherwise idle most of the time.

On the other hand, those that place high store by fully specifying the most optimal algorithm for any calculation before coding even begins, often use highly developed and specialised tools that are quite capable of matching those optimisations or even surpassing them in some cases. They tend to work on programs where resources are expensive and the hardware requirements are specified in detail long before it is even manufactured.

But in the games industry, and on consoles in particular, we land squarely in the middle. Our hardware is powerful, but not enough to simply chew through our bottle-necks, or big enough to waste resources. The technology is bleeding edge and the tools are immature ports of existing compilers and often unsuitable for the platform.