From: Georg Bauhaus on
On 4/4/10 6:46 AM, Nasser M. Abbasi wrote:
> I was browsing the net for scientific software written in Ada, and came
> across this strange statement:
>
> http://farside.ph.utexas.edu/teaching/329/lectures/node7.html
>
> "Scientific programming languages
> What is the best high-level language to use for scientific programming?
> This, unfortunately, is a highly contentious question. Over the years,
> literally hundreds of high-level languages have been developed. However, few
> have stood the test of time. Many languages (e.g., Algol, Pascal, Haskell)
> can be dismissed as ephemeral computer science fads. Others (e.g., Cobol,
> Lisp, Ada) are too specialized to adapt for scientific use.
>
> ......
>
> The remaining options are FORTRAN 77 and C. I have chosen to use C "
>
> I find this strange, because I think Ada can be the best programming
> language for numerical work. So, I do not know why the author above thinks
> Ada is "too specialized to adapt for scientific use". Is there something in
> Ada which makes it hard to use for scientific programming?

The text, by Professor Fitzpatrick, Physics, 2006, appears to be an
fine example of quite useful justification rhetoric.
(Of the kind well explained by, e.g. Leon Festinger or Irving Goffman.)
It is full of false facts that in general would offer
to an author the comforts of blissful ignorance and a convincing
appearance at the same time. (Who has not been in this situation?
Assuming that a quick proactive defence of your standing is
more tempting than the alternative: is to shut up?)


C99 (note the year) has complex types, says C hasn't. Well, it hadn't,
as some point in the last century.

Inexpensive compilers for Fortran 90 were available that year (2006),
AFAIR, from Intel or the FSF. NAG has academic pricing for its
Fortran compilers, at least now, possibly earlier. There are more.

The info about C++ is rather dated in 2006---templates and
interfaces would be closer to its focus, I'd think. The remark
seems to draw its persuasive power from a brevity that only
repeating hearsay can offer, as someone noted.


During the last few months I had a chance of hearing about Fortran
versus Ada in scientific computing where the subject is concurrent
execution on many processors, with some communication. It turns
out that there is no reason to dismiss either Ada or Fortran,
judging by the results: tasking can be as good as MPI.
There is, however, reason to believe that OpenMP does not scale
well. (From a superficial glance at OpenMP 3.0, I see so many
words sounding familiar in an Ada context (task, barrier, shared,
parallel regions, ...). Are they performing mostly the same experiments
that, I think, were done in the 1970s? I'd speculate that the
parallel constructions aren't novelties in an HPF world, either?)

As Dmitry Kazakov has recently said, when Ada run-time systems
starts addressing the properties of multicore hardware
there is hope that it could really shine: Not just because concurrent
sequential processes are so simple to express using Ada tasks
---and you'd be using only language, not a mix of libraries,
preprocessors, specialized compilers, programming conventions,
etc. But also in case the fine grained complexity of OpenMP 3.0
can be bridled by simple language and a good run-time system.
At little cost.
From: Keith Thompson on
Georg Bauhaus <rm-host.bauhaus(a)maps.futureapps.de> writes:
[...]
> C99 (note the year) has complex types, says C hasn't. Well, it
> hadn't, as some point in the last century.
[...]

Unfortunately, the C99 standard has not yet been universally adopted.
Very few compilers fully support it. Many support most of it,
but I understand that Microsoft's compiler still supports only C90
(with maybe a handful of C99-specific features).

Which means that as soon as you write "#include <complex.h>", you've
limited the portability of your program.

--
Keith Thompson (The_Other_Keith) kst-u(a)mib.org <http://www.ghoti.net/~kst>
Nokia
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
From: none on
On Mon, 05 Apr 2010 13:19:07 +0200, Georg Bauhaus wrote:

> On 4/4/10 6:46 AM, Nasser M. Abbasi wrote:
>> I was browsing the net for scientific software written in Ada, and came
>> across this strange statement:
>>
>> http://farside.ph.utexas.edu/teaching/329/lectures/node7.html
>>
>> "Scientific programming languages
>> What is the best high-level language to use for scientific programming?
>> This, unfortunately, is a highly contentious question. Over the years,
>> literally hundreds of high-level languages have been developed. However, few
>> have stood the test of time. Many languages (e.g., Algol, Pascal, Haskell)
>> can be dismissed as ephemeral computer science fads. Others (e.g., Cobol,
>> Lisp, Ada) are too specialized to adapt for scientific use.
>>
>> ......
>>
>> The remaining options are FORTRAN 77 and C. I have chosen to use C "
>>
>> I find this strange, because I think Ada can be the best programming
>> language for numerical work. So, I do not know why the author above thinks
>> Ada is "too specialized to adapt for scientific use". Is there something in
>> Ada which makes it hard to use for scientific programming?
>
> The text, by Professor Fitzpatrick, Physics, 2006, appears to be an
> fine example of quite useful justification rhetoric.
> (Of the kind well explained by, e.g. Leon Festinger or Irving Goffman.)
> It is full of false facts that in general would offer
> to an author the comforts of blissful ignorance and a convincing
> appearance at the same time. (Who has not been in this situation?
> Assuming that a quick proactive defence of your standing is
> more tempting than the alternative: is to shut up?)
>
>

The only reason I can think of is pure fashion - Ada has not been taken up
as a popular programming language for scientific use, therefore it is not
suitable. But choosing a language based on popularity is not the best
approach - although it does have some validity, providing you recognise
that popular today does not mean popular when you *really* need
maintenance on the software.

Dismissing Algol as ephemeral ignores its influence and continuing usage
as a base of pseudo-codes. Important numerical libraries were first
implemented in ALgol, and later translated to Fortran when Algol's
momentum faltered. But that again confuses usefulness of a language for
scientific programming with popularity. Ada is heavily influenced by
Algol, and I can see nothing in Ada that would prohibbit is wider uptake -
other, again, than fashion. It was a language designed to promote
re-usability, maximise correctness, and include efficiency and
portability, and still has a variety of compilers available, so I can't
see any reason why *not* to use it, if you are proficient in its use.
From: robin on
"none" <none(a)none.net> wrote in message news:pan.2010.04.05.20.51.46.20000(a)none.net...
| On Mon, 05 Apr 2010 13:19:07 +0200, Georg Bauhaus wrote:
|
| Dismissing Algol as ephemeral ignores its influence and continuing usage
| as a base of pseudo-codes. Important numerical libraries were first
| implemented in ALgol,

No, they were first implemented in machine code,
and later rewritten in Algol and FORTRAN.
The numerical procedures of the General Interpretive Programme
were written in machine code, from 1955.

| and later translated to Fortran when Algol's
| momentum faltered.


From: Shmuel Metz on
In <4bba8bf1$0$56418$c30e37c6(a)exi-reader.telstra.net>, on 04/06/2010
at 11:18 AM, "robin" <robin51(a)dodo.com.au> said:

>No, they

Who is "they"? Note the lack of a universal qualifier. Are you claiming
that all algorithms were developed first in machine code, much less all
algorithms developed in the 1960's and 1970's? For that matter, do you
know of *any* algorithm that was first developed in machine code? I'm sure
that there were some, but I'd expect them to be rare as hen's teeth and
mostly limited to the 1950's and very early 1950's.

--
Shmuel (Seymour J.) Metz, SysProg and JOAT <http://patriot.net/~shmuel>

Unsolicited bulk E-mail subject to legal action. I reserve the
right to publicly post or ridicule any abusive E-mail. Reply to
domain Patriot dot net user shmuel+news to contact me. Do not
reply to spamtrap(a)library.lspace.org