Fortran: 7 Reasons Why It's Not Dead - InformationWeek

InformationWeek is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

IoT
IoT
Software // Enterprise Applications
News
7/5/2015
12:06 PM
100%
0%

Fortran: 7 Reasons Why Itís Not Dead

In the 1950s, IBM programmer John Backus invented a programming language called Fortran. It's still in use today, and here's what you need to know about it.
Previous
1 of 9
Next

Fortran: Where general-purpose programming began.

(Image: Bostomi via Wikipedia)

Fortran: Where general-purpose programming began.

(Image: Bostomi via Wikipedia)

The list of high-tech tools in continuous use since the early 1950s isn't very long: the Fender Telecaster, the B-52, and Fortran.

Fortran (which started life as FORTRAN, or FORmula TRANslator) was first created by IBM programmer John Backus in 1950. By the time John F. Kennedy was inaugurated, FORTRAN III had been released and FORTRAN had the features with which it would become the predominant programming language for scientific and engineering applications. To a nontrivial extent, it still is.

Whereas COBOL was created to be a general purpose language that worked well for creating applications for business and government purposes in which reports and human-readable output were key, FORTRAN was all about manipulating numbers and numeric data structures.

Its numeric capabilities meant that Fortran was the language of choice for the first generation of high-performance computers and remained the primary development tool for supercomputers: Platform-specific versions of the language power applications on supercomputers from Burroughs, Cray, IBM, and other vendors.

[Is COBOL dead? The answer is no.]

Of course, if the strength of Fortran was in the power of its mathematical processing, its weakness was actually getting data into and out of the program. Many Fortran programmers have horror stories to tell, most centering upon the "FORMAT" statement that serves as the basis of input and output.

While many scientific applications have begun to move to C++, Java, and other modern languages because of the wide availability of both function libraries and programming talent, Fortran remains an active part of the engineering and scientific software development world.

So how can you get your hands on Fortran? It's actually pretty easy. This isn't an exhaustive list of all the Fortran compilers in the world, but rather a survey of some of the packages easily available to those who want to learn the language or use it in their own projects (plus a couple that you're likely to run into if you land that Fortran programming job you're hoping for).

If you're looking for a programming language in use on everything from $25 computers that fit in the palm of your hand to the largest computers on earth you only have a couple of choices. If you want that programming language to be the same one your grandparents might have used when they were beginning his or her career, then there's only one option. Welcome to Fortran, the once and future language of scientific computing.

Our tour starts on the next page. Let me know which packages I left out and how you're still using the Fortran skills you learned "back in the day." If you can do that while using a FORMAT statement, everyone here will be impressed. Really.

Curtis Franklin Jr. is Senior Editor at Dark Reading. In this role he focuses on product and technology coverage for the publication. In addition he works on audio and video programming for Dark Reading and contributes to activities at Interop ITX, Black Hat, INsecurity, and ... View Full Bio

We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
Previous
1 of 9
Next
Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
<<   <   Page 2 / 5   >   >>
parekhvs
100%
0%
parekhvs,
User Rank: Apprentice
7/8/2015 | 2:42:04 PM
Re: Fortran is easy to program in
"I am really interested to know how you got started in that Language.Did you first learn it in School/University??

Or was it entirely learnt on the Job?"

- I had a basic intro to FORTRAN 77 as part of a numerical computing course during my undergrad days, but had done very little programming back then.  But during my grad school, I got into a lot more FORTRAN 77 and C programming, self-taught, for fluid flow type of applications; this was per instructions from my thesis advisor who wanted us to leave our code with him so he could continue working on them.  Then at work, I got into more FORTRAN 77, C, C++ on Unix and some Visual Basic on Windows as these languages were used for various aspects in simulations and modeling.  Later, the enterprise compute architecture shifted largely toward Windows and .NET started taking over for the presentation layers.  However, the important computational libraries remained in traditional form i.e., compiled into machine code, "unmanaged" as some call them.  The code was mostly in FORTRAN and indeed there was constant worry about the future; what would happen to them once retirements started kicking in and when the codes needed enhancements.  Now I always had difficulties with the use of pointers in coding and I noticed my scientist/engineering colleagues did too, but no one besides would admit to this.  Some of these codes were slated for upgrade to  C++ but the work was mostly done by programmers who claimed more numerical computing and engineering knowledge than they actually had.  Their output was very difficult to follow and understand, there was heavy, perhaps unnecessary, use of pointers which in combination with (early days of) object-oriented approach made for difficult existence.  The programs would run into lots of problems with memory leaks and crashes, budgets were often overrun, and in some areas, in-house development was being abandoned for 3rd party solutions which were less than optimal yet more expensive.  I wanted to avoid all this for the libraries I supported, so I started looking around on my own and came to know of enhancements in the Fortran standard and the facilities with memory allocation that offered good protection from leaks while being able to avoid aliases (pointers) that led to better code optimization.  In addition, there was support for OO, interoperability with C, parallel programming, etc.  So I began exploring on my own and developed a good enough understanding to upgrade a vast portion of our code to the current Fortran standard, all at a very manageable cost.  In addition, I started using Fortran also for new code in compute-intensive applications.

"The thing is with very-very difficult to get good Fortran Programmers today and we are'nt able to Transistion all those Gigantic Codebases/Apps quickly enough away from Fortran and towards Modern Languages where there is more demand today."

- Fortran is itself a modern language now, so you don't need to transition away from it.  This is especially true if your Codebases/Apps are geared toward scientific/technical/engineering/numerical programming.  That will be my advice which, as you can see from above, is clearly biased by my experiences.  You don't need an army of programmers to upgrade your code to "modern" Fortran.  Once such an upgrade is done, the real domain experts, the scientists and engineers, can continue to easily contribute to the evolution of the codebases as Fortran retains all its strength in "FORMULA TRANSLATION".  See a reference: H. Radhakrishnan, D. W. I. Rouson, K. Morris, S. Shende, and S. C. Kassinos, "Test-driven coarray parallelization of a legacy Fortran application," in Proceedings of the 1st International Workshop on Software Engineering for High Performance Computing in Computational Science and Engineering, pp. 33– 40, ACM, November 2013.  Look at Table 1 therein; that is very similar to the approach we have followed.  If you're industry, you may want to contact Sourcery, Inc. and/or FortranPlus Co., UK for possible guidance with your codebases and what to do with them.

"Also,was wondering where you see Fortran going 5 years from now?  Will it still be around as it is today?"

- in the scientific/technical/compute intensive domains, I expect Fortran to regain some of the foothold it had lost during the last couple of decades.  Academia will slowly resume offering advanced numerical courses with modern Fortran; see CME214 in the Stanford Univ course catalog.  Fortran language will continue to evolve, the newer standards will facilitate more and more modern programming paradigms, and its usage will become more standards-based (note few vendors now introduce their own language extensions) which will allow more portable code.  Parallel programming will become even more important and Fortran will be there to directly support a lot of needs in this area.

 

 
Ashu001
50%
50%
Ashu001,
User Rank: Ninja
7/8/2015 | 1:27:34 PM
Re: Fortran is easy to program in
parekh,

Thanks for sharing your viewpoints here(regarding Fortran).

I am really interested to know how you got started in that Language.Did you first learn it in School/University??

Or was it entirely learnt on the Job?

The thing is with very-very difficult to get good Fortran Programmers today and we are'nt able to Transistion all those Gigantic Codebases/Apps quickly enough away from Fortran and towards Modern Languages where there is more demand today.

Your viewpoints and thoughts would be very insightful here.

Also,was wondering where you see Fortran going 5 years from now?

Will it still be around as it is today?

 
parekhvs
50%
50%
parekhvs,
User Rank: Apprentice
7/8/2015 | 12:10:06 PM
Re: Fortran is easy to program in
"Can you give us an idea of the kind of applications you're coding in Fortran these days?"

- it is for scientific and engineering applications for use in manufacturing industry, particularly for design, optimization, and maintenance of equipment and processes that deal with fluid flow.  Many of my "applications" are actually computational libraries utilized in simulations and technical calculations.

So one can argue my domain has had a heavy Fortran influence from the earliest days of computing and there are some codes in use even now that date back to FORTRAN IV.  Most of the codes I work on have, thankfully, been upgraded, some to other languages such as Microsoft .NET or C++ but many to "modern" Fortran.  The latter have performed wonderfully well and have been extremely robust and efficient in addition to being easy to understand and maintain, particularly by young engineers.
Curt Franklin
50%
50%
Curt Franklin,
User Rank: Strategist
7/8/2015 | 11:43:13 AM
Re: Fortran is easy to program in
@parekhvs, thanks for bringing some updated information to the discussion! I'm pleased to hear that Fortran has moved past the rigors of FORMAT -- clearly, I need to spend more time with the modern versions of the language.

The IEEE's Supercomputing Conference is coming up soon -- it was always my go-to conference for running into wandering herds of Fortran coders. I'm curious: Can you give us an idea of the kind of applications you're coding in Fortran these days?
parekhvs
50%
50%
parekhvs,
User Rank: Apprentice
7/7/2015 | 2:15:13 PM
Fortran is easy to program in
I actively program in Fortran for scientific and engineering applications, mostly on Windows platform but also a bit on Linux.  I also code in C, C++, Visual Basic, C#, and bit of Java and I also use MATLAB for simulations and prototyping.  I am also beginning to use Python.

Starting with the 1990 standard, Fortran has become even easier language to program in that most people who have commented here might remember.  It has many advantages compared to the other languages I use, definitely for array handling toward matrix computations in compiled programs.

I would like to dispel myths about the so-called difficulties in exchanging data in and out of Fortran applications and in processing character data: using the features introduced in the Fortran standard since 1990 and especially in Fortran 2003, I am easily able to do these things in Fortran; I need to exchange data often with managed code applications such as Microsoft .NET or even browser-based applications and I am able to do this easily in standard Fortran code which is portable across compilers and platforms.

I also use object-oriented (OO) approach heavily in my code and even here, I find I can apply almost all the OO design patterns that are useful for scientific and technical programming fairly easily in Fortran.

Finally, I am starting to learn parallel programming and the COARRAY features in Fortran standard looks very promising for my needs.

All in all, I find Fortran today to be a modern and highly efficient programming language that is just as easy to maintain as any other language.
Curt Franklin
50%
50%
Curt Franklin,
User Rank: Strategist
7/7/2015 | 1:31:45 PM
Re: Fortran
OK, @TomV424, you got me: I never had to learn Algol. We talked about it when we were designing the early Ada compilers, but I never wrote a line of code in the language.

And I think your description of Fortran is spot-on: No one would mistake it for a coding Ferrarri, but when you need to power through some serious numeric problems, it's hard to bear.
Curt Franklin
50%
50%
Curt Franklin,
User Rank: Strategist
7/7/2015 | 1:29:28 PM
Re: Brings Back Memories
@pattrick, ahh, the heartbreak of a dropped deck if you forgot to run a marker along the edge first! I can still remember watching a grad student have a complete emotional collapse when he dropped a deck of a couple thousand cards on his way to the sorter...

But there was something very real about them. And you felt very official (or at least I did) carrying around an attaché case with your card decks, your green-bar printouts, your coding pads, and IBM flow-chart template. We might have still been learning everything but doggone it, we LOOKED like we knew what we were doing!
Curt Franklin
50%
50%
Curt Franklin,
User Rank: Strategist
7/7/2015 | 1:25:24 PM
Re: FORTAN
@cwaser10, Don Knuth deserves his own article. I read his amazing trilogy and still refer to his definition of an algorithm when I'm trying to teach the concept to new programmers.

I got to talk with Knuth in the mid 1980s. He's one of the three towering giants of information science (Claude Shannon and Bob Metcalf are the others) I've had a chance to talk with. I treasure the memories of all three encounters.
TomV424
50%
50%
TomV424,
User Rank: Apprentice
7/7/2015 | 1:23:00 PM
Fortran
I am old enough that I can say that FORTRAN was the second computer language I learned.  The first, as an undergrad, was Algol, with programs written on coding forms, then translated to Hollerith cards, and finally submitted to an admin for running on Bendix G50 computers.  Next day, I would find out what errors I had committed, correct them, and resubmit. Rinse, lather, and repeat!

The company I worked for leased an IBM 1130 to develop code to control railroad classification yard operation.  These guys were heavy-duty, since they wrote in assembly language.  I did not want to do that, so I got the manuals for the FORTRAN compiler and studied them for about two days.  Then I started writing my own programs for my projects.

When personal computers arrived in the 70s and 80s, I moved on to Basic, Pascal, C, and assembly language for various micros and minis.

In my mind, FORTRAN is the bulldozer of programming languages.  You can do a great deal with its power but it is not a very easy or comfortable ride. 
Curt Franklin
50%
50%
Curt Franklin,
User Rank: Strategist
7/7/2015 | 1:22:37 PM
Re: Takes you back
@rlhyde, thanks for the chuckle.

OK, I'm curious: Do you really think that Java is easier than Fortran? I know that the world has moved to OOP rather than procedural languages, but is that the only thing that makes you want to use Java rather than Fortran to teach kids?

I never used WatFor, though I know plenty of people who spent their lives there. I suppose I should have been grateful I wasn't having to chisel my code into blocks of stone...
<<   <   Page 2 / 5   >   >>
Commentary
Gartner Forecast Sees 7.3% Shrinkage in IT Spending for 2020
Joao-Pierre S. Ruth, Senior Writer,  7/15/2020
Slideshows
10 Ways AI Is Transforming Enterprise Software
Cynthia Harvey, Freelance Journalist, InformationWeek,  7/13/2020
Commentary
IT Career Paths You May Not Have Considered
Lisa Morgan, Freelance Writer,  6/30/2020
White Papers
Register for InformationWeek Newsletters
Video
Current Issue
Key to Cloud Success: The Right Management
This IT Trend highlights some of the steps IT teams can take to keep their cloud environments running in a safe, efficient manner.
Slideshows
Flash Poll