# What is the advantage of Julia over Fortran?

**URL:** <https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964>\
**Category:** General Usage\
**Tags:** fortran\
**Created:** [August 6, 2021, 9:03pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964 "2021-08-06T21:03:32Z")\
**Posts on this page:** 20\
**Page:** 6

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [August 10, 2021, 10:28pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/102 "2021-08-10T22:28:14Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![learned\_fool](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/learned_fool/32/21934_2.png) [@learned\_fool](https://discourse.julialang.org/u/learned_fool)\
**Post date:** [August 11, 2021, 5:34am UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/103 "2021-08-11T05:34:28Z")

</div>

@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!

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [August 11, 2021, 7:08pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/104 "2021-08-11T19:08:47Z")

</div>

Split this topic on August 11, 2021, 7:08pm UTC

4 posts were split to a new topic: [Validity of package documentation and examples](https://discourse.julialang.org/t/validity-of-package-documentation-and-examples/66217)

---

<div class="post-metadata">

**Author:** ![sijo](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@sijo](https://discourse.julialang.org/u/sijo)\
**Post date:** [August 12, 2021, 9:57am UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/105 "2021-08-12T09:57:36Z")

</div>

> [@gbaraldi](#):
>
> I think what happens is that people have some development only packages i.e BenchmarkTools Revise OhMyREPL etc, and it would be a bit annoying, but I dunno.

Yes, that’s also the rationale given in [the documentation](https://docs.julialang.org/en/v1/manual/code-loading/#Environment-stacks). 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…)

---

<div class="post-metadata">

**Author:** ![SamBrand](https://avatars.discourse-cdn.com/v4/letter/s/c37758/32.png) [@SamBrand](https://discourse.julialang.org/u/SamBrand)\
**Post date:** [August 13, 2021, 11:15pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/106 "2021-08-13T23:15:19Z")

</div>

This is such a good analogy!

---

<div class="post-metadata">

**Author:** ![helgee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/helgee/32/2022_2.png) [@helgee](https://discourse.julialang.org/u/helgee)\
**Post date:** [August 14, 2021, 7:15am UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/107 "2021-08-14T07:15:11Z")

</div>

> [@dlakelan](#):
>
> I bet a bunch of space satellite stuff is still Fortran for example.

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 🙈

---

<div class="post-metadata">

**Author:** ![metau](https://avatars.discourse-cdn.com/v4/letter/m/f05b48/32.png) [@metau](https://discourse.julialang.org/u/metau)\
**Post date:** [August 14, 2021, 5:53pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/108 "2021-08-14T17:53:43Z")

</div>

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](https://arc.aiaa.org/doi/10.2514/6.2018-1451) on the use of modern Fortran in NASA missions.

---

<div class="post-metadata">

**Author:** ![ElOceanografo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eloceanografo/32/624_2.png) [@ElOceanografo](https://discourse.julialang.org/u/ElOceanografo)\
**Post date:** [August 14, 2021, 8:38pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/109 "2021-08-14T20:38:20Z")

</div>

Yes, by all means!

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [August 14, 2021, 8:44pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/110 "2021-08-14T20:44:54Z")

</div>

> [@metau](#):
>
> Here is a relevant recent [article](https://arc.aiaa.org/doi/10.2514/6.2018-1451)

Paywall ☹

---

<div class="post-metadata">

**Author:** ![danielmatz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/danielmatz/32/2285_2.png) [@danielmatz](https://discourse.julialang.org/u/danielmatz)\
**Post date:** [August 14, 2021, 8:49pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/111 "2021-08-14T20:49:12Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![ParadaCarleton](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paradacarleton/32/20005_2.png) [@ParadaCarleton](https://discourse.julialang.org/u/ParadaCarleton)\
**Post date:** [August 14, 2021, 9:18pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/112 "2021-08-14T21:18:45Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![jzr](https://avatars.discourse-cdn.com/v4/letter/j/eb9ed0/32.png) [@jzr](https://discourse.julialang.org/u/jzr)\
**Post date:** [August 14, 2021, 9:20pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/113 "2021-08-14T21:20:10Z")

</div>

Does it still? [Fortran Programming Language](https://fortran-lang.org/learn/quickstart/variables)

---

<div class="post-metadata">

**Author:** ![ParadaCarleton](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paradacarleton/32/20005_2.png) [@ParadaCarleton](https://discourse.julialang.org/u/ParadaCarleton)\
**Post date:** [August 14, 2021, 9:25pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/114 "2021-08-14T21:25:00Z")

</div>

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.)

---

<div class="post-metadata">

**Author:** ![helgee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/helgee/32/2022_2.png) [@helgee](https://discourse.julialang.org/u/helgee)\
**Post date:** [August 14, 2021, 9:34pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/115 "2021-08-14T21:34:56Z")

</div>

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 🤣

---

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [August 14, 2021, 9:47pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/116 "2021-08-14T21:47:19Z")

</div>

> [@helgee](#):
>
> THIS IS WHAT YOU GET WHEN YOU MAKE YOUR LANGUAGE CASE INSENSITIVE

The reviewers become case sensitive?

---

<div class="post-metadata">

**Author:** ![helgee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/helgee/32/2022_2.png) [@helgee](https://discourse.julialang.org/u/helgee)\
**Post date:** [August 14, 2021, 10:03pm UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/117 "2021-08-14T22:03:00Z")

</div>

At least they stopped yelling FORTRAN at me 🤣

---

<div class="post-metadata">

**Author:** ![Themos\_Tsikas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/themos_tsikas/32/28198_2.png) [@Themos\_Tsikas](https://discourse.julialang.org/u/Themos_Tsikas)\
**Post date:** [August 15, 2021, 10:05am UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/118 "2021-08-15T10:05:52Z")

</div>

[The NAG Fortran compiler was announced the same day as the M1 announcement.](https://www.nag.com/news/first-fortran-compiler-apple-silicon-macs)

---

<div class="post-metadata">

**Author:** ![Themos\_Tsikas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/themos_tsikas/32/28198_2.png) [@Themos\_Tsikas](https://discourse.julialang.org/u/Themos_Tsikas)\
**Post date:** [August 15, 2021, 10:30am UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/119 "2021-08-15T10:30:13Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [August 15, 2021, 10:47am UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/120 "2021-08-15T10:47:12Z")

</div>

1. [Apple announced the new M1-based Mac in June 2020, not November](https://www.apple.com/newsroom/2020/06/apple-announces-mac-transition-to-apple-silicon/)
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](https://twitter.com/StefanKarpinski/status/1281803282932027392): Julia has a dependency, namely OpenBLAS, which needs a Fortran compiler. [Of course this affected not only Julia but any other numerical computing community](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96168)
4. [Iain Sandoe started porting GCC to the new platform at the beginning of August 2020](https://github.com/iains/gcc-darwin-arm64), 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](https://github.com/JuliaPackaging/Yggdrasil/pull/1626), 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

---

<div class="post-metadata">

**Author:** ![Themos\_Tsikas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/themos_tsikas/32/28198_2.png) [@Themos\_Tsikas](https://discourse.julialang.org/u/Themos_Tsikas)\
**Post date:** [August 15, 2021, 11:59am UTC](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964/121 "2021-08-15T11:59:29Z")

</div>

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.

[Previous page](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964.md?page=5)

[Next page](https://discourse.julialang.org/t/what-is-the-advantage-of-julia-over-fortran/65964.md?page=7)
