Re: Current languages are a mess, what would you choose C#, Java or C++?
From: Randy (joe_at_burgershack.com)
Date: 01/11/05
- Next message: Randy: "Re: Java Reference Book"
- Previous message: CBFalconer: "Re: Current languages are a mess, what would you choose C#, Java or C++?"
- In reply to: beliavsky_at_aol.com: "Re: Current languages are a mess, what would you choose C#, Java or C++?"
- Next in thread: Stephen Howe: "Re: Current languages are a mess, what would you choose C#, Java or C++?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Tue, 11 Jan 2005 16:51:51 -0600
beliavsky@aol.com wrote:
...
>
> In Fortran 95, with its array operations and clean syntax (in the free
> format version, different from the old fixed format), it is possible to
> write code that is fast, efficient, understantable, and portable. Many
> vendors of Fortran compilers (Absoft, IBM, Intel, Lahey/Fujitsu,
> PathScale, Portland Group, SUN) also sell C and C++ compilers, and it
> is not too difficult to call C code for lower-level stuff. The
> interoperability of Fortran and C is standardized in the recently
> approved Fortran 2003 standard, and this is one of the first features
> that Fortran compiler vendors will add.
Agreed. F95 is certainly a language to be seriously considered when doing
scientific computing. I haven't mentioned it because the OP didn't suggest it
among his candidates and because I personally hate the mess that Fortran has
become. Perhaps half of F95's flaws are attributable to its insistence on
backward compatibility with F66 punch cards. The rest of its warts lie in its
having been designed by an endless succession of committees, apparently few of
whose contributors were fluent in structured languages. If any language can be
said to suffer from repeated surgery by committee, it's Fortran. But then,
maybe that's what happens to any old language that we refuse to let die a
graceful death -- we keep it alive on life support.
Needless to say, my opinion does not reflect that of my employer...
>
>>In a more perfect world, I'd prefer ISO Pascal to the languages you mention,
...
>
> I think Pascal is a bit verbose. Compare Fortran 90
Hmm. You just pushed another of my hot buttons.
IMHO, Verbosity in a programming language should NOT be considered a Bad Thing.
Probably the greatest weakness in modern programming languages is their focus
on abstracting and hiding semantics that often need to remain visible. When
operators are overloaded unexpectedly, constructors/destructors are invisibly
triggered, and worst of all, when algorithmic semantics are obfuscated by the
language's conventions, the programmer loses. A bit of verbosity can often
clarify the programmer's intention, not only to future programmers but to the
compiler as well.
I'm not arguing for the kind of deliberate verbosity present in COBOL, or Ada,
or early 4GLs. But insidious problems arise from the excessive conciseness of
Perl, APL, C's pointer syntax, and C++'s insidious multiple overloadings -- e.g.
'const', 'static', operators, constructors, and often even has-a inheritance).
These 'features' are BAD constructs (or are too easily used badly) and they
significantly damage the languages' ease of use or legibility.
Geez. I have a hard enough time keeping track of the details of the algorithm
I'm developing and multidimensional array indices. I don't need to be wondering
if I've misused some subtle rule of law of the language or another programmer's
polymorphism within an enormous programming language (e.g. F90) that was
unnecessarily updated by gracelessly tacking on trendy parts of syntax just to
please the masses.
(BTW, there's a wonderful analog here to baroque architecture or music, in case
someone is looking for a thesis topic for their IS program.)
> Since Fortran 90/95 has array operations, so that matrix multiplication
> can be done with just
>
> mm = matmul(m1,m2)
>
While I very much like Fortran's treatment of arrays as first-order language
constructs, the language's sheer size and clumsily glued-on extensions, (e.g.
its syntax for modules and interfaces, to name but ten), just kill its appeal
for me.
IMHO, evolution is NOT a healthy thing when it comes to programming languages.
When languages first arise from the sea, they're at their most beautiful. It
takes very little time in the mercy of committees before they inevitably
transmogrify into Frankenstein's monster.
It's kind of like having repeated plastic surgery. Each procedure brings yet
another injury. Eventually, enough injuries will kill the patient.
In languages as in life, there's no substitute for having good genes.
Randy
-- Randy Crawford http://www.ruf.rice.edu/~rand rand AT rice DOT edu
- Next message: Randy: "Re: Java Reference Book"
- Previous message: CBFalconer: "Re: Current languages are a mess, what would you choose C#, Java or C++?"
- In reply to: beliavsky_at_aol.com: "Re: Current languages are a mess, what would you choose C#, Java or C++?"
- Next in thread: Stephen Howe: "Re: Current languages are a mess, what would you choose C#, Java or C++?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]