comp.lang.ada
 help / color / mirror / Atom feed
From: Optikos <optikos@verizon.net>
Subject: Re: The answer to "Can Ada replace FORTRAN for numerical computation?
Date: Mon, 5 Aug 2019 10:15:59 -0700 (PDT)
Date: 2019-08-05T10:15:59-07:00	[thread overview]
Message-ID: <3862f4a3-d3b2-4959-b6f4-08086738df2c@googlegroups.com> (raw)
In-Reply-To: <caae003e-2a33-463b-92b6-8fc9c38b7509@googlegroups.com>

On Monday, August 5, 2019 at 9:35:10 AM UTC-5, Shark8 wrote:
> On Saturday, August 3, 2019 at 6:30:36 AM UTC-6, Nasser M. Abbasi wrote:
> > There are also significant limitation to Ada as a language
> > for scientific computation, in particular with regard to
> > dynamic typing and storage allocation.
> 
> I think this is referring to things like dynamically-sized arrays, rather than "X is an integer there, now it's
> a String!" when talking about dynamic-typing, as it's obvious that the latter would obliviate the
> aforementioned properties of finding conceptual errors.

But there are 2 usages of considering something an integer for the moment in a few lines of code.  One is to floor-truncate a floating- or fixed-point number to an integer; Ada supports syntax for this semantic meaning.  But another is to consider a floating-point representation as a machine-word to perform integer-based bit twiddling to conform the representation of the floating-point number to some machine requirements or machine representation that Ada's syntax and semantics lacks; pre-1995 Ada (the subject matter of the paper referenced) was abysmal at this commonplace use case in Fortran, PL/I, and C.  By pursuing the restrictions that Ada80 and Ada83 did, then Ada effectively bit off more than it could chew:  to always standardize a superset of any numeric-analysis semantics or system-programming semantics that IEEE or NIST or NSF or the supercomputing community could dream up—and then put it into practice with relatively minimal number of years of delay from that advance emerging from IEEE or NIST or the supercomputing community.  In that implicit bite-off-more-than-Ada-could-chew implied responsibility Ada failed miserably, whereas the loosey-goosey languages had no such impediment, hence Ada lost that mindshare pre-1995.  Post-1995 Ada was never able to reverse the already-cemented-in perception that such use-cases could be supported in Ada95 and later.

> As to the storage-allocation, I suspect it is also referring to Ada arrays needing definite bounds in
> certain cases -- the ability to return properly-sized arrays from a function *should* be enough to ease
> this complaint *EXCEPT*, perhaps, when dealing with Very Large Arrays.

Again, Ada has had a storage-pool wisdom at the heart of its storage allocation strategies, but pre-1995 Ada staunchly lacked PL/I's and Fortran's and C's ability to ecumenically reach out and read/write/manipulate some other language's in-memory storage format, as a I-got-you-covered system-programming duty.  Once that perception concrete cured into being rock-solid against Ada83, post-1995 Ada was never able to convince people whose mind was already made up to reconsider their now-misperception that such use-cases could now be supported.  And even post-1995 never fully embraced this idea of Ada being the über-Alles one-language-to-call-them-all lingua-franca eye-of-Sauron agenda that it could have (and to accomplish HOLWG's mission for Green) taken on.  The closest that any language has come to accomplishing this mission is Oxygene in the inter-language Elements Compiler from RemObjects Software LLC, which can be such an  über-Alles one-language-to-call-them-all lingua-franca eye-of-Sauron among Pascal, Java, C#, Swift, any JVM language (e.g., Kotlin), any .NET language (e.g., F#), and any WebAssembly language.  Microsoft's Xlang could (if every potential doesn't end in a dead end or failure) be a 2nd approximation of this über-Alles one-language-to-call-them-all lingua-franca eye-of-Sauron vision.  Had Jean Ichbiah or HOLWG specified late-1970s Steelman (or would ti have been a successor:  StainlessSteelMan*?) requirements for such an Elements Compiler or such an Xlang, Ada would have achieved all its goals of being the replacement of most other programming languages and most other programming languages would have died off by now.

Returning more narrowly to Fortan in numeric computing:
For all the advances that Ada made as being the one-language-to-rule-them-all replacement for all purposes, Ada failed to have an ABI-based ecumenism to be the lingua franca between disparate languages during the interim decades that it would take to retire all other languages' source code & usage.  Ichbiah's team (and HOLWG too) completely botched this need for an ABI-based ecumenism for Green/Ada to achieve its lofty goals of replacing all other programming languages in use at DoD & NATO (and by extension:  in use everywhere, such as including NIST, NSF, and the supercomputing community that were staunch Fortran hold-outs until Julia appeared in recent years, and now we have modern OO-Fortran and upstart Julia duking it out for which will be the dominant mainstream language in those communities henceforth).

* Btw, speaking of a metallic successor to Steelman, has anyone else noticed that Rust appears to be a mocking tongue-in-cheek ferrous reference in the Ironman and Steelman sets of requirements for safe computing?


  reply	other threads:[~2019-08-05 17:15 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-22  4:38 The answer to "Can Ada replace FORTRAN for numerical computation? Nasser M. Abbasi
2019-07-22  5:53 ` Simon Wright
2019-07-22 10:32   ` Lucretia
2019-07-22 13:20     ` Simon Wright
2019-07-22 17:27       ` Lucretia
2019-07-24 23:45         ` Randy Brukardt
2019-08-15 16:45           ` Norman Worth
2019-08-15 19:07             ` Dmitry A. Kazakov
2019-08-16 18:29               ` Norman Worth
2019-08-16 19:23                 ` Dmitry A. Kazakov
2019-08-18 17:04                   ` Norman Worth
2019-07-23  1:35 ` Brad Moore
2019-07-23 23:42 ` Jerry
2019-08-03 12:30 ` Nasser M. Abbasi
2019-08-05 14:35   ` Shark8
2019-08-05 17:15     ` Optikos [this message]
2019-08-07  6:35       ` Niklas Holsti
2019-08-07 20:42         ` Optikos
2019-08-16 19:11           ` Norman Worth
2019-08-16 20:15             ` Jeffrey R. Carter
2019-08-17  2:38             ` robin.vowels
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox