Joining the team

Hi everybody!

I’m Sebastian, most people here probably know me under the handle awvwgk, I usually go with. I’ve been active in the Fortran-lang community for almost a year now, mainly at stdlib, the web page and of course our package manager, fpm. Ondřej, Milan and Laurence invited me to take up more responsibility in our community and I happily agreed to help out. Given that I have been hanging around here for a while now, this is a good point to properly introduce myself to all of you.

First, I’ve been using Fortran since 2017 when I started working on a programming project for my Bachelor thesis. Parallel to the Master studies I stayed involved with the research and programming work done in the group of S. Grimme, where I’m now in the third year of my PhD. While I have been programming a bit in Ruby and Python before, I consider Fortran my first proper programming language.

I’m an avid open source developer, I deeply value open minded communities and transparent organization structures. My experience with open source development started when I put up one of my research software on GitHub early 2019, dftd4 turned out to be quite a success and is today integrated in several computational chemistry software packages. Currently, I’m an active developer of several computational chemistry related open source projects, like dftb+, xtb or dftd4.

One thing I learned pretty quickly was that building and distributing is as important as writing good software. My build system of choice is meson because it provides enough flexibility to create a painless experience for users, developers and packagers, but I also accumulated enough knowledge about CMake due to necessity. I’m a package maintainer for more than a dozen feedstocks at conda-forge with most packages written in Fortran or related to Fortran.

My journey with Fortran-lang began in July 2020, as Ondřej opened an issue at a holiday project of mine, TOML Fortran. The Fortran package manager really caught my attention, since I just finished teaching my second Fortran course at this time. A recurring issue students were running into was building their projects with make, instead of teaching them a more involved build system, helping to develop a beginner-friendly one seemed more feasible to me and I decided to commit some time to help out with fpm. From there on I got involved with the package index of our web page and the CMake build system at stdlib and later pretty much everything in Fortran-lang, except for the Fortran standard itself.

What does change?
Nothing much really, I’ll continue to involve myself with most Fortran-lang matters. I’m getting access at administrator level to the GitHub organization, this means I can invite new members, create or migrate repositories or edit teams. Please feel free to address such requests with me and I’ll help to make them happen. Also, I’m now a moderator in this discourse, I’ll try my best to keep this a friendly place for everyone. It’s my first moderation involvement, therefore please don’t hesitate to correct me if you think I made a mistake.

What comes next?
Our Fortran-lang community has been growing steadily and our projects like stdlib and fpm are attracting more and more contributors. The next step I want to take together with our community is to establish project maintainer teams and formalize our rules for getting involved in Fortran-lang. For one this should help to keep our project running and enable the maintainers to define long-term goals for their projects. Another important aspect is to help new contributors with the on-boarding process into our community by setting clear expectations and providing mentors that can guide them in their first contact with our community.

Let me know if you have any questions. I’m happy to answer.

Finally, some controversial points for discussion, if the above doesn’t give enough material:

  • 3 space indentation
  • neovim is all I need to write software
  • it’s impolite to ask (L)GPL projects to relicense
  • code is bad slang for program
20 Likes

Thanks for your continuing contributions. I will take the other side of one of your contentions.

This was discussed on Stack Overflow, where some answers said

In a compiled programming language the code gets compiled to the program (which is machine code)

In an interpreted script language the code is the program.

Code is the logic building language specific group of statements which on compilation produces a program. The program the compiled output which is an executable and is either platform specific or cross platform..

My repo Fortran code on GitHub contains links to source codes, not to executable programs that would be specific to a hardware/operating system platform. Also, a Fortran program consists of a main program and modules or external procedures. A collection of modules or procedures constitute code but not a full-fledged program.

Can we at least agree that Fortranners aren’t creating “apps”? :slight_smile:

1 Like

About fpm:
For new contributors, could be useful to include in “Contributing to the Fortran Package Manager” a dependency graph (doxygen graph, etc)

Thank you @awvwgk for everything you have done. Looking forward to continue collaborating with you.

I think Fortran is the only language I’ve seen people using 3 spaces. We are very close with lfortran fmt (pretty much just comments and empty lines are missing; also preprocessor must be figured out) to provide a configurable reformatter, so people will be able to provide .lfortran-format with configuration how to format their projects.

Same here. One trick if you don’t know about, this:

set autowrite
au FocusLost * update

enables autosave when the terminal window loses focus (you click on another terminal tab or another program), so I do not manually save anymore. The way it works is that nvim enables supporting terminals to send an escape code when it loses focus, and handles it correctly. It works on Linux and macOS with default terminals.

I know it’s impolite to ask a project to change their license in general. But I decided to do it anyway:

and I am glad I did!

3 Likes

fpm structure:

├── app
│   └── main.f90
└── fpm.toml

:sweat_smile:

1 Like

It an interesting quirk found in the Fortran community. But I really love it, 4 is usually to wide on 90 character columns and 2 is a bit too narrow for my taste.

How about putting the configuration of LFortran’s reformatter into fpm.toml?

[extra.lfortran.fmt]
indent = 3

See fpm#430.

I opened fpm#532.

1 Like

I added neovim to Fortran Tools on GitHub with the generic description “Vim-fork focused on extensibility and usability”, but if someone can provide one or two sentences about why it is suited for Fortran programming, I will add them. Are there separate repos with Fortran plugins for neovim that I can link to, as there are for Emacs, or is everything needed built in?

I also use three spaces for indentation, for the reasons described by @awvwgk.

2 Likes

Thank you for all the hard work you’ve done, Sebastian, and welcome! You’ll be a great addition to the core team. With many things about Fortran-lang I trust you more than I trust myself. :slight_smile:

Now, to the controversial discussion topics, I’d only comment on

which I agree with in the case of a verb, but for a noun I think they’re different things, as @Beliavsky explained.

I think “app” can have two different meanings. A broader one, where it’s short for “application”, and I use it often. It’s also used in fpm, as @Carltoffel pointed out. The narrower meaning, as in an app on a smartphone, is of course not appropriate, at least not yet.

2 Likes

It’s nice to hear someone commits so much time to the development of fpm and stdlib!

3 space indentation

I would strongly argue for minimizing this quirk as much as possible. (“quirk” being an apt label).
It creates unnecessary headaches for people working simultaneously in other languages, not all editors do support it, etc. We want to remove barriers to and annoyances of Fortran, not support new ones.
I personally do a lot of C++ - Fortran interop and really hate it when I run across 3 space indented code.
(My preference is 4 spaces (not tabs), but anything odd-numbered goes.)

it’s impolite to ask (L)GPL projects to relicense

I would not see this as a strict rule. The license may have been chosen without too much deep thought, the author may be happy to do so. Needs individual consideration/feeling IMO + do always ask politely.

5 Likes