這是篇老人才有感,年輕同學會「蛤?」的程式閒聊。

Fortran 是我在學校學的第一門程式語言,當年為工專必修程式語言(商專則是 COBOL),號稱科學計算必備。當時我已自學過 BASICA 也開始接觸 PASCAL,這兩種程式語言可以在 PC 搞出超多好玩的花樣(像是自己寫迷宮遊戲俄羅斯方塊),相較之下,FORTRAN 77 簡直無聊到掉渣,若不是為了交作業,我完全不想碰它。(當年的教科書好像是下面這本)

thumbnail
照片來源

後來誤打誤撞進了資訊這行靠寫程式吃飯,有在關注程式語言發展,見證 Java、.NET、JavaScript、Python 掘起。COBOL 仍在企業跑一些老系統被視為生財工具,自然有人為它續命,再戰十年也不是問題;但主打科學運算的 Fortran 似乎已消聲匿蹤,很少聽到它的消息,而數學計算語言的角色則由 MATLAB、R 及這些年如日中天的 Python 頂替。

萬萬沒想到...

繼 2019 VB.NET 與 C# 上演黃金交叉後,2024 四月的 TIOBE 程式語言排行榜再上演傳奇一幕,20 年後,Fortran 一舉擠進前十名 並成為 TIOBE 五月頭條新聞的主角。「May Headline: Fortran in the top 10, what is going on?」(四年前的 Fortran 跌到谷底位居 50 名,一年前則在 19 名)


來源

TIOBE 對此有所解釋,一些跡象顯示 Fortran 正走向熱門,像是 Amazon 上的 Fortran 書籍查詢超過 1000 次,而 Kotlin 或 Rust 等新興語言僅有 300。另一方面 1957 年誕生的 Fortran,至今仍在持續進化,並非大家想像的一灘死水,去年甚至推出新標準 ISO Fortran 2023。如今的 Fortran 經過進化改良,甚至加入了物件導向,儼然已變成一門現代程式語言。參考


來源

為此我特別去查新版 Fortan 的樣子,看看跟當年差多少。參考

我當年學的 FORTRAN 77 長這樣,每行前面要空六格(好像還有種印好第六格線的程式專用紙),指令全大寫,IF THEN 強制換行、靠 GOTO 寫流程,已習慣現代程式語言風格的年輕同學,應該沒人受得了吧?

而現代 Fortran 長這樣,風格已相近 C、JavaScript ,難以想像它跟上面是同一個程式語言。

另外,TIOBE CEO Paul Jansen 有分析 Fortran 再次博得關注的原因。他認為儘管在 Fortran 之外已有不少適合數學計算的程式語言,但速度慢一直是 Python 的硬傷,MATLAB 強大易用但授權昂貴,C/C++ 速度快但缺少原生數學計算支援,R 與 Python 類似,一樣輸在慢且普及度更低,後起之秀如 Julia,則尚未達成熟。在此情勢下,Fortran 挾著速度快,數學計算支援完整,發展成熟又免費的優勢,再次掘起。

心得是,現在進入排行榜的現代 Fortran,與我學生時代那個死板難寫的 FORTRAN 77 已不是同一種程式語言。而放眼自己的職涯發展,應該沒啥機會與跟他再續前緣,心中還是記著 FORTRAN 77 樸拙的身影到老吧。


Comments

# by Joker

滿喜歡這種考古的覺得有趣。

# by 樂透無名

讚 只聽過沒用過 (拇指)

Post a comment