Re: Programming "efficiently" on given hardware - what does it mean really?
From: Programmer Dude (Chris_at_Sonnack.com)
Date: 06/08/04
- Next message: Programmer Dude: "Re: Is there an object/array of all fields passed from a form..?"
- Previous message: Programmer Dude: "Re: Dream GUI toolkit (Was: GUI programming.)"
- In reply to: gswork: "Programming "efficiently" on given hardware - what does it mean really?"
- Next in thread: Randy Howard: "Re: Programming "efficiently" on given hardware - what does it mean really?"
- Reply: Randy Howard: "Re: Programming "efficiently" on given hardware - what does it mean really?"
- Reply: gswork: "Re: Programming "efficiently" on given hardware - what does it mean really?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Tue, 08 Jun 2004 08:22:54 -0500
gswork writes:
> "The most amazing achievement of the computer software industry is its
> continuing cancellation of the steady and staggering gains made by the
> computer hardware industry..." - Henry Petroski
>
> The following [edited] points summarise the discussion
Which, I think, missed an important point.
Of what you quoted, it boils down to:
>>> ...operating systems and many applications continue to get larger,
>>> slower and quite often less efficient relative to the hardware...
>>
>> Their efficiency RELATIVE TO THE HARDWARE is meaningless [...]
>> [Should be] relative to the problems to be solved [...]
The latter quote seems more random synapse firings, hard to say. I
retained the only bit that wasn't vitrol or left field tangerines, and
I'm buggered if I can derive much meaning from it.
Randy certainly has a point. Win2K boots for longer on a 2+ gig machine
than Win3.1 did on way primative hardware. But I think an important
point here is that W2K does a *lot* more and is a much better OS (it
actually IS an OS!). And, perhaps this has changed, but what I recall
of Unix boot times made the worst PC boot times trivial.
Recall the original Mac (or the original Mosaic browser). Back then
the horsepower didn't exist to drive the Mac usefully (nor did the
bandwidth for the WWW). IN TIME, the hardware caught up and allowed
the visions of designers to be fulfilled.
Consider the progression. Once we sat and waited for MS-DOS to boot.
Which it did, and it was good, and it did what it did (which wasn't
much). And the hardware got better and we waited less and less.
Then came early Windows. And again we waited. But Windows did more.
And in time the hardware got better and we waited less and less.
Then came teenage Windows. And we waited. And it got better.
And they begat adult Windows. And so on and so on.
Is the hardware catching up to the visions--which are in turn enabled
by ever better hardware? I'd bet that's a lot of what's happening.
Consider AOP or .Net or network computing. All are good ideas that
have useful places in our lives, but all REQUIRE high-power infra-
structure. AOP and .Net add more layers to software, and network
computing requires high bandwidth and reliability.
> I've had doubts about the need to be 'efficient' when in fact what
> applications need to do is a series of tasks that are unconnected
> to hardware 'efficiency' concerns.
Really? Do you have 'efficiency' concerns WRT operating your car or
your house? Do you run the engine heedlessly or run the A/C with
the windows open? Why are computing tasks any different?
Waste--in anything--is just wrong. You suggest some reasons why, but
I think you and the four respondents I see in this download all missed
the central reason.
> Yet I myself feel a pang of wastefulness when my compiled
> application seems "too big" or takes up "too much" cpu time and...
And, given your numbered guesses below and your posing the question
and your not providing your own answer..... means you Don't Know Why
you feel this way? (-:
> ...I know this is very common for programmers,
> programming discussions commonly refer to 'bloat' in relation to
> hardware for instance, and compare what used to be done with modest
> hardware. I do this now and then too.
But don't know why? Look in your heart, whadda ya see?
> I can think of several speculative reasons why programmers may feel
> that efficiency is dropping, that this is bad, and that hardware is
> the relational measure:
>
> 1) Because they want to 'stop the clock' at whatever point in their
> lives felt best, e.g. "in my day we did it all in 20 cycles on a Z80,
> not like you kids of today..."
>
> 2) Because being efficiently in tune with hardware is 'macho' or
> status enhancing somehow as arguably demonstrative of higher technical
> proficiency.
You've been trying to take Ed seriously for too long and it's warped
your mind. I suppose some oddballs might have longings like these,
but most normal programmers don't IME.
> 3) Because early computer programming simply had to be very concerned
> with hardware (it was the constraining factor) and this focus has hung
> around programming 'culture' ever since as an artefact of earlier
> times
Maybe some truth here. I do think hardware *continues* to be the
bottleneck and likely always will be (at least for high end apps;
many programs run as fast as possible now). Software probably leads
hardware, because developers shoot for useability in the future,
not right now.
> 4) Because programmers, like auto mechanics, have an appreciation of
> the hardware technology and simply don't like to see the 'engine
> thrashed' needlessly so to speak.
You're getting warm! (To what I think is the primary reason.)
You named a symptom, but not the cause!
> 5) Because they are keenly aware of the lost opportunity those cpu
> cycles represent, i.e. "those wasted cycles could be used to find a
> cure for x"
My response each time I read this is to laugh, snort or grin, so
I guess I don't think so. (-:
> 6) Because they see themselves as in the 'knowing crowd' within a
> market driven by the 'unknowing crowd', i.e. the consuming public,
> and are frustrated by the need to follow them (lots of programmer
> rail, often naively, about 'managers' and 'marketing'...
??? What does this have to do with the hardware/software equation?
Really, guy, lay off the nilgewater. It's affecting your mind, and
not in a good way.
> Or all kinds of other reasons (please add if you like)
In a word: elegance
The quality of a hack (the good def) is directly related to its
elegance. Which is a somewhat ineffible property, but pithiness
has a lot to do with elegance. Brevity of execution, doing a lot
with little, "swishing", dead center on the dartboard, a splashless
dive, killing two feathered dinosaurs with a single projectile....
There's sheer *beauty* in not wasting.
It's *cool* to use all the parts of the animal.
> I think it's a mix of all, each programmer having their own
> particular mix of reasons.
You missed the meeting where we all agreed on one. :-|
-- |_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? | |_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL | |_____________________________________________|_______________________|
- Next message: Programmer Dude: "Re: Is there an object/array of all fields passed from a form..?"
- Previous message: Programmer Dude: "Re: Dream GUI toolkit (Was: GUI programming.)"
- In reply to: gswork: "Programming "efficiently" on given hardware - what does it mean really?"
- Next in thread: Randy Howard: "Re: Programming "efficiently" on given hardware - what does it mean really?"
- Reply: Randy Howard: "Re: Programming "efficiently" on given hardware - what does it mean really?"
- Reply: gswork: "Re: Programming "efficiently" on given hardware - what does it mean really?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|