Een van de oudste programmeertalen is ineens weer hot. Maar kan het echt standhouden tegen nieuwere opties? Fortran is de oudste commerciële programmeertaal, ontworpen door IBM in de jaren vijftig. En hoewel programmeurs jarenlang de ondergang ervan hebben voorspeld, 64 jaar later is het nog steeds actief, met gebruikers, waaronder topwetenschappers van NASA en het Department of Energy, die het gebruiken op ‘s werelds krachtigste supercomputers. 

Het verscheen zelfs onlangs – en zeer onverwacht – opnieuw in een ranglijst van de meest populaire programmeertalen, zij het op de 20e plaats. Deze heropleving wordt verklaard door de enorme behoefte aan wetenschappelijke cijfers; iets waar Fortran erg goed in is.

Maar weinigen zullen beweren dat Fortran momenteel een bijzonder rooskleurige toekomst in het verschiet heeft, aangezien wetenschappers massaal naar nieuwere talen zoals Python of Julia trekken.

Ondřej Certik, een wetenschapper bij het Los Alamos National Laboratory (LANL) van het Amerikaanse Department of Energy, heeft een missie om  Fortran nieuw leven in te blazen via twee belangrijke projecten . LANL was de sleutel tot het Amerikaanse Manhattan Project uit de Tweede Wereldoorlog om de eerste atoombommen te ontwikkelen, en is ook de thuisbasis van de op Cray XC40 gebaseerde Trinity , ‘s werelds 13e snelste supercomputer.

Veel van Certik’s projecten zijn grotendeels in Fortran geschreven en hij probeert Fortran aantrekkelijker te maken voor ontwikkelaars.

“Als je Fortran noemt, zullen veel mensen beweren dat het niet doodgaat. Ik zou zeggen dat het niet doodgaat”, zegt Certik. “In ieder geval gaan mensen in mijn werk ervan weg. We hebben er nog steeds miljoenen regels code in, dus we hebben nog steeds Fortran-code over 20 jaar, maar voor nieuwe projecten gebruiken mensen Fortran niet meer.”  Certik hoopt dat hij dat kan veranderen.

Zijn eerste poging is de  LFortran-compiler , die zal helpen bij het vertalen van Fortran-code in moderne talen, waaronder Python en Julia. De tweede is  de fortran-lang website  om Fortran-programmeurs te geven wat Python- en Julia-ontwikkelaars hebben – een ruimte voor een gemeenschap om samen te werken aan verbeteringen.

“Een manier om aan Julia te denken, is dat ze Python hebben genomen en het snel hebben gemaakt”, zegt hij. “Met LFortran proberen we de tegenovergestelde weg te gaan: neem een ​​snelle taal als Fortran en kijk hoe interactief je die kunt maken.”

Fortran zelf wordt nog steeds actief ontwikkeld via twee hoofdorganen: de  Amerikaanse Fortran-normcommissie, J3 , die de belangrijkste beïnvloeder is van de standaarden die zijn opgesteld door de wereldwijde Fortran-instantie,  WG5 . Intel, Nvidia, Arm, IBM, AMD, de DoE, NASA en anderen zijn vertegenwoordigd op J3.

“Ik denk dat Fortran zich vandaag in een heel moeilijke positie bevindt”, zegt Tom Clune, hoofd van het software-integratieteam en het  Global Modelling and Assimilation Office  van het Goddard Space Flight Center van NASA.

Clune, die de belangrijkste vertegenwoordiger van NASA is  in de J3 Fortran-commissie , zegt dat de taal vastzit aan de kwestie van het ondersteunen van nieuwe functies die het risico lopen oude code te breken.

“Aan de ene kant zijn er een aantal nieuwere talen met functies die wenselijk lijken voor problemen die van oudsher het hoofddomein van Fortran waren”, vertelt hij. Dit zet Fortran onder druk om in korte tijd nieuwe functies te ontwikkelen. “Aan de andere kant heeft de huidige markt geresulteerd in een afnemend aantal moderne Fortran-compilers – een trend die nu waarschijnlijk omkeert – en afnemende budgetten voor Fortran-ontwikkelaars van compilers”, zegt hij.  “Als je deze combineert met de algemene wens om Fortran achterwaarts compatibel te houden, zal er iets opleveren.”

Fortran heeft sinds 2000 verschillende belangrijke updates ondergaan, waaronder de F2003- en F2008-releases, en nog een in 2018. De volgende twee updates worden F202X en F202Y genoemd, maar ze zijn nog jaren weg. Het is een lastige evenwichtsoefening; match moderne programmeertalen en loop het risico dingen kapot te maken of geen nieuwe functies toe te voegen – en loop het risico gebruikers te verliezen aan nieuwere talen.

“Wij, de taalcommissie van Fortran, zouden de geavanceerde functies in een haast in de standaard kunnen brengen en uiteindelijk zonder daadwerkelijke implementatie van die functies”, zegt Clune. “Als alternatief kunnen we de taal stapsgewijs verder ontwikkelen, waardoor we het risico lopen een groter deel van het gebruikersbestand te verliezen dat niet tientallen jaren kan wachten op de gewenste mogelijkheden. En er is absoluut geen garantie dat er een sweet spot in het midden is”, geeft hij toe .

Maar hij stelt dat het voortbestaan ​​van Fortran een voordeel is voor de wetenschappelijke gemeenschap. De kernonderdelen van Fortran kunnen over het algemeen on-the-job worden geleerd en vereisen iets minder verfijning dan talen zoals C ++, merkt hij op. En voor wetenschappers brengt het wisselen van taal een enorm risico met zich mee dat er subtiele veranderingen worden aangebracht in de analyse die ze uitvoeren.

Bij LANL voelt Certik de druk om over te schakelen naar een nieuwere taal dan Fortran. Veel van de 10.000 wetenschappers van de organisatie willen van taal veranderen, wat de acceptatie van LFortran moeilijker maakt.

“Er zijn mensen die vinden dat we maar weg moeten gaan uit Fortran”, zegt Certik. ‘En er zijn mensen die zien dat er natuurkundigen zijn die Fortran gebruiken, dus dat zullen ze leuk vinden.  “Maar ook, mensen die Fortran al gebruiken, stellen deze Python- of Julia-achtige benadering ervan niet per se op prijs”, zegt hij.

“Totdat alles echt werkt, zien ze de visie niet noodzakelijkerwijs. Sommige mensen zeggen dat het een uitstervende taal is, maar ik denk dat het potentieel enorm is. Als ik met mensen praat die Fortran gebruiken, vertellen ze me dat het belangrijkste is wat ze willen is compilers die hun code efficiënt op moderne hardware kunnen draaien – niet alleen draaien, maar er ook hun voordeel mee doen. ” En Clune stelt dat er nog steeds nieuwe Fortran-projecten worden ontwikkeld.

“Er worden zeker nieuwe projecten geschreven in Fortran”, zegt Clune, terwijl kleine projecten nog steeds grote worden: “Iemand zal nieuwe functies toevoegen en voor je het weet komt er weer een andere grote Fortran-applicatie”, zegt hij.  Clune geeft echter toe dat het steeds zeldzamer wordt.

“Met name veel wetenschappelijke toepassingen die ooit zo klein zouden zijn geboren, ‘wegwerp’-Fortran-toepassingen worden nu gestart als kleine’ wegwerp’-toepassingen in Python,” zegt hij. Maar Fortran heeft nog steeds voordelen ten opzichte van nieuwe talen, stelt hij.

“Fortran heeft uitzonderlijk goede ingebouwde ondersteuning voor numerieke berekeningen en array-manipulatie, wat vooral belangrijk is voor wetenschappers en ingenieurs”, zegt Clune. “Python en Java worden over het algemeen als trager ervaren.”

Fortran’s toekomst? 

Clune zegt dat de twee “must-have” -functies waar de commissie naar werkt, onder meer het afhandelen van uitzonderingen en generieke programmeerfuncties zijn die beschikbaar zijn in andere talen.

Volgens Clune is de afhandeling van de uitvoering echter geschrapt vanwege een aantal grote uitdagingen om uitzonderingen te combineren met andere Fortran-functies en vanwege enkele meningsverschillen over specifieke details. En die volgende F202Y-update komt misschien pas aan het einde van dit decennium – tegen die tijd zal Fortran 73 jaar oud zijn.

“Het is moeilijk te voorspellen wanneer F202Y daadwerkelijk zal plaatsvinden. Ik hoop dat het niet later zal zijn dan 2030 en dat ik de kans zal krijgen om generieke programmering in Fortran te exploiteren voordat ik met pensioen ga. En ja, negen jaar is een eeuwigheid. in de moderne softwarewereld ”, zegt hij.

Fortran heeft een ongelooflijke run gehad en heeft nog steeds zijn bewonderaars. En met tientallen jaren aan Fortran-code die nog steeds efficiënt over de hele wereld draait, zal het niet snel verdwijnen. Maar tenzij het zijn nieuwere rivalen kan inhalen, kan het moeilijk zijn om veel nieuwe fans te krijgen, of om vast te houden aan degenen die het nu heeft.