Why I chose D over Ada and Eiffel
Ramon
spam at thanks.no
Thu Aug 22 13:10:36 PDT 2013
On Thursday, 22 August 2013 at 19:28:42 UTC, Nick Sabalausky
wrote:
> On Wed, 21 Aug 2013 18:50:35 +0200
> "Ramon" <spam at thanks.no> wrote:
>>
>> I am *not* against keeping an eye on performance, by no means.
>> Looking at Moore's law, however, and at the kind of computing
>> power available nowadays even in smartphones, not to talk
>> about 8 and 12 core PCs, I feel that the importance of
>> performance is way overestimated (possibly following a
>> formertimes justified tradition).
>>
>
> Even if we assume Moore's law is as alive and well as ever, a
> related
> note is that software tends to expand to fill the available
> computational power. When I can get slowdown in a text-entry
> box on a
> 64-bit multi-core, I know that hardware and Moore's law,
> practically
> speaking, have very little effect on real performance. At this
> point,
> it's code that affects performance far more than anything else.
> When we
> hail the great performance of modern web-as-a-platform by the
> fact that
> it allows an i7 or some such to run Quake as well as a Pentium
> 1 or 2
> did, then we know Moore's law effectively counts for squat -
> performance is no longer about hardware, it's about not writing
> inefficient software.
>
> Now I'm certainly not saying that we should try to wring every
> last
> drop of performance out of every place where it doesn't even
> matter
> (like C++ tends to do). But software developers' belief in
> Moore's law
> has caused many of them to inadvertently cancel out, or even
> reverse,
> the hardware speedups with code inefficiencies (which are
> *easily*
> compoundable, and can and *do* exceed the 3x slowdown you
> claimed in
> another post was unrealistic) - and, as JS-heavy web apps
> prove, they
> haven't even gotten considerably more reliable as a result (Not
> that JS
> is a good example of a reliability-oriented language - but a
> lot of
> people certainly seem to think it is).
I agree. However I feel we should differentiate:
On one hand we have "Do not waste 3 bytes or 2 cycles!". I don't
think that this a the, or at least not an adequate answer to
doubts of Moore's laws eternal validity.
On the other hand we have what is commonly referred to as "code
bloat". *That's" the point where a diet seems promising and
reasonable. And btw., there we are talking megabytes instead of 2
or 5 bytes.
Now, while many look in the hobby-programmers corner for the
culprits, I'm convinced the real culprits are graphics/gui and
the merciless diktat of marketing.
The latter because they *want* feature hungry customers and they
don't give developers the time needed to *properly* implement,
maintain, and repair those features.
Often connected to the this is the graphical guys (connected
because graphical is what sells; customers rarely pay for
optimized algorithm implementations deep down in the code).
Probably making myself new enemies I dare to say that gui,
colourful and generally graphics is the area of lowest quality
code. Simplyfying it somewhat and being blunt I'd state: Chances
are that your server will hum along years without problems. If
anything with a gui runs some hours without crashing and/or
filling up stderr, you can consider yourself lucky.
Not meaning to point fingers. But just these days I happened to
fall over a new gui project. Guess what? They had a colourful
presentation with lots of vanity, pipe dreams and, of course,
colours. That matches quite well what I have experienced.
Gui/graphical/colour stuff is probably the only area where people
seriously do design with powerpoint. I guess that's how they tick.
You can as well look at different developers. Guys developing for
an embedded system are often hesitating to even use a RTOS. Your
average non-gui, say server developer will use some libraries but
he will ponder their advantages, size, dependencies and quality.
Now enter the graphic world. John, creating some app, say, to
collect, show, and sort photos will happily and very generously
user whatever library sounds remotely usefull and doesn't run
away fast enough.
Results? An app on a microcontroller that, say, takes care of
building management in some 10K. A server in some 100K. And the
funny photo app with 12MB plus another 70MB
libraries/dependencies. The embedded sytem will run forever and
be forgotten, the server will be rebooted ever other year and the
photo app will crash twice a day.
More information about the Digitalmars-d
mailing list