Re: thoughts on dynamic from a beginner's perspective



Dan wrote:
On Feb 7, 8:16 am, Jon Harrop <j...@xxxxxxxxxxxxxxxxx> wrote:
Dan wrote:
I still don't see what purpose would be served by translating good
working engineering and heavy duty numerical codes from Fortran to
another language such as Lisp ( or C++ or 'take your pick' ).  In
fact, I'll contend taht Fortran is still a very good language for
writing such codes today (fortran is no more a relic than Lisp is).
I've yet to hear a good argument for "translating" such codes.

Money. If you're selling good numerical codes then you will make a lot
more money by targetting popular languages than if you try to sell people
Fortran code.

Well... quite often, you need a code that has a functional purpose
within your own organization rather than one whose main purpose is to
make money through sales.

Then: safety. Interoperating between managed languages makes it trivial to
debug programs with no risk of segmentation faults or access violations.
That saves development time and, therefore, money.

Fortran only works well for certain kinds of numerical programs. For many
other numerical programs (e.g. FFT, FMM, DWT, suffix trees) Fortran is
suboptimal. For some other programs, particularly those requiring rich
data structures, Fortran is down right awful.

There are certainly codes for which fortran is not optimal. But...
there are also quite a few codes for which it is very optimal.

Very few, I think. Fortran has been almost entirely squeezed out by vendor
tuned libraries written in assembler (e.g. Intel MKL) and high-level
languages that are vastly more productive to develop in (e.g. Mathematica,
OCaml).

Indeed, I am only familiar with a single active project written in Fortran:
CASTEP.

In the same light,  you don't want some CS who's good at other
languages (maybe many languages) leading the developement of an
engineering or scientific code which requires an intense knowledge of
physical science and numerical analysis techniques.

I disagree. Familiarity with modern approaches is beneficial not
detrimental.

Yes and No. First off, not all modern approaches are necessarily
beneficial (though they may often be assumed as such).

Can you give specific examples?

If they were always truly beneficial, then we wouldn't see them come and
go so quickly.

Again, what exactly are you referring to?

Secondly, whenever you have someone without the numerical/
analytical knowledge making decisions on which algorithms to use for a
very scientific problem making the decisions, you're usually asking
for trouble.

Sure but you said they knew about modern software practices and not that
they did not know about numerical methods.

My bottom line "preference" for a large engineering or scientific code
would be for it to be lead by an engineer who is also well versed in
programming. A CS who's versed in engineering would be fine too,
but... those guys are more rare.

I see. By "CS" you imply that they are not familiar with numerical methods?
That is not always a clear distinction. For example, my degree was mostly
physics but also part CS.

Of course, another reason I feel languages such as fortran are often
good for numerical codes is because they will likely be maintained by
other engineers, etc. in the future. For those situations, I like
the idea of keeping things simple. I've seen enough engineers alter
and mess up fortran code. Imagine those same guys trying to maintain
a more complex language?

Modern languages are often simpler. For example, all functions accept one
argument value and return one value in ML, multiple values are represented
by tuples and there are no restrictions upon where function values can go.
That is a *lot* simpler that Fortran where there are many unnecessary
restrictions ranging from no recursion in F77 to no environment capture in
F2003.

Their strengths are often in their science rather than in their
programming wares.

Conversely, their programming wares can be their weakness.

I know a lot of computational scientists and would only trust the ones
familiar with modern languages to do a good job in developing numerical
software. I would not even consider collaborating with any scientists
developing software who were not familiar with modern techniques. They
would certainly do more harm than good.

So... I take it you agreed with my "reading" of the Fatemen paper
then?

Oh yes. :-)

--
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/?u
.



Relevant Pages

  • Re: Which direction is Fortran going?
    ... languages but no Fortran. ... If you need to solve a complex engineering problem, ... a young engineer or has other number crunching languages superseded it? ... Dont forget that when it comes to Fortran compilers, ...
    (comp.lang.fortran)
  • Re: thoughts on dynamic from a beginners perspective
    ... working engineering and heavy duty numerical codes from Fortran to ... money by targetting popular languages than if you try to sell people ... My bottom line "preference" for a large engineering or scientific code ...
    (comp.programming)
  • Re: Which direction is Fortran going?
    ... languages but no Fortran. ... If you need to solve a complex engineering problem, ... a young engineer or has other number crunching languages superseded it? ... IMO Fortran feels better for the purely computation subroutines ...
    (comp.lang.fortran)
  • Re: interpretive vs. compiled
    ... dynamic languages can be used for developing complex software. ... Example apps are EPANET, ... for specific needs in FORTRAN. ... I find it interesting that many of our engineering apps are still ...
    (comp.programming)
  • Re: List of software programs written in fortran (for engineers and scientists)
    ... Fortran was THE implementation language ... used ALGOL 60, many used Fortran, and many used other languages. ... Fortran codes in this field were or are:- ... These programs were used extensively on DEUCE ...
    (comp.lang.fortran)

Loading