Fortran goals for 2022

The review article nicely wraps up 2021, which was a very good year for Fortran. Thank you all!

What should be the goals for Fortran for 2022?

What would you like to see, what is realistic to achieve?

10 Likes

I’d like to see (and help with)

  1. More tutorials with an emphasis on scientific programming and numerical methods

  2. Examples of Modern Fortran for competitive programming; that is a good way to attract a younger demographic and show others what Fortran can do.

  3. Improve the docs so motivated high school and undergrad students can contribute to Modern Fortran projects.

  4. Addendum: Better integration with VS Code and the javascript/webassembly ecosystem, so Fortran developers don’t have to re-invent the wheel

12 Likes

Would like to see a good modern Fortran course appear on Coursera, taught by experts such as @sblionel , @certik , etal.

3 Likes

Maybe not quite realistic for just a year: I would like to see more and more “classical libraries” written in old-style Fortran get modulized and modernized (using Fortran >= 2003, keeping in mind that it probably has to be done in F20XY one day), faithfully, reliably, and robustly. A recent example discussed on this forum is Lapack.

I have spent a major part of my 2021 working on such a project for Powell’s optimization solvers. To be honest, it is a painful, frustrating, and unrewarding job. What supports me to continue is the belief that modernization is the only way to make such treasures continue to be alive. I do hope I will have finished this job when I review my 2022.

Think about Lapack for instance, think about how much of today’s scientific computing is based on Lapack, think about how much of today’s human civilization is based on scientific computing. The old-fashion Fortran libraries must be modernized before there is nobody on earth who can understand/maintain/extend them.

The modernization does not need to be done in Fortran — I hope our community is not a group of narrow-minded people who refuse to use any other language. It should be done in languages that fit scientific computing well. Fortran is obviously/fortunately still one of the best of them as of today, despite the criticism from the people who do not know modern Fortran; I hope the situation for Fortran will become better and better instead of the opposite. C and C++ are also good ones, of course. I note that Lapack has been/is being modernized in C++, for example.

Happy new year and all the best wishes!!! May 2022 be a better year!!!

6 Likes

The Fortran Wiki lists videos, including one by Steve Lionel, Modern Fortran: Features for High-Performance Computing, 3+hours long.

5 Likes

Here is what I would like to see:

  • LFortran progress from alpha to beta (compile most codes) — my main focus for next year
  • Fpm progress on all fronts
  • A lot more new users and projects
8 Likes

I would love to see significant progress on automatic python bindings via LFortran in 2022. I’m going to try to set aside time to work on this.

4 Likes

Writing documentation is always high on my list, especially for those (fpm) tutorials, which use features yet to be implemented ;). Maybe it is worth to revisit the stdlib-docs as well and model them after the new fpm-docs.

The fronts I want to progress fpm on are:

  1. build stdlib (#78, #308)
  2. features and optional dependencies (#609)
  3. compile and manage C and C++ projects (#333, #353, #586)
  4. better linking against system libraries (#439, #604)

And packaging of course, we want easy access to all the cool Fortran projects on many platforms!

10 Likes

Definitely! Please ping me when you have time, and let’s meet over video and I’ll get you up to speed.

I would also add:

  • Generating a cmake files for a project: (#69)
3 Likes

Not the most insightful suggestions as I think most are being focused on already but just to say I’d love to see

  • LFortran usable for simple interactive terminal tasks (eg I currently still have issues with trying to use arrays interactively — this generates seg faults for me).

  • Standard library further developed (admittedly I haven’t properly looked at where this is at). Simple things like easily reading and writing csvs, common linear algebra, statistical/probability computations etc all made easy and standardised.

  • Combining above, it would be nice to have a simple demo interactively reading csv data and then plotting (perhaps via gnuplot?). I also think it would be great to have data frames as a stdlib structure. Reading csvs into a data frame, extracting and operating on columns, plotting them etc, gets you pretty close to enough for many basic data science tasks. Although not necessarily the main goal of using Fortran, I think showing that this is possible would help attract new users

  • Automatic differentiation capabilities. I’ve been working with some folk who developed a new modern Fortran geophysical simulator (https://waiwera.github.io/ — hence getting back into Fortran!) and we currently do some combined analytical-numerical differentiation to get derivatives wrt parameters etc. Would be nice to do proper autodiff. Someone suggested enzyme for autodiff but this relies on LLVM (https://enzyme.mit.edu/) which cannot currently compile our simulator to an executable (according to our developer)

6 Likes

I’d like @FortranTip on Twitter to celebrate 2023 with 700 followers (currently there are 400). If the current pace of 1-3 daily posts slows to 1-2 a week I think followers won’t unsubscribe, as long as content is relevant. The focus is the Fortran language now, but I think topics such as tooling, algorithms, and libraries would also be of interest. Tips and suggestions through the GitHub repo (which has an index of tweets and codes) are welcome, as are additional contributors.

4 Likes

Thanks for the feedback. Let me fix this now. Arrays work in compilation to binaries, so it should not be hard to make them work interactively also. Can you report the exact bugs you are getting? I can see your report here: Experiences with LFortran (#574) · Issues · lfortran / lfortran · GitLab, but that issue doesn’t seem to show the segfault. If you have time to report the segfaults you encountered, I’ll fix them.

1 Like

Great thread. What I’d like to see happen:

  • Higher quality and coverage of tutorials and docs, both for general Fortran learning on fortran-lang.org, and project-specific (fpm, stdlib, etc.). We’ve made a great start but they lack completeness and polish that more mature open source docs and published books have.
  • More user content (blogs, YouTube videos, MOOC courses), and especially from established content creators in other languages
  • OS, high-level file I/O, and Fortran202X intrinsics in stdlib
  • fpm being more ubiquitous in the ecosystem. We also have a great start here, and I don’t doubt it will continue with consistent evangelism.
  • Continue the slow and steady growth of contributors to projects, users and posts on Discourse, and followers on Twitter.
  • Another successful GSoC year on the scale of 2021 or slightly larger
  • FortranCon 2022
  • LFortran more closely integrated with Fortran-lang, e.g. mirror repo under fortran-lang on GitHub, feature on the fortran-lang.org/community page and similar.

What I’d like to work on:

  • Improve and streamline processes across Fortran-lang projects
  • Help implement the remainder of F202X intrinsics in stdlib now that they’re finalized. We started this in milancurcic/fortran202x_split over a year ago and I’d like to revisit it now that the API has changed and finalized.
  • Continue maintaining stdlib
  • Improve fpm-registry docs and processes
  • Research options into fpm tree-shaking builds (i.e. build only the needed dependency modules vs. the entire dependency)
8 Likes

Thanks! I’ve quickly ssh’d into my home machine from my phone (still on holiday!) and reproduced some example issues. Added to the gitlab issue referenced above. Hopefully these make sense!

Thanks again :slight_smile:

Very interesting thread with nice goals!

I agree with you @awvwgk. Revisiting the stdlib-docs would be worthwhile.

Regarding my principal wishes for 2022:

  • Continue to be involved in stdlib by proposing and reviewing new features/docs
  • Be more involve in the fpm project
  • Develop/contribute/advertise an introduction course to Modern Fortran (I recently found slides (given in 2020) of an introduction course on Fortran, but the slides mainly introduced Fortran 77 :frowning: )
3 Likes

@jeremie.vandenplas If you’re interested in helping with an intro to Modern Fortran course, check out this thread: Modern Fortran Carpentries course - #5 by samharrison7. I was pondering whether it would be worth developing a Carpentries course on Modern Fortran, which I think aligns nicely with your third aim.

My personal goal is to become a bit more involved in this community and try and set aside some time to contribute to the various initiatives. We have quite a few Fortran developers in our organisation, but I think most are stuck in the 90s, so my second goal is to be an evangelist for Fortran Lang and go spread the word of all the amazing new stuff that’s happening here.

5 Likes

What I’d like to see happen:
Flang codegen (Fortran 95 + OpenMP 1.1) is available in llvm-project.
A few Flang Fortran plugins are available.

3 Likes

What I’d like to work on:

  • More fpm
    • build profiles in the manifest
    • refactoring ?
    • An official package hosting site
  • Development and prototyping of Generics features
    • I’d like to start contributing to LFortran for this
  • More courses and tutorials
    • I’m already working on my next course (details to come)
    • I’d like to find time and topics to put out more YouTube videos

What else I’d like to see:

  • More widespread Fortran 2018 support in compilers
  • (At least) Alpha releases of the upcoming compilers (flang, ifx, LFortran)
  • More tools, specifically things like:
    • a formatter (comparable to clang-format or similar tools for other languages)
    • a linter (comparable to clippy or similar tools for other languages)
  • An online learning environment
    • Think hosted Jupyter notebooks, but for Fortran (probably using LFortran)
    • I would be willing to collaborate on this
  • More widespread adoption of stdlib
    • I’d like to see sufficient, crucial functionality added and people using it (with fpm) to prove it’s value and ensure it won’t go away any time soon

I think the community has built up a lot of momentum and if we keep it up I think we can accomplish a ton this year. I’m very optimistic about the future.

11 Likes

With our interest in more and better documentation, we might consider applying for Google Season of Docs (GSoD) or Outreachy as well. Conda-forge very successfully improved their docs last year with several Outreachy internships.

4 Likes

I think all of my wishes for Fortran already got mentioned, so I just want to highlight the most important for me:

  • A collection of example codes for solving common problems (like reading a file, etc., optionally with suggestions for helpful libraries)
  • A community driven wiki with easily understandable tutorials and explanations to all Fortran features and functions. I know there are plenty tutorials scattered around the internet, but many times I don’t find what I need using DuckDuckGo or Google. So a “place to go” with all the information would be nice (maybe as a fortran-lang subdomain?)

Another personal goal for me and Fortran is a big one:
The technical college where I completed my master’s degree in Scientific Programming one year ago offers a Fortran lecture. But since the professor of this lecture retired some years ago and he wants to teach it for the very last time this February, I am going to take over his lecture! So this time I will assist him with the hands-on sessions, but next time (probably February 2023) I am going to be the new lecturer of Fortran. Therefore, I will use this year to refactor the lecture notes or maybe even create my own. I plan on sharing these under some kind of open-source licence, but I think this is enough for a own topic here in the discourse group. I will open a thread for this soon.

11 Likes