What is the advantage of Julia over Fortran?

I’m going to steal use this awesome example crediting you in my next talk about julia

12 Likes

@EIOceanografo, that is a really really cool presentation you gave there. Would It be okay to use them while crediting you? Thanks for the awesome slides!

1 Like

4 posts were split to a new topic: Validity of package documentation and examples

Yes, that’s also the rationale given in the documentation. I think it’s the wrong default: we should ensure reproducibility by default, and adding a devtools environment should be very easy, but opt-in.

(I guess this discussion of reproducibility could also be split into its own thread…)

2 Likes

This is such a good analogy!

1 Like

None that I know off. Most of it is C and C++ but there might also be some hardware running Forth still flying around. There is a lot of Fortran in the ground systems, though. Especially in orbital dynamics.

Speaking of which, here’s why I have not touched my Fortran code in years. The obvious benefits of interactive dynamic environments (REPL, plotting, less boilerplate) have all been mentioned. Modern Fortran is still very performant with little effort and IMHO a much better choice for technical computing than C++.

It is also true that Fortran77 is super portable and runs everywhere. In my experience, this was not true at all for Modern Fortran (Fortran2003+) five years ago. I needed to support 4-5 different compilers including Intel Fortran on Windows and some ancient GFortran which was an absolute nightmare. There were even miscompilations and compiler crashes when using “modern” features. In the end, I dumbed down my code to “Fortran95 with benefits”, shipped it to the client to fulfil my contract, and have not touched Fortran since :see_no_evil:

16 Likes

Fortran compilers have improved a lot recently (I agree the adoption of Fortran 2008 by the compiler vendors was very slow and agonizing, partly due to the significant distributed parallelism component of F2008). Intel, Cray, and NAG compilers already fully support Fortran 2018, which is quite impressive given the complexity of the native advanced parallelism features of Fortran 2018 (teams, events, …). GFortran covers a significant part of the Fortran 2018 (including the Coarray parallelism paradigm of F2018 thanks to the OpenCoarrays open-source library). NVIDIA has started a new LLVM-based Fortran 2018 compiler, which is a work in progress. Still, their classic (PGI) compiler does not support the Coarray parallelism features of F2008 and F2018, similar to the IBM compiler. These are the major players, but others like Absoft, Silverfrost, PathScale, Oracle, etc., partially support modern Fortran. Here is a relevant recent article on the use of modern Fortran in NASA missions.

5 Likes

Yes, by all means!

Paywall :frowning:

NASA publications can always be found on NTRS: https://ntrs.nasa.gov/api/citations/20180000413/downloads/20180000413.pdf

3 Likes

The big thing I don’t like about Fortran is that it always looks like it’s yelling at me.

1 Like

Does it still? Fortran Programming Language

2 Likes

Huh – today I learned they renamed it from FORTRAN to Fortran a while back, and FORTRAN has just stuck around for a while.

(To be clear, my comment was a joke.)

4 Likes

Pretty sure I have told this story around here before but here it goes:

I was once admonished during peer review for misspelling FORTRAN as Fortran. I replied that FORTRAN has been called Fortran since Fortran90.

THIS IS WHAT YOU GET WHEN YOU MAKE YOUR LANGUAGE CASE INSENSITIVE :rofl:

10 Likes

The reviewers become case sensitive?

5 Likes

At least they stopped yelling FORTRAN at me :rofl:

5 Likes

The NAG Fortran compiler was announced the same day as the M1 announcement.

1 Like

NAG Fortran compiler does not fully support F2018 or F2008. There is partial support for these and full support for F2003.

  1. Apple announced the new M1-based Mac in June 2020, not November
  2. Developer Transition Kits have been made available soon after the announcement
  3. Members of the Julia community got them very quickly and realised there was no Fortran compiler: Julia has a dependency, namely OpenBLAS, which needs a Fortran compiler. Of course this affected not only Julia but any other numerical computing community
  4. Iain Sandoe started porting GCC to the new platform at the beginning of August 2020, by the end of the month it was already in a usable state
  5. In early September 2020 we had already the new port of GCC in BinaryBuilder, so that we could build OpenBLAS for that platform
  6. The NAG compiler came way too late for us. Also, it’s commercial, so we wouldn’t have used it for an open source project anyway
  7. Welcome
8 Likes

The DTK (using an A12Z) was not the same as the M1, as I found out. The first day one could buy an M1 was 10th of November and you could buy a Fortran compiler the same day.