I use it for all my modelling needs at present. It is very easy to use and reliable when using double precision. It is still popular it seems in the scientific community for this reason.
FORTRAN is an excellent programming language. FORTRAN 90, FORTRAN 95 and FORTRAN visual work bench are excellent versions of FORTRAN one would love to work with. For scientific community, FORTRAN is boon, but nowadays people want to use symbolic computation and adopt easy ways of realizing the results. The results obtained using FORTRAN are reliable and one need not worry about the accuracy but concentrate on techniques and programming.
In my opinion, FORTRAN programming is obsolete now. Although its a very powerful programming language specially for scientific computations. Now-a-days we are having many other powerful programming language with lots of new features including multi-threading, modularity, support for double precision, extensibility, right inbuilt APIs, ready-made packages or modules for various scientific computations, etc. One such powerful modern language is Java (multi-platform language)
There are many widely used commercial programs that have been around for decades and are based on Fortran. The utility, size, and complexity of these programs are such that they will remain around for decades more.
FORTRAN used to be the premier programming language for the scientific applications. It has served for decades. Over a period of time more flexible, powerful and versatile languages have taken over. Simply this is process of evolution. Old things have to give way to more efficient and effective new things! Computers, watches, engines and other products made decades ago still work fine BUT are being replaced by better and functionally rich products. We are fortunate that we had FORTRAN and we are more more fortunate that we replaced it with hugely more efficient languages!
I think - at least for some people - it is an currently used language, judging from current activities
http://software.intel.com/en-us/blogs/2013/08/08/doctor-fortran-goes-dutch-fortran-2015
Its up to your usage. if you are doing scientific and numerical calculation it is one of the best one. you may check comparative analysis here....
http://langpop.com/
Although I rarely used FORTRAN lately, I'd like to say NO it is not outdated. This language had brought me my Ph.D...
In my opinion we can not use sole language, especially in a big modeling project. Fortran and C are very strong for engineering and science but Fortran is a lot easier. But we will need something more than strong codes to overcome the difficulties in visualization and operation (user interfaces). There, APIs, Java, Phyton etc will talks.
Actually, Fortran compilers include several libraries with a huge of capabilities. I agree that it is the best for numerical programming (F90).
One advantage of FORTRAN is the extensive set of available numerical libraries. On the other hand, I found that C/C++ allows you to write more efficient numerical code. For this reason, occasionally I resorted to writing mixed language code in which some modules were written in FORTRAN to take advantage of existing libraries, whereas other modules were written in C/C++.
I use FORTRAN and I like it.
It's very fast to run compare to MATLAB.
Then it's cheaper simulation cost due to lower CPU intensive.
Some info about FORTRAN:
http://en.wikipedia.org/wiki/Fortran
Good FORTRAN Editor and Compiler:
FORCE http://lepsch.blogspot.com.au/
FORTRAN Group discussion:
Send photran mailing list submissions to
To subscribe or unsubscribe via the World Wide Web, visit
https://dev.eclipse.org/mailman/listinfo/photran
or, via email, send a message with subject or body 'help' to
You can reach the person managing the list at
GFORTRAN Mailing List:
"Gfortran List"
it is my opinion that now FORTRAN is a language more than obsolete. As far as I know the last release dates back to 20 years ago. During this time the languages have done leaps and bounds. At the moment I think that Python is the language that better suits to scientific needs. you can use it as both functional and object-oriented language, and it is also fully integrated with C. Considering that at MIT this is the most used language, especially for the development of algorithms.
Each language has its own strength and weakness.The strength in FORTRAN is numerical processing. The question on whether it is outdated or not is a matter of fads in computer science. If you are looking for a language for numerical computation use it by all means and at the same time if you are planning to show your results on a web page I would suggest another language.
As someone who spent five years immersed in the world of HPC (supporting IBM's Blue Gene supercomputers), I can absolutely validate that Fortran is alive and well. Going back to it after 20yrs of being away from it was an eye opener for sure. The Fortran 9x standard added dynamic memory, significant structured programming concepts, and did away with the column 7 requirement.
Many of the HPC codes have been around for > 20 yrs and are still in use today. Major hardware vendors are still investing in producing viable Fortran compilers - because without them, they know that they will be unable to make sales.
When I entered Graduate School in 1983, one of the professors explained that 20yrs into the future there would be many programming languages that had yet to be developed, but that at least two of those programming languages would be called Fortran and Cobol. He also said that they probably wouldn't look anything like the versions we were using in 1983. He was quite prophetic.
I used FORTRAN in my Engineering undergraduate courses, however we moved on to more sophisticated languages since then. After more than 25 years now, I don’t think of using it any more except on odd implementation through R. JAVA, Matlab, Stata, MATA, SAS and even R are far better without any offence to FORTRAN. We can say that FORTRON was developed before its age and may rejuvineate once more like Apple did, who knows. At the moment, In terms of language popularity and current usage, its rank is diminishing below 2% compared to C, JAVA and C++ which all stand more than 60%.
Dear Sartaj,
Unpopular is not synonymous of outdated. There are still many applications where FORTRAN is the best choice.
I agree with you that 'Unpopular is not synonymous of outdated' and neither I used it in that sense; but only as a proxy. There is direct statistical relationship between the two. Being outdated cause it unpopular or not solely rests on its user base.
Dear Sartaj,
I understand your position but I have to disagree with it.
The statistical relationship you are referring to is applicable only in the case where there is a viable alternative to FORTRAN for the SAME type of applications it is being used. The popularity and the user base have not much to do with this. In fact, in some specific computation-intensive fields, it is not at all uncommon to see graduate students compelled to go learn FORTRAN in order to get accepted to work in certain labs. Whether those students like it or not is a quite different story.
FORTRAN was my first programing language 30 years ago. A lot has changed since. The latest FORTRAN Standards are quite impressive. For example, no more line numbers and special columns. FORTRAN compilers tend to have the best optimizers around. The language itself is a lot more optimizable than others. This feature of FORTRAN is very popular among engineers and scientists who are very concerned about optimization.
For numerical computing nothing beat FORTRAN but unfortunately for anything else everything beats FORTRAN. For non-numerical computing I advice you stick with C++.
The purpose of FORTRAN when it first came was to enable scientists to program computers with a higher language level, not in assembly or machine code. Just imagine one needs to compute a long list of points coming from a complex equation in mid60's, the only way would be to write a code to do it. And the language of choice was FORTRAN. Nowadays no one would ever think to use FORTRAN because we have MATLAB, Mathematica, R, Octave, ROOT, among others that would do a good job in most of those cases.
However, there are still few* FORTRAN codes in use today because they are huge and perform very complex and critical computations, therefore rewrite them in another modern language such as C/C++ would cost lots of time and money. I am a user of some of these old FORTRAN codes and I can tell you they are limited, buggy and slow. Furthermore, compile them is a challenge, since most of them require specific vendor and/or compiler version to do so. And as a scientist who works with HPC I can tell you that they are difficult parallelize and optimize too. In other words, I wished I had never stumbled upon those codes.
The FORTRAN language itself may not be outdated, since developers still insist in implement new features. That does not mean that those features are really used. But the language itself is outdated, learn here some of the issues: http://www.fortranstatement.com
*I said few codes but that amount may vary depending on the field we are talking about. In some fields they are a small bunch of codes interconnected by shell scripts and in other fields is just a big program.
@Jerrold (Jerry) Heyman of ACM cited his professor as I do now :"When I entered Graduate School in 1983, one of the professors explained that 20yrs into the future there would be many programming languages that had yet to be developed, but that at least two of those programming languages would be called Fortran and Cobol" The qestion we are arguing about could also be:"Is COBOL an outdated programming language" And it is true and more understandable that Jerry's professor was right. See link http://www.itworld.com/career/341879/cobol-will-outlive-us-all
My experience are similar with COBOL as well as with Fortran. Namely, in our private company programmes were written in Cobol, after in OO Cobol, then NetExpress which is .net tool, etc.
The question is if you need to use scientific code developed for big physical and engineering models FORTRAN is the language more spread. In my opinion the question is not well related to obsolescence bat any language, expecially if interpreted or compiled depending on the way you image it will run. One important thing I learnt during my studies is the language (related to semantics) is more suitable how is more simple to express the "knowledge" of your problem to solve by an algorithm
Simen, the tools I have suggested are not primarily for compiled code but some of them can generate compiled code for fast execution. I am aware that MATLAB and ROOT are not only able to generate compiled code but they have capabilities to perform parallel computations as well. MATLAB can even use GPU computing for fast calculations, and the user may not need to adapt its code to run in GPU.
FORTRAN was developed to enable scientists to use computer for scientific purposes but later was converted into high performance. But it was not developed as high performance language. As an example, CERN has redesigned and rewritten most of its softwares from FORTRAN languages into C/C++. Look for Research and Development 44 document (RD44). They have rewritten from scratch Geant3 for FORTRAN into Geant4 in C++. The same happened with Physics Analysis Workstation (PAW) in FORTRAN, now we have ROOT which is written in C++.
So, if you need high performance computing you should look for C/C++ language. The FORTRAN codes available were inherited from 60's and 70's.
Fortran will never die but it needs to be supported by the community. Fortran is very powerfull with calculations no other programming lang can perfrorm faster and safer because in a multiple cpu and huge ram system security of the calculation is also important
The world has an enormous investment in Fortran codes. They will continue to run - there are many organisations who would find it cheaper to implement a Fortran compiler than to transition their codes to a new language.
However, there are new challenges in computing. The energy cost of data movement is now much greater than the cost of computation. The next generation of supercomputers are likely at any one time to have large areas of silicon that are inactive. New languages are needed to address these challenges.
Fortran has grown for decades with a continuous commitment to backwards compatibility. This makes it hard to parse (indeed it began before the mathematics of LL1, LR, etc parsing were understood). The result is that Fortran programmers work without the tool support that Java programmers have come to expect. Fortran is not a good candidate for future growth.
It is also true that when beginning a new numerical code, that must run on today's hardware, Fortran is a good choice. But one of the goals is that the code has a lifetime in decades, it is currently hard to choose a language for it.
Simen, I didn't claim that C++ is the most suitable for high performance. It's been chosen by CERN because it was the best compromise between engineering and speed. Those softwares were developed by a large team; Geant4 was developed by more than 100 researchers spread around the world! For speed I would choose C but that depends on the size and complexity of the project. C++ is not as fast as C because it has to deal with object oriented code.
I don't think it is hard to write a code that the compiler can optimize. But I think that scientist should and can learn more about how computers work. There are many outdated information about how FORTRAN is faster than C on the web with very little benchmark. However, the latests discussions point to memory overlap and aliasing. This was solved with the introduction of the restrict keyword and strict-aliasing in C99 (http://stackoverflow.com/questions/146159/is-fortran-faster-than-c). So, now even for matrix operations C can be as fast as FORTRAN.
There is also very little benchmarks available and some of them are not comparing the same compiler vendors. See for example http://benchmarksgame.alioth.debian.org/u64/benchmark.php?test=all&lang=ifc&lang2=gcc&data=u64 . In this benchmark they used Intel FORTRAN and GCC C. GCC is known to not be the fastest compiler on earth. Nevertheless, C beats FORTRAN in 4 tests being twice as faster, with one of those tests using 20 times less memory! In three other tests they match each other performance, and in only two FORTRAN is faster. However, I brought those two codes to my computer and I could confirm that for fasta FORTRAN is faster (but not as fast as shown in the benchmark). For the Mandelbrot the C version had a slightly better performance in my tests, but I'd say they are tied. So, C outperformed FORTRAN in 4/9 and tied in 4/9. But these benchmarks are for small codes, for a large and complex code where different types of computations are performed this small advantage would probably wash out.
An important issue that people often forget is that having a language for many years and being used by many people means stability in an "outdated" language (a reasonable assumption can be that due to time people have found substantial amount of bugs and corrected them).
I often feel discouraged and frustrated with students and "professional" coders that come to me with this philosophy of discarding stable technology because it is not "new". If a programmer is proficient, he can do the job of coding well in any programming language. As I mentioned in my previous post each language has its strength ad weaknesses and the programmer should focus on that. The current trend in programming is that "productivity" is measured in the time it takes a programmer to achieve something and not how well the program runs.
It depends on your project type, number of inputs, outputs and number of functions you gonna use. from another point of view, it varies on your computers characteristics too.
Thanks for all your numerous contributions, I can now see that FORTRAN is indeed not an outdated programming language.
So FORTRAN should be encouraged as a programming language in Universities?
Onyegu wrote: "So FORTRAN should be encouraged as a programming language in Universities?"
That's actually a tough one to answer. Should it? I think the answer is yes - at least offered. Encouraged? Maybe to a select group of students that are going to focus on High Performance Computing (HPC), or are double majoring in a physical science/engineering. This might take us to another discussion as to whether Computer Science is a physical science, but that's a discussion for a different day.
When I was an undergraduate (circa early 1980s), it was offered as a lower level elective in Computer Science, and required of Freshmen Engineers. With the advances in the language, along with the advent of cheap access to HPC, I think it would be helpful to introduce FORTRAN - and leverage the existing set of open source scientific software. Something like WRF (Weather Research and Forecasting) is still written in FORTRAN - http://www.mmm.ucar.edu/wrf/users/download/get_source.html
"So FORTRAN should be encouraged as a programming language in Universities?"
This is a good question and is better than the original one. As nowaday fortran is still widely used in engineering and academic, it's better to have the undergrad understand fortran. At least for the mechanical engineering students, I think it is an important skill. Maybe more important than C++.
Onyego, this is not the right place to find out whether or not FORTRAN should be taught in college for various reasons, and the most compelling one is that this thread does not represent a broad spectrum of the scientific computing field (look for the TIOBE Programming Language Index). Another reason is that people volunteer themselves to answer whatever please them (HPC field is not the only market for programing languages and not even the largest one!). So, to include as a programing language in a college course I recommend you look around to see what is done in the best universities in the world.
My personal opinion is that the choice for a programming language for a college or graduate school one should focus on a language that has the broadest application in that particular field. As you can see by the TIOBE index, FORTRAN is ranked as 31st in the popularity index (the general trend graphic is here: http://www.tiobe.com/index.php/paperinfo/tpci/Fortran.html). So, for a recent college graduate face FORTRAN as programming language in the job market is quite small. Furthermore, if you know a programming language it is easy to teaching yourself another one like FORTRAN.
Luis - I agree with a majority of what you say. With the newer Fortran standards (9x and now 2003), having someone who learned C/C++/Java as their primary language migrate to Fortran is less of an issue.
Prior standards of Fortran made this more problematic - many people who learned C/Pascal jumped into Fortran and their first question was always - "what do you mean I can't allocate memory dynamically? How is one supposed to implement X data structure w/o dynamic memory?" The question still remains that as these people move out into research/industry and "inherit" existing Fortran codes, will they be able to understand something like an array based linked-list implementation as opposed to one that uses dynamic memory?
I would stipulate that new projects do not use Fortran unless it's part of the requirements.
Jerry, dynamic memory allocation is not the solution for all problems. Array based linked-list is not an exclusive subject of FORTRAN and it is taught for C/C++ students (http://web.eecs.utk.edu/~cs102/lectures/ex.html). ROOT also has a class where one can store ROOT objects in a linked-list array. There are some problems where a linked-list array could be an excellent choice (http://stackoverflow.com/questions/393556/when-to-use-a-linked-list-over-an-array-array-list).
So far I am not aware of any technique used exclusively in FORTRAN that is not taught in a regular good course of C/C++/Java.
Regarding inherited code I would say that HPC system administrators need to know how to install different FORTRAN compilers and how to compile FORTRAN software. Software developers may want to develop new code in C/C++ and link against the FORTRAN legacy (btw, this is the strategy of some MCNP developers). Only in very rare cases one may need to develop FORTRAN code.
Luis - agreed. One can use arrays to implement linked lists in any language, though it is not generally taught that way when a language supports dynamic memory allocation.
When I worked in the aerospace industry (mid 1980s), more specifically a US DoD contractor, Fortran was the implementation language on one of the projects, and they had found that students that were never exposed to Fortran had problems programming in it. When I make comments it's based on that experience, plus the more recent HPC experience I have (in the past five years). Coming back to Fortran six years ago was a complete eye opener - it was not the language that I had used in the mid-1980s, and had been completely overhauled.
A different project I worked in HPC was one that had been ongoing for 20+ years and the code was being migrated to C, and all new code was being written in C. The drawback was that the core of the project had yet to be migrated, so understanding the inter-language calling structures were critical. Additionally, remembering that Fortran is column major for array storage v row major (for C) caused us a few headaches too.
It is no surprise that Fortran is ranked 31st. Looking at the population of engineering, mechanical particularly, to the whole computer coding community, I guess the index merely reflect the population ratio. What I am interested in is whether Fortran is still a popular language to a specific field and if this is true, then the education institute should provide a course program.
I think FORTRAN is not an outdated programming language. As the name is the abbreviated form of FORmula TRANSlation, hence this programming language is particularly helpful (and useful and easier to write) for beginners of Mathematics(in particular Computer Science students). Therefore it should be included in the course curriculum of undergraduate students. In fact, it is already in the course curriculum of +3 Sc. students of Sambalpur University, Orissa, India.
I agree that Fortran is perfect for stand alone scientific programs, devoted to solving phisical math problems, especially whenever the programmer wants to share its results with other people. In this case, as procedural language. For personal usage, I suggest pre-compiled frameworks like Matlab or one of its open source clones. Moreover, whenever one needs to include GUI or more involved aspects, often object oriented languages are needed. In this case, I suggest Python as good compromise between the two.
Fortran is a computer language for high performance computing (HPC). From my experience, the compilers and debugging tools are even better than C and/or C++.
No language is outdated. FORTRAN is stiill in use and many free open source programs and free compilers are dumped on various web sites.
Onyegu Fortran is old language and needs a retired. Nowadays, there are more powerful languages such as Java (pure OOP ). The word moving towards huge programs which can't be covered by Fortran like virtual reality, games, etc....All of these can be easily covered by OOP language like Java.
Peshawa Muhammad Ali: Afaq Ahmad is right (and you are wrong) "No language is outdated" (mainly Fortran). Secondly, I and Roy Lederman are also right: Fortran is also used in numerical analysis and HPC context. Java, for instance, is not used in the latter context cited.
In numerical analysis there are lots of libraries written in Fortran which are used by the comunity. The cost of translatting these libraries to other language is huge, so many people still uses Fortran at least in parts of the codes where heavy numerical computations are required.
It is not outdated! I have used it recently together writh C and it really worked fine. I come from an information systems background and used to believe that Fortran was a programming language for dinossaurs. But I made up my mind when I had to deal with tridimensional finite elements simulation and I was able to took advantage of an previous program implemented in Fortran 90. That program was already optimized to solve differential equations with conjugate gradient method and I only had to add a few features. If I had to implement it from scratch in other language (C, for exemple) it would take some time.
It is not so easy in the beginning but after you learn a programming language it is easier to learn others. And there are lots of libraries with optimized numerical solvers writen in Fortran which are easy to use. For exemple the Lapack library (Linear Álgebra package).
To sum up, If you have problems that deal with HPC or numerical solvers you could consider FORTRAN.
Fortran WAS powerful and useful. I will never deny it that much, but as a programming language, it is obsolete. It may be good for teaching programming principles, but I would not encourage it. There are new more modern and much used languages that are also good and powerful and useful for teaching programming techniques.
A programming language cannot be considered outdated if the specific problems could be solved in easier way than with other programming languages. Or compared to natural languages, a language cannot be considered outdated until there are many people who communicate through that language.
Definitely not. FORTRAN is usfull for computing or solving the physical and mathematical problems in easier way than other programming languages. The beauty of the FORTRAN is that easy to learn and effective to use.
Mark Haefner - you need to widen your horizons. Fortran, like most programming languages, is good at solving a certain set of problem domains. It was not designed for apps/cgi-bin for the web world, it was not designed for OLTP, and only a masochist would ever write an accounting ledger program in it.
Having said that, for pure performance (and accuracy) doing numerically intensive calculations, no other language holds a candle to it. Part of why existing code bases for simulations and modeling stays in Fortran is that it just "works".
Over the years, there have been many attempts to replace it. IBM's PL/1 (Programming Language One) was through to combine the best of COBOL and Fortran into one language - and while it did a pretty good job, it didn't do numeric processing quite as well as Fortran nor did it do file/database accessing quite as well as COBOL - but it provided a single language to do both.
Seismologists, physicists, meteorologists, etc continue to use Fortran. Why you ask? Again, in part because the existing software simulations that they depend upon are written in Fortran and the time/effort necessary to rewrite (and recertify) is better used in enhancing the existing codes to do more.
Having spent 6 years in the HPC world, I can tell you that C/C++ is slowly gaining ground, but Fortran is still the core of many of the most requested/used applications that these scientists are basing their simulations on.
Programmers who already know FORTRAN can solve specific problems using FORTRAN easier than to learn new language.
No, fortran is stronger than c in some area, but it is getting old same as c or other language. What we should think about is that wheather the next generation language is c-like or fortran-like. Actually, i think c has more children.
If you learn fortran, you may consider one more question: how old will you be when fortran die? The old scientists could use a language or a tool they learned during their whole life, how about us? If we could use fortran life-long, then there is no question any more.
it is too late to answer the question. excuse me, i'm just chatting:)
Vehbi Neziri provided a good point: "A programming language cannot be considered outdated if the specific problems could be solved in easier way than with other programming languages."
There are at least two good issues supporting Fortran: (a) heritage (most of codes for numerical weather prediction, nuclear engineering, computational fluid dynamics for aeronautic industry are written in Fortran, for example), (b) Fortran is one of 2 languages largely employed for CPU high performance with intensive processing.
I agree with The Haroldo Sir; The Simplicity towards the solving complicated problems is the beauty of FORTRAN.