There's definitely a lot more to it than mere legacy. Modern Fortran (2003, 2008, and now 2018) has some quite powerful features pertaining to object orientation, and native parallelism (via the "coarrays" model). This is on top of a large variety of intrinsic mathematical functions, IEEE arithmetic and C interoperability, along with (since Fortran 90/95) very powerful array syntax (since multidimensional arrays are and always will be an intrinsic language feature). Furthermore there is an increasing number of libraries written to the newer standards, even for things like JSON.
On the other hand, it is of course true that Fortran is by its very nature conservative. Features are deprecated and obsoleted only when there is a clear reason to, and are implemented only when there is clear utility and a clear way to define the syntax in a minimally-obtrusive way. This has led to some interesting syntax quirks over the years, and also an admittedly still very much crippled (or at least restrictive) IO system - while catastrophic for "systems" languages, for primarily numerical work this is mainly just an inconvenience.
I would advise those dismissing the idea of writing new code in Modern Fortran to actually look into what features are now present, and what sort of code you can write. Most of Fortran's status as "whipping-boy" is primarily contingent on plain ignorance.
I've written a (simple) bandstructure code in Modern Fortran (roughly F2003 dialect), and am writing simulation code for illumination optics (to be released at a later date, most likely GPL3) which makes use of F2008 and F2018 functionality. Keeping up to date on newer GCC versions is essential, many of the more interesting features of F2003/2008 have been completed since I started using the language in 2014.
Bandstructure code: https://github.com/aphirst/BandFTN (project currently stalled)
Examples from "Modern Fortran in Practice": http://flibs.sourceforge.net/example...n_fortran.html
... and there are many more examples which can be found just by searching the web
On the other hand, it is of course true that Fortran is by its very nature conservative. Features are deprecated and obsoleted only when there is a clear reason to, and are implemented only when there is clear utility and a clear way to define the syntax in a minimally-obtrusive way. This has led to some interesting syntax quirks over the years, and also an admittedly still very much crippled (or at least restrictive) IO system - while catastrophic for "systems" languages, for primarily numerical work this is mainly just an inconvenience.
I would advise those dismissing the idea of writing new code in Modern Fortran to actually look into what features are now present, and what sort of code you can write. Most of Fortran's status as "whipping-boy" is primarily contingent on plain ignorance.
I've written a (simple) bandstructure code in Modern Fortran (roughly F2003 dialect), and am writing simulation code for illumination optics (to be released at a later date, most likely GPL3) which makes use of F2008 and F2018 functionality. Keeping up to date on newer GCC versions is essential, many of the more interesting features of F2003/2008 have been completed since I started using the language in 2014.
Bandstructure code: https://github.com/aphirst/BandFTN (project currently stalled)
Examples from "Modern Fortran in Practice": http://flibs.sourceforge.net/example...n_fortran.html
... and there are many more examples which can be found just by searching the web
Comment