I was forced to make the full time switch to Linux last year by Microsoft's dull policies around hardware requirements for Windows 11 (Windows 10 was also no longer an option). I had dipped my feet into trying linux over the years, but I guess I wasn't ready until MSFT pushed me. Now I can say that I will never look back and I'm super happy to see some of my friends and coworkers in physics/astronomy talking about making the switch with me after seeing how it's going for me.
Needless to say, the open source community has definitely improved life for me lately. It's inspired me to step up my game too with my #dorado astronomy/python project (which has been in development since 2018/19, and is almost ready for a stable release) and a Raspberry pi based open-hardware project that's not quite ready for the public yet.
I want to contribute to other #FOSS projects in my spare time as well, and of course make some friends along the way.
Does anyone have any recommendations?
---
I have alot of experience in #physics #astronomy #astrophotography #raspberrypi #python #jupyter #telescopes and I have a comfortable amount of experience with #javascript #C++ #Fortran #julia #arduino #stem etc. But I'm willing to step outside my comfort zone to learn other things
@mucephie
You may be interested by joining the Fortran-lang community:
https://fortran-lang.org/community/
You will find there both big and small projects in modern #Fortran.
https://fortran-lang.discourse.group/
Community — Fortran Programming Language

Fortran : High-performance parallel programming language

@vmagnin I've tried my best to avoid fortran over the years, but I guess with my new masters project that won't be possible. So I might as well dive right into it. From your profile, you work on gtk-fortran? Is it libadwaita compatible?

@mucephie
gtk-fortran does not include libadwaita. But if ever you are interested I could try to automatically generate Fortran/C interfaces to libadwaita and put them in a separate repository. Its dev files seem to follow the GTK style, so it should work rather well.

If you want to study the most modern Fortran features (OOP introduced in F2003, parallel computing introduced in F2008 and F2018...), see this book: https://www.manning.com/books/modern-fortran

Modern Fortran - Milan Curcic

Harness the power of Fortran for high-performance computing in research, science, and industry.

Manning Publications
@vmagnin I think with libadwaita becoming more prominent, that it would be a great expansion to gtk-fortran. I'd be willing to lend a hand where I can in testing and development. Does gtk-fortran have the ability to plot graphs ?

@mucephie
gtk-fortran offers also interfaces to PLplot:
https://github.com/vmagnin/gtk-fortran/wiki/PLplot-integration

When I have time this week or next week, I will try to create a repository with libadwaita Fortran interfaces for experimentation.

PLplot integration

A GTK / Fortran binding. Contribute to vmagnin/gtk-fortran development by creating an account on GitHub.

GitHub
@vmagnin I'll try playing around with gtk-fortran and PLplot this week and see if I can recreate some of my existing matplotlib based graphs in this graphics stack

@mucephie
I have just created a repository with experimental #Fortran interfaces for #libadwaita and #libsoup :
https://github.com/vmagnin/experimental_interfaces

More explanations are in the README.md file.

GitHub - vmagnin/experimental_interfaces: This repository contains experimental Fortran bindings for various C libraries, automatically generated with the cfwrapper program of the gtk-fortran project.

This repository contains experimental Fortran bindings for various C libraries, automatically generated with the cfwrapper program of the gtk-fortran project. - GitHub - vmagnin/experimental_interf...

GitHub
@vmagnin That's awesome! I'm gonna try to use it this week to make an empty app window for a fortran/libadwaita app template. I think there is a bunch of legacy, decades old fortran code that could receive new life and use with stuff like gtk and libadwaita GUI with inline plotting and such

@mucephie
Looking at the few problems in that file:
https://github.com/vmagnin/experimental_interfaces/blob/main/src/libadwaita/cfwrapper-errors.csv
I see that among the few missing interfaces is the function adw_application_new()
I imagine it is the most crucial one, and you will have to write by hand its interface.
The type GApplicationFlags was not recognized. Probably an "int" would work, as it is C enums.

See https://github.com/vmagnin/gtk-fortran/wiki/Fortran-interoperability-with-C
if you need information about C/Fortran interoperability.

experimental_interfaces/src/libadwaita/cfwrapper-errors.csv at main · vmagnin/experimental_interfaces

This repository contains experimental Fortran bindings for various C libraries, automatically generated with the cfwrapper program of the gtk-fortran project. - experimental_interfaces/src/libadwai...

GitHub

@mucephie
If I have time, I may also try to reduce the number of errors next week.

Anyway, you can use for adw_application_new() an interface similar to:
function gtk_application_new(application_id, flags) bind(c)
import :: c_ptr, c_char, c_int
implicit none
type(c_ptr) :: gtk_application_new
character(kind=c_char), dimension(*) :: application_id
integer(c_int), value :: flags
end function

@mucephie
I have finally improved my cfwrapper and updated the libadwaita interfaces in the repository. The remaining errors concern essentially the C variadic functions, which have no equivalent in Fortran.

So you can give it a try.