It was thus said that the Great Don once stated:
And, to be honest, I think "we" (developers, etc.) also take
advantage of the improvements in technology. Laziness creeps
in. E.g., I had to write a nice little search algorithm
to minimize a function. I didn't hesitate to pass int[50]
arrays AS ARGUMENTS to the *recursive* function (e.g.,
it will recurse to a depth of ~50 and each invocation
carries 200 bytes of int[] arguments). Sure, I could
write something more elegant but it's a throw-away
algorithm (to verify some parameters) that I *may* use
twice more in my lifetime??
For your example, it was development speed you were optimizing for, not
runtime nor memory usage. The problem though, is that often times it's the
throw away code that isn't thrown away but instead *becomes* the
application. One company I did some work for, Galacticomm, originally made
hardware (multi-port serial boards for PCs) and included was some sample
programs to show what the hardware could do; one of the programs was a
simple multiuser BBS program.
Well, it turns out people were buying their hardware *just* to get the
sample BBS program, so of course the focus of the company shifted to just
*that* program, which turned into the MajorBBS.
Of course, they didn't rewrite it or anything---just kept reworking the
same old codebase. It wasn't pretty [1].
-spc (And at the time, the entire company was in denial of the Internet.
Sad, really)
[1] I was brought in to help with the Unix port of the MajorBBS. I had
serious issues with not only the code itself, but the coding
standards used at the company. I didn't last long there.