On Thu, Mar 22, 2018 at 5:05 PM, Bakul Shah <bakul@bitblocks.com> wrote:

I was thinking about a similar issue after reading Bradshaw's
message about FORTRAN programs being critical to his country's
security. What happens in 50-100 years when such programs have
been in use for a long time but none of the original authors
may be alive?
​....​
 

We may be incurring a lot of "technical debt" that future
generations may have to pay!

​Maybe and maybe not.​ I worried about this a bit myself.  But I think the difference I think is that while computer scientist may be using Fortran, it is still pretty heavily used in the 'hard science' - certainly physics and chemistry - because as was already pointed out -- it is still the best language for doing complex mathematics.   And more over, the language (like UNIX) has changed.  If you look at modern Fortran code, it looks more like Algol than Fortran-IV.

Every scientific code that I know of (with the exception of SPICE), that got recoded into C or C++ -- has slowed down or gotten more complex.   And in SPICE3's case, TQ spend hours staring at Ellis code in SPICE2.  Tom was on his own a 'bad ass' Fortran programmer, so he knew the trick Ellis was taking.   And, like other codes I know, it took a bit before TQ got SPICE3 in parity much less better.   In the end, what made SPICE3 replace its older brother, was a new feature (easy addition of new transistor models), but I think TQ would we one the first to tell you, it was very hard to beat Ellis's FORTRAN.

The reality is Fortran is a great tool for what it is designed to do.   An most of us on this list don't do that work, so we don't value it.   But if you have to nasty math is partial differentials, complex numbers, etc - Python, C, C++ are fine for very small things.   But if you have a production code that is going to run for hours, if not days, on a supercomputer, chances are it is Fortran.

For instance the last time I looked at WRF about a a year ago, which is the premier weather code (and you hear about every night on the news with the different 'models' the weatherman talk about), that is a FORTRAN-90 code.   We were looking at the how to speed of the messaging stack under the covers and were interested in how it stressed the networking stack.  It has begin/end style looping, and its very modular.   The complex  and unreadable part is MPI and the stuff to make it run in parallel.  It's not the Fortran-ness.   I suspect anyone on this list like me, that reads C could look at that code and understand it pretty quick.   

The question (and a good one) is if you are not 'a Fortran person,' are you going to be able to understand it well enough to not do damage to it, if you modify it?  Which is of course the crux the question Bakul is asking.

I suspect, it is not as bad the science fiction movies profess.   Because the codes have matured over time, which is not what happened with Y2K.   Are their 'dusty decks' sure - but they are not quite so dusty as it might think, and as importantly, the code we care about are and have been in continuous use for years.  So there has been a new generation of programmers that took of the maintenance of them.