• 0 Posts
  • 11 Comments
Joined 3 months ago
cake
Cake day: October 18th, 2025

help-circle







  • Don’t get me wrong: python probably is the main language used in research. However there’s software that needs to be fast at crunching numbers, I work in computational chemistry and pretty much any reliable software is either Fortran or C++. Indeed you have python libraries, but most are just wrappers.

    You have Gaussian: https://en.wikipedia.org/wiki/Gaussian_(software) GAMESS: https://en.wikipedia.org/wiki/GAMESS_(US) CP2K: https://en.wikipedia.org/wiki/CP2K Mopac: https://en.wikipedia.org/wiki/MOPAC

    Now, most people do not work in Fortran, but it is something you learn a little bit when you start working in computational chemistry. It happens sometimes to have to debug a software not working or to have to write a module to test an hypothesis. People writing those softwares are also researchers, but mostly are full time dedicated to the software. Generally, there is a huge lack on investment on the software infrastructure, very few people are dedicated at maintaining software that is used by hundreds of thousands of people.

    While hiring people, I am satisfied as long as they know a bit of python, but knowledge of Fortran really stands out and highlights a more thorough education. If I have time, I do give all the people an introduction to Fortran, as it is still something you often come across in our field. But yes, unless you’re working on the development of such software suites, Fortran is not that common now. You’d publish a proof of concept in python or Julia and then wait for someone else to implement it in one of those libraries.


  • I like Fortran very much, but don’t get me wrong: maintaining Fortran code from 69 must be a huge pain in the ass. It is certainly code written by researchers who have no idea about programming practices. It is sure full of exceptions everywhere, all variables are 2 characters long. The codebase grew over the years and is now several millions lines of code, most of which is the same functionality copied everywhere with slight changes. You have no idea what each subroutine is supposed to do, and it doesn’t help that most algorithms used in there were never published or documented.

    I think I’ll go with the vibe coding for this one.



  • I’m not sure I really follow: what is the purpose of blocking outbound traffic on a system you control? I guess the main point is in case of infection from malware you’d be blocking their traffic. But malware will most probably be using port 80 or 22. Otherwise I guess you could install some software which you wish to use offline and not communicate outside, for which I’d just block that door or execute it in an isolated container or one of those systemd traps.

    Feels more like a pain if this is a computer you use. I guess this is doable on a server as more or less you know what will be running there, but every time you install something you’ll have to check all ports it needs and go into iptables to edit the config.