by mh » Wed May 25, 2011 10:52 pm
...and there are different kinds of programs. If you're running a large overnight payroll, for example, that absolutely has to finish by 8AM, then you are going to be very concerned about speed and won't give a damn if $LATEST_FAD_LANGUAGE allows you to do the same thing in one tenth the code.
Likewise if you're trying to render a Quake scene with 30,000 epoly.
The moral of the story is that the whole "Unix philosophy" thing is really only appropriate for certain kinds of program - specifically command-line tools intended to be invoked from shell scripts, or similar small throwaway homebrew tools where performance isn't a constraint.
Little-known-fact: the vast majority of Quake engines are CPU-bound. Badly CPU-bound (that and they suffer atrociously from CPU/GPU sync issues). As soon as you've got the basics right in your renderer, you're going to find very quickly that CPU is your primary bottleneck, so that's where the most intense focus needs to be for future optimization, and where the most extreme potential for loss exists by doing something the wrong way, choosing inappropriate technology, or whatever.