Simply fortran review1/15/2023 Personaly I am a C++ programmer but recently started to look at Fortran and Rust too for considering using both for some low level stuff as alternatives to C++ because the language is simply too complex. (Fortran has proven over the decades that it works in practice for large production codes, runs in parallel and delivers excellent performance.)īecause of native support. It’s a chicken and an egg problem, and another reason why I chose an established language over creating a new one. Regarding Chapel, I only played with it a little bit, they have some good ideas (about how to parallelize and separate algorithms from their parallelizations) but I think it has not proven yet and the community is not as big yet. Why to Use Fortran For New Projects - LFortran.We described our motivations in the following two blog posts if you are interested in more detailed motivation: It does not seem to me there is some fundamental problem with Fortran that would prevent it to deliver excellent performance, or that would make it complicated. Most of the issues I have with Fortran can be fixed. With vastly improved tooling and compilers in few years, it might be close to ideal. In my subjective experience with C++, Fortran, Python and other languages, Fortran is simple, easy to learn, and yet delivers the best performance in practice out of all the other options for numerical computing tasks.įortran has not realized its full potential yet. The reason I chose Fortran over Julia or over creating a new language: It is approaching the same problem from the opposite direction. That is how LFortran was born (still in heavy development). You start with a proven language that can generate very fast code, and see how interactive you can make it, without sacrificing the performance. It’s still interactive an easy to use as Python, but much faster. You take an interactive easy to use dynamic language like Python or Matlab, and see how fast you can make it. My personal view is that there are (at least) two approaches: I showed a demo to a few of the Julia authors about two or three years ago. Julia has been one of the inspirations and motivations for LFortran. But probably great for smaller programs running on a single machine - however, that already makes it somewhat limited. I haven’t heard about applications using thousands or hundreds of cores really efficiently. Julia - still living in the shadow of Python. It is quite specialized niche language for parallel supercomputing - even if theoretically general purpose. It does not contain something like SciPy or other Python libraries. Like in Fortran you have to take care about a rich library of general-purpose routines yourself. Regarding your two choices: Chapel - very attractive but mostly only for Cray supercomputers. I have been continuously improving my main production code for 15 years and I didn’t have to rewrite any part just because the toolset would no longer support it. The stability and backward compatibility of Fortran (and some other standardized languages such as C or C++) is a great thing. That may even be the end of your business. You simply do not change your main tool just because there is a new one, you need a much better reason.Īfter all, the fancy new tool may not be here in the next decade and you may have to rewrite your code base to something that is still supported. Especially when part of your code base is already in some language and the language does not have some particular specific problem that you can point at and say - I need something new because this and this is not good. There are many reasons why one would want to use an established platform instead of a fancy new tool. Even if not explicitly written, I can read a sentiment “Why use an old programming language, when we have a new one?” in the question.
0 Comments
Leave a Reply.AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |