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.