Linked by Thom Holwerda on Thu 8th May 2014 20:12 UTC
General Development

A large research project in the physical sciences usually involves experimenters, theorists, and people carrying out calculations with computers. There are computers and terminals everywhere. Some of the people hunched over these screens are writing papers, some are analyzing data, and some are working on simulations. These simulations are also quite often on the cutting edge, pushing the world’s fastest supercomputers, with their thousands of networked processors, to the limit. But almost universally, the language in which these simulation codes are written is Fortran, a relic from the 1950s.

Ars looks at three possible replacements for Fortran.

Thread beginning with comment 588420
To read all comments associated with this story, please click here.
Comment by benb320
by benb320 on Fri 9th May 2014 02:14 UTC
benb320
Member since:
2010-02-23

What is wrong with it? Why replace it?

Reply Score: 2

RE: Comment by benb320
by Brendan on Fri 9th May 2014 05:51 in reply to "Comment by benb320"
Brendan Member since:
2005-11-16

Hi,

What is wrong with it? Why replace it?


A computer only does about 25 simple things (copy, add, subtract, ..., compare, branch).

It's a language designer's job to make it seem complicated by combining multiple simple things. Examples include the "+=" operator in C/C++ (which combines copy/assignment and addition), a typical loop (that combines comparisons and branches), and templates in C++ (that combine higher level things with Cthulhu).

Basically, language designers don't like Fortran because they don't think it's complicated enough. They'd much rather see something like Haskell. Their theory is, nobody ever complains that Haskell isn't complicated enough, therefore it must be good. :-)

- Brendan

Reply Parent Score: 7

RE[2]: Comment by benb320
by pica on Fri 9th May 2014 11:17 in reply to "RE: Comment by benb320"
pica Member since:
2005-07-10

Hi,
A computer only does about 25 simple things (copy, add, subtract, ..., compare, branch).
...
- Brendan


You can further abstract it.

A computer
* loads a data item
* performs an operation on data
- arithmetic/logic operation
- jump operation
* stores a data item

And as I stated before:
Lisp is the proof that code and data are isomorph.

As a result a data item might be an instruction.

Greetings,
pica

Edited 2014-05-09 11:25 UTC

Reply Parent Score: 3