4 ms·
I'd like to hear some thoughts as to why one would choose FORTRAN over R, JMP, Excel, Python... other than for fun or familiarity?
by 0xff00ffee 7y ago
I'd like to hear some thoughts as to why one would choose FORTRAN over R, JMP, Excel, Python... other than for fun or familiarity?
- nickelcitymario 7y agoI would argue that fun and familiarity at 95% of the reasons why anyone chooses any framework. I don't know Fortran, so I won't use this. But as a dedicated ruby enthusiast, I won't be throwing stones either ;)
- walshemj 7y agoSpeed and for MP / cluster computing where there are fortran extensions.
- goatlover 7y agoAdd Julia to the list. But if you're thinking of using Fortran, then Excel is likely the wrong tool for the job. Fortran is usually used for heavy duty number crunching and supercomputing simulations. Or in this case, web sites???
- krapp 7y agoNo one would choose it. This is a terrible idea. No one asked for this. No one wanted this. No one needed this, yet here it is. Like some many-angled Lovecraftian horror, it spites reality, sanity and common sense merely by existing.
- TheRealKing 7y agoThere are people who want it. Those who know the value of each language.
- chuckleMuscle 7y agoVery different use-cases. All the other languages you've mentioned are great for statistical analysis and plotting but are quite slow - for R and Python by virtue of being interpreted rather than compiled. I dont know about the others. Fortran is often used in academia for intensive number crunching and parallelized code to run on computing clusters with 10s or 100s of cores. I work with some people who run hydrodynamics sims using a code written in FORTRAN. Their workflow is to pull data from these sims into Python scripts for subsequent analysis. It's just a different tool for a different job. People talk about C++ and FORTRAN being competitors, and there the difference might have something to do with familiarity.
- angus-g 7y ago> with 10s or 100s of cores You could probably even add another zero (almost two) to this
- TheRealKing 7y agoAs a computational scientist who knows C, Fortran, IDL, MATLAB, Mathematica, Pascal, Python, and R for about two decades, I can tell you that the unique advantage of (modern) Fortran (2008/2018) over any other languages mentioned here is in its great flexibility and high-performance for numerical computing and basically any mathematical problem. It has a coding and syntax flexibility comparable to MATLAB and Python, but the runtime speed of C, and in many cases, beyond C. It is the only high-performance programming language that has native built-in mechanism for one-sided parallel programming on shared and distributed architectures that can scale your code from your laptop to the largest supercomputers in the world (Coarray Fortran parallelism). Checkout the OpenCorrays software on GitHub and Intel's amazing Coarray-enabled Fortran compiler. Also, Fortran along with C, are the only two languages for which the MPI standard is written. OpenMP parallelism also has its roots in the Fortran language. Nvidia is also working on a new F18 compiler for Fortran which enables GPU parallel computing via the same Coarray Fortran syntax and rules. One parallel programming API for all architectures and platforms. No programming language has this capability that I am aware of. Typically, simulations that I run in MATLAB, Python or R, take 100 to 500 times longer than the equivalents that I write in Fortran. I am sure you can achieve a similar performance with C as well. But the development cost in C is much higher for numerical computing than in Fortran, given Fortran's native array-based syntax, parallelism features, optimization hints to the compiler, and the new high-level string and memory manipulation tools that it has. That said, every language has its usage and place in the world of programming. In my case, all of the post-processing analyses of my Fortran/C simulation results are done in either Python or MATLAB, and sometimes in R. They complement each other rather than being rivals to each other.