Turns
In troth, the Fortran programming language is well suited for those persons who are scientific and who engineer. Named so for the phrase “Formula Translation,” it is a language exquisite for programming machines.
into
In troth, the Fortran programming language is well suited for thoſe perſons who are scientific and who engineer. Named so for the phraſe “Formula Tranſlation,” it is a language exquiſite for programming machines.
Way better.
(Seriously, nice post, and well done on the title graphic font choice.)
I believe "thou doth do" should just be "thou doth" but I could be mistaken about what "doth" is. :)
I'll give it a shot as it seems interesting to at least have worked in it a bit, but I do wonder, where is Fortran used these days?
A quick glance at Tiobe[1] shows that it scored a bit higher than Haskell, Scala and Kotlin. Can anyone explain me why?
I don't personally work in Fortran, but I'm not repelled by the idea. The thing that would attract me to it, as a former computer graphics programmer, is the decent support for arrays. C99 is better than C89, but it's not where Fortran is. Sure, C++ can do it with classes but, goodness me, that is one complex language. One pays a hefty price if all one wants is decent array handling. And speaking of complex, Fortran has had complex numbers for decades. I've never used complex numbers in C99, so I don't know how they compare. I'm hearing murmurs of moving some things to Rust, when it matures, but I think the jury is still out on that.
I always like to include the quote below in discussions like this:
“I don’t know what the programming language of the year 2000 will look like, but I know it will be called FORTRAN.” – Charles Anthony Richard Hoare, circa 1982
It is also the only language I'm aware of that has a special syntax for distributed memory [1], making parallel distributed computing potentially extremely convenient.
Far as distributed, see Cray's Chapel and Taft's Parasail for languages trying to improve on that. Chapel's competition was IBM X10 and Fortress languages. Im not sure if those two are maintained any more, though.
- In-built support for multi-dimensional arrays and operations on arrays. This makes it so much easier to work with numerical datasets than in C.
- BLAS and LAPACK are the two foremost packages used for linear algebra. They're written in Fortran, so it's just a bit easier to use them, rather than their C APIs. I've had unpleasant experiences debugging things across the boundary between C and Fortran.
Also, as a language, there isn't much to it. If you're already familiar with the basics of programming, you can learn most of what there is to know about Fortran 77 in an afternoon, and pick up later additions to the language as you go. In physics, where the focus is getting grad-students to a point where they can do research quickly, having a language they don't have to spend a month figuring out is an advantage.
Not that I actually know, but what I hear is that it's still used for number crunching, and it's actually faster than C in some respects unless you make heavy use of C99 features. That is, very generally it doesn't support a few features of C that makes it easier to optimize some constructs, nut that C now has keywords which can signal the compiler appropriately so the same optimizations can now happen in C.[1]
I just looked that up from memory of prior discussions here though, so if someone with real experience chimes in, take them over me.
1: https://stackoverflow.com/questions/146159/is-fortran-easier...
Also, the PG (now nVidia) Fortran compiler makes it very easy to make your code run on a gpu with only adding some attributes to variables and some pramgas.
I see a lot or Fortran still being written in various parts of climate and earth science.
lol