From: Spike Jones (spike66@ibm.net)
Date: Thu Sep 14 2000 - 00:08:01 MDT
Emlyn O'Regan wrote many wonderful notions in his homeless post, including:
> ...As far as I can see, the tools have improved incredibly
> beyond what I was using 10 years ago when I started uni. So much more is
> possible; it's astounding. And yet, paradoxically, it is harder than ever to
> be a programmer. The job is getting more and more difficult. Why?
So, Emlyn has been hiding his light under a bushel. Why do you
indulge in as many wisecracks as... I do, when you are capable of
writing insightful passages like these? Shame! {8-]
Your notion of software implosion is something I have pondered often.
I am surely not alone when I confess I have developed code (excel
macro upon macro upon macro) which eventually became so
spaghetti-ed and complicated, I could no longer debug the mess. It's
easier to start over and do it right than try to fix the abomination.
Excel invites this kind of morass, because the macros start out
simple, then one tends to add shell after shell over time, kinda
like... windoze 98.
For instance, every sophmore physics student has been asked
on a test to answer a question like this:
An artilleryman fires a cannon ball at 500 meters per second
with the barrel 30 degrees from the horizon. How far does
the ball travel before it hits the ground? Assume flat earth
and no atmosphere.
Nowthen, the sophomores all derive the equation
s=2V^2/g*sin(alpha)cos(alpha) with a couple lines of
calculus, but doesnt it make you crazy? No one has
yet fired a shell on an airless planet! What about that air?
The next part of the physics problem asks you to show
that the optimal angle for max distance is 45 degrees, again
assuming no air. The student takes the derivative, gets
constants times sin^2(alpha)-cos^2(alpha), sets that to
zero, gets alpha is 45 degrees and shes done. But still,
no artilleryman has ever fired a shell in a vacuum, so
what do you do? Do you fire the cannon a little lower
than 45 degrees, to shorten the path a little, or aim a
little higher than 45 degrees to get up into the thinner air?
Turns out, this is one hell of a difficult problem to model,
which is why the sophomores dont get to solve it. The
atmosphere is difficult to model with a closed form equation,
so you need tables to get very precise, so you need...
excel! You get a good atmosphere table, use the VLOOKUP
function, and sad to say, a geek can entertain himself for
*weeks* if not months, fooling around with optimizing
trajectories.
It gets worse from there. It is easy to set up a spreadsheet
that calculates every second, looks up an atmospheric
density, calulates a drag, repeats. But then, well, the
atmosphere table is in increments of 500 meters, and thats
course, so why not write a linear interpolator? Well, then the
atmosphere is actually more exponential, so how about
an exponential interpolator? Next, a drag coefficient
routine that accounts for the increase in drag at and above
mach 1, then lets correct for deltas in viscosity of the
atmosphere, and pretty soon its a mess of code that grows
and grows in an uncontrolled fashion, layer upon layer,
until it can no longer be debugged.
The whole project is a total loss. Easier to just start over,
and do it right this time.
I can very easily imagine this case being analogous to what
could happen to our interconnected networks. It really
could overwhelm our best efforts. At this point Im not even
part of the solution, Im still part of the problem. spike
This archive was generated by hypermail 2.1.5 : Fri Nov 01 2002 - 15:30:58 MST