Print

Print


Paddy O'Brien wrote:
> Drew McCormack wrote:
...
>> The
>> algorithm you choose can often be much more important than the extra
>> cycles a compiler can save you. An advantage with C++/Java like
>> languages is simply that they are better at abstraction, and this can
>> make writing complex algorithms easier. The fortran version of the
>> algorithm would nearly always run faster, but writing the fortran
>> version may be considerably harder.
>>
> I find it very difficult to agree with this statement.  I've lost track
> of who said what, but several (IIRC, notably James Giles, who is one of
> several whose opinions I value) have said the other way around.  I.e.,
> it is harder to write other than Fortran to mimic what Fortran can do.

The claim that inheritance-based code improves productivity
is so common that I usually don't respond to it.  There's never
been any objective evidence to support the claim that objective
coding is more productive.  That's not been from lack of looking.
There are people (say, in the ACM) who would jump through
hoops to find verifiable evidence that inheritance is productive,
but no such luck.  I think the increased abstraction usually
serves more to confuse than to help.

The operative phrase in Drew McCormack's statement is "they
are better at abstraction, and this *can* make writing complex
algorithms easier." (My emphasis)  Maybe they *can*, if programmers
are properly trained to do so and to avoid the pitfalls.  Are they?
Can we expect that they will be?  I think the longer learning curve
of such techniques is so long that most actual coders (those that
actually write programs) move to higher positions in their companies
before getting that good!

--
J. Giles

"I conclude that there are two ways of constructing a software
design: One way is to make it so simple that there are obviously
no deficiencies and the other way is to make it so complicated
that there are no obvious deficiencies."  -- C. A. R. Hoare