Comparing Fortran and Julia's Bessel function performance

I appreciate the thoughts and effort that everyone has put into providing feedback and running their own benchmarks. Overall, the majority of interactions have been overwhelmingly positive and I did find several aspects about the Fortran language that I liked. I think we all benefit from diverse advancements in different programming languages and algorithm designs.

At this point, I’m not sure where the discussion is going. There was a lot of skepticism on the benchmarks which I think we have verified. We then test for accuracy and then repeat. I would be very happy to answer any questions about improved algorithms for these functions that would in anyway help the Fortran community. No one here is doubting that Fortran and Julia can deliver similar performances if the algorithms are the same.

I’ve found all the comments about somehow making false claims and being part of some marketing machine pretty offensive. Though, after looking at other threads (Language Marketing for Julia compared to Fortran - #59 by logankilpatrick) this is a very common theme which the community has given thoughtful replies. I’m really not sure how the Julia language benefits more from commercial interests than Fortran has over the decades and continues to now… Both languages suffer from difficulties in convincing people to use their language and both market the advantages. I don’t think this is particularly an issue because if you have something cool you should want to tell people about it.

However, this really hasn’t been a positive experience at all. I say this with as much sincerity as I can, but the likelihood of me using Fortran again is very low. This discussion could have gone in more positive directions about sharing fun ideas and learning from each other. After all, I only started started programming more after my experimental work was shut down due to the pandemic. So we might reflect on how some random grad student who started programming at 24 was able to write some code in Julia to outperform standard C/Fortran libraries. Now, of course absolutely none of that could have happened without @oscardsmith immediately jumping on and contributing and teaching me the language because I posted some random question one day. And that goes to the greater Julia community who have constantly answered my dumb questions over the past two years and continue to do so. I deeply thank them for that. So I do think it is important to think about how that happened. I would probably say that both the Julia community and language facilitated that and I think the Fortran community could also continue to grow because of it (though I’m unsure after this thread). After all, I am not the first person that was able to implement special functions faster (Julia vs Fortran complaint - #7 by stevengj - General Usage - Julia Programming Language). It does seem like a particular advantage of Julia. But I also think it demonstrates that rewriting old code has many advantages.

Now of course there are limitations that I would love to see addressed. I am currently working on linking a lot of research code that I wrote in Julia so other people working in my research field (biomedical sciences) can use it in Python. I am hoping for a lot more synergy between Julia and Python in the future because even if you have very fancy algorithms to efficiently compute complicated math problems the real challenge is still accessibility and integration across languages and systems. This is something I think Fortran does better than Julia obviously. I would honestly like to see Bessels.jl become the test subject for the new static compilation work. Having the ability to distribute small binaries to other users in Python I think would be a very good thing for the language. After all, Bessels.jl appears to be a very good candidate for this with its strong types, no external dependencies, no allocations (no GC), and type stability. I believe (or rather hope) this is the next step for the language.

8 Likes