Subject: Re: OOP

From: Dale Southard -- Grad Student/Skydiver <[email-masked]>
Date: Wed, 09 Feb 1994 18:18:57 -0500 (EST)

>Paul Townsend replies:
>> I find this point mildly hilarious ! Just yesterday I came across an Amber
>> example where user in question had to increase an array parameter in order
>> to perform a calculation. Time to edit and recompile was minutes.
>> Increased execution time vs dynamic allocation (C etc ...) was probably a
>> second at most. Fair trade ? I think not.

Jerry Perlstein responds: 
> I agree with Dan Severances reply to this. I do Monte Carlo simulations
> than often run 7 days or more on an RS6000.  I have written code for this
> both in C and FORTRAN for this machine and frankly I must tell you that
> C is a poor second when it comes to number crunching speed.  While I prefer
> C as a language, the overwhelming need for fast turnaround time requires
> that I stick to FORTRAN. I don't see this changing anytime soon. I would
> be interested to know if anyone else has done comparisons.

The big question becomes: "on what basis do we benchmark a language?"

"Number Crunching Speed" is an undefined property.  Chemists (actually
scientists in general) will all shout in unison that Fortran is faster
(mainly because Fortran is a more restrictive language and thus easier
for the COMPILER to optimize).  Computer Scientists will (generally) 
favor C/C++ for reasons of flexibility and maintainability.  I had great
fun at the Parallel Circus (symposium on parallel/massively parallel
programming) watching the presentations...the Fortran and C/C++ camps
seemed to alternate presentations so that each talk could begin with a
diatribe on the superiority of [Fortran, C, C++, ...] over everything else.
The best moment was a Fortran group presenting the SAME algorithm a
previous presenter had implemented in C, JUST SO IT WAS IN FORTRAN...
you could have cut the air with a knife :-)

Back to my initial point, much of the arguement centers around what
one considers important....  Each of the langauges offers advantages
and disadvantages.  The problem with benchmarks (on languages or
machines) is that they really only give one specific piece of information,
"how fast can [machine, language] run this benchmark".  Everything
else is interpetation.  Add to that the fact that a "good" C programmer 
can make or break any compiler's optimization attempts (a little pointer
math, some register variables...) and you have a religious debate.  
Even better, if the debate gets boring just ask "which is better, 
UNIX or VMS?" and continue argueing without having to switch teams 
(since usually, Fortran --> VMS; C/C++ --> UNIX).

My opinion (if anyone is still reading and cares) is to choose the
langauge in which YOU work best, not the computer.  In the long it 
always costs more to run the programmer than the program.  
Minimizing programmer time is more important than milking that last 
5% out of your current hardware. If that were not the case, all of us 
would still be using Assembler (and in fact programmers that
absolutely need that last 5% still use Asm -- ask anyone who writes
video games what language they work in).

As always your milage will vary.

Dale Southard
University of Toledo