Or you could use the free and open source GCC port at no cost
BTW, the availability of the NAG compiler (or also the GCC port, for that matter) completely misses my point: Fortran is slowly becoming a second-class language for hardware vendors not invested in HPC, like Apple. They didnāt make any effort to have a Fortran compiler available at any point on the new platform. There have been requests for a Fortran compiler on the Apple developers forum, but no official comment from there. But Iām sure you knew this already, since it seems like you advertised the NAG compiler also there (again, way later GCC had become available). It took third-parties to do the effort to bring a Fortran compiler for the platform
Gfortran 11 is currently marked āexperimentalā. The NAG compiler was released after passing all the tests we have at NAG.
I am trying to remember if Apple ever offered a Fortran compiler and I am drawing a blank. If this is new behaviour it must go back quite some time.
I do not wish to derail the conversation. I needed to make the point that some vendors, including NAG, support Fortran on machines likely to be used by people who do scientific computations.
I think the failure of current Fortran compilers to implement fully (or at least comprehensively) standards that are 4-15 years old speaks volumes about the state of health of this language.
You have a choice of two compilers claiming full F2018 conformance: Intel and HPE/Cray.
True. They are both protections of the investment of those two companies into their hardware though.
I donāt know if you are a fan of notebooks, but Plutoās new package manager is wonderful for reproducibility. I can create a notebook with a number of using statements and it grabs the latest packages, but then doesnāt update them unless I tell it to. And, if I send you the notebook, you will get the same versions that I used unless you choose to update. To be complete you would still want to run the same versions of Julia and Pluto as I did.
Even if you donāt use Pluto, you can manually make your using statements fully call out the package versions for the same effect.
Iāve been doing embedded stuff for over 30 years. Nearly all of it I saw was C or a limited subset of C++. Iāve seen a python interpreter get embedded in a system (almost accidentally - they intended it as prototyping but determined they could live with the performance for the specific tasks it was doing and left it in). I used to see assembly used on very small micros but havenāt seen that in a long time. I never saw Fortran in that space (despite being old enough that my āprogrammingā class was in Fortran).
Uhm, it seems the latest Intel Fortran has full Fortran 2018 support.
It is called Intel OneAPI, and it is completely free from now on.
It looks like people no longer need to purchase an Intel Fortran/C++ and MPI compiler anymore.
This is perhaps a positive signal.
Nvidia also has its Fortran compiler,
For some reason, it seems Fortran always has support from those giants.
There are some promising efforts towards making Fortran interactive such as LFortran etc, as well as making installing Fortran libs more easy. If those efforts could be successful, hopefully it might somehow make Fortran a little bit more popular.
You keep bringing this idea of corporate investment up, but I donāt think it has that much importance. Python does not have this kind of corporate investment and is much more popular than Fortran.
Thing is, those Fortran stuff by Intel and Nvidia is free now.
So from a userās point of view, at least for me, as long as I can get them free I am happy to use them, it seems does not matter if it is corporate investment.
In particular, intel OneAPI + MS visual studio can all be obtained free, and this combination is the best IDE for Fortran at least on windows system, I feel.
On the other hand, I guess those Giants keep developing the latest Fortran compiler must have some reason, it is just that I do not exactly know why.
Python and Julia become popular I guess also have some big money behind them. It is also because they might be just more easy to use for most user, because they are interactive and it is easy to install packages. Just like some guys said, these can make coding and life a lot easier.
Hmm, because they want people to run stuff on their hardware? (Notice that the software is supported on their platforms, not universally!)
Hmm, because they want people to run stuff on their hardware? (Notice that the software is supported on their platforms, not universally!)
I believe your point is 100% correct. I guess they want not only regular users to use those compiler, but perhaps most importantly, they want data center, supercomputers, you know those big clients with fat money to rely on those stuff and the support they provided.
But, by no means I am saying Fortran is superior than Julia in any way.
In fact, Fortran, Julia, Python, they are all free, it is just that those giants seems never give up Fortran. It could also be possible that in the future Intel has their version of Julia just like Intel already has their free version of Python. It could be nice too.
Nvidia I do not know. But the Intel OneAPI might be universal. It can be compiled on any CPU no matter intel or AMD. I have been using Intel Fortran on AMDās EPYC on supercomputers for quite some time, and it runs very well.
Intel dipped their toes in the water half a decade ago with ParallelAccelerator.jl, which transpiled a limited subset of Julia to C. Subsequent improvements in Julia (and packages like ThreadsX and LoopVectorization) have eliminated much of the motivation for ParallelAccelerator - we no longer need to lean on C compilers for performance. Because there isnāt a Julia Standardā¢ like there is for C/Fortran, itās hard(/impossible) for a third-party vendor to support their own implementation, especially given the rapid pace of Juliaās development in recent years. It may happen once the language is deeply mature and driving a significant fraction of the FLOPS at supercomputing centers, but thatās still a ways out.