From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 8d3408f8c3,9bdec20bcc7f3687,start X-Google-Attributes: gid8d3408f8c3,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!feeder.news-service.com!newsfeed.freenet.de!news.teledata-fn.de!newsfeed.arcor.de!newsspool1.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Mon, 05 Apr 2010 13:19:07 +0200 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 MIME-Version: 1.0 Newsgroups: comp.lang.ada,comp.lang.fortran Subject: Re: Why is Ada considered "too specialized" for scientific use References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Message-ID: <4bb9c72c$0$6990$9b4e6d93@newsspool4.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 05 Apr 2010 13:19:08 CEST NNTP-Posting-Host: 9a21efc2.newsspool4.arcor-online.net X-Trace: DXC=@:jR]1>=9]>]E=H1Q9`7874IUKejV8>=3 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.