Joel said:
Sure, but my point is that are some "hard" problems out there that are worth
pursuing, and these problems benefit greatly as a direct result of the cheap
CPU cycles and terabytes that come as a result of more "frivolous" needs such
as storing your MP3s, DVD collection, having an animated paper clip ask you if
you're writing a suicide note, etc.
For instance, this Christmas season
there are several $99 (and below) GPS navigation units available. Now, at
least to me, GPS navigation units do address a worthy problem -- helping
people get from point A to point B more easily and with fewer errors.
Sure, but: I know lots of people who have either unlearned or never
bothered to learn map reading. And then the batteries in the GPS unit
quit ...
It's like garage door openers. Power went, neighbor called "HELP! Can't
get my car out but need to go, now!". Went over there, pulled little
rope, clunk, rolled up door. "Wow, I didn't know this was possible!"
Well, I grew up in Europe where there are hardly any Genie drives on
garage doors.
Same with computers. Us older guys look at a circuit, kind of mush
inductors and caps into fuzzy math in our brains and conclude that it
ain't gonna work with those values, all within two sips of coffee or so.
Younger lad comes in, scratches head, says he'll simulate that. A half
hour later he sticks his head into the lab. "We need to increase L5 to
18.63 microhenry" ... "Ahm, we already stuck a 22uH in there and it's
fixed" ... "Oh".
Internally the map database for these units is often on the order of a
gigabyte and you've got some ~hundreds of MIPS CPU running the show, driving a
color LCD touchscreen and often having a Bluetooth phone interface as well.
Without the sort of "quick and sloppy" programming techniques that drove the
demand for cheap but fast CPUs and large storage devices, it'd probably be
another decade before the price for something like this would be under $10k.
And then this wonderful map sends you out on a "shortcut". Suddenly
after a while of four-wheeling you run out of road. Happened to a
neighbor. Or take UPS. After two failed delivery attempts showed up in
tracking they said "According to our map system the street and address
both don't exist" ... "Ahm, they do, since about 35 years" ... "I'll be
darn!"
Well, I'd agree it's likely to have an increase, although I can't really say
"just how huge" that increase would be.
Some people adopt the rather
pessimistic view that there are so-many bugs per lines of code, so the more
lines of code... the more bugs. Personally I think that with good software
development techniques, for the *overall product*, the number of bugs per
lines of code should drop as the LOC increases, because the overall product
isn't going to exercise every possible execution path and thereby be hit with
every bug.
I have adopted that pessimistic view, for the most part. Larger software
projects add one more layer of risk: Management. I often found that to
be a serious problem. Discipline is another matter. I can't even count
the cases of memory hogging anymore. "Could it be that you allocated a
huge swath of megabytes and never let go?" ... "Oh dang, that could be it".
Those are all things that acutally happened ;-)