[lug] can't make this stuff up, folks...
Davide Del Vento
davide.del.vento at gmail.com
Mon Oct 19 14:40:53 MDT 2009
Interesting, long, thread :-)
As a Software Engineer (actually I have a Ph.D. in Space Physics, but
always worked as a software engineer), I would agree that
> computing technology
> is doomed to remain stuck in "mediocrity" forever.
The Civil Engineer parallel is nice, but it doesn't work very well (my
best friend is Civil Engineer and we used to talk a lot about that
when I was living in Italy).
First, in Civil Engineering the cost of the design is about 10% of the
total cost of a project. In software is 90%.
Second, in Civil Engineering things don't break for a minor detail,
such a missing nail. In software, they do.
Third, in Civil Engineering tests are basically trivial (let's load
this cantilever with 110% of its nominal load: if it doesn't break,
you're done). Good luck on that with software.
Fourth, in Civil Engineer you don't deal with issues that are
mathematically demonstrated to be undecidable, or NP-hard, and the
like. In software, you do - and you are supposed to solve them! (think
compilers, just as a single example)
More, in Civil Engineer, if you make a mistake, you'll likely kill
somebody, thus the strict building codes everywhere in the world. In
software (usually) you loose somebody address book. Who cares? The
unregulated software costs 0.1% of the "proofed" one. When I worked on
satellites, we were using hw which was 20-30 years old, and even to
fix a well identified bug in software was often a no-no: "This version
of the software has proved to work. Yes there is this bug, but you
know about it and you might deal with the flawed data later. If you
fix it now, you might bring the spacecraft down, and loose the
mission". It wasn't fun.
These (and others) are issues are here to stay.
Others, hopefully, will disappear. I am also puzzled by the
buffer-overflow security problems occurring over and over in different
contexts. I hope that all Software Engineers will eventually learn. We
are still in the early days of "serious" testing, and of other serious
best practices. We will hopefully improve there too. I never seen
Civil Engineers arguing about T-shaped rods being better than L or
H-shaped ones - I always see Software Engineers doing that...)
I agree that, in software yesterday we were digging our homes in the
rocks like the guys in Mesa Verde. Today we are going to build a
geostationary elevator (see
http://en.wikipedia.org/wiki/Space_elevator ). And tomorrow morning we
are supposed to control the orbit of the Earth, to save us from the
expanding sun (see http://en.wikipedia.org/wiki/Sun#Life_cycle - I
told you that I'm a physicis :-)
In conclusion, I believe that yes, these issues probably will be
solved. Especially now that Moore's Law is gone, so there should be
more emphasis on (good) software, besides the dumb "it's 3 years old,
throw it away and buy the new hardware required by the new release".
But basically computing will remain stuck in what you called
"mediocrity" forever (I would call it "complexity curse").
Bye,
;Dav
On Mon, Oct 19, 2009 at 14:00, Nate Duehr <nate at natetech.com> wrote:
>
> It also seems to lead back to my wondering whether computing technology
> is doomed to remain stuck in "mediocrity" forever. Can't afford not to
> write "perfect" custom code, and can't afford to do it either... so the
> answer lies somewhere in the always-broken, never works 100% right,
> middle ground?
More information about the LUG
mailing list