簡介
哈囉,歡迎。希望大家一切都好。
六月對 Exercism 來說是忙碌的一個月,我們推出了 Premium,也慶祝了十週年。 希望你在 Summer of Sexps 期間玩 Lisp 玩得開心。 現在來到 2023 年的第 7 個月,也是我們第 6 個主題月:Jurassic July。
Jurassic 是什麼意思呢? 嗯,並不是說這些語言已經絕跡了,雖然現在應該不太有人會用 COBOL 寫新軟體了。 而是說,它們是現存最古老的語言之一,有些已經超過 60 歲了。 有極大量的軟體(尤其是企業軟體)是用它們寫成的。 它們全都是非常成功的語言。
那麼,有哪些語言呢?我們要看的是 C、C++、COBOL、Fortran 和 Visual Basic。 這部影片不會介紹 C 和 C++,因為我們在 Mechanical March 已經談過了,如果你對這兩個語言有興趣,可以去看那部影片。等一下我們會來看 COBOL、Fortran 和 Visual Basic!
徽章
這個月只要在這些語言中挑一個完成 5 個練習,就能獲得徽章。 至於全年徽章,你需要完成:
- Bob:處理字串和條件邏輯
- Allergies:處理字串、數字和位元運算
- Reverse String:疊代字串中的每個字元
- High Scores:疊代數字陣列
- Armstrong Numbers:處理數字和迴圈/疊代
各語言概覽
Fortran
-
1950 年代由 IBM 的 John Backus 發起,目標是開發出比組合語言更實用的方式,來為 IBM 704 大型主機撰寫程式
-
設計目標是擅長打造科學與工程應用(名稱是 Formula Translating System 的縮寫)
-
第一個高階程式語言(把程式碼行數減少約 20 倍)
-
也是第一個最佳化編譯器(客戶原本不太願意使用高階程式語言,除非它的編譯器能產生效能接近手寫組合語言的程式碼)
-
靜態且強型別的語言
-
最初只支援命令式程式設計,但不久後就加入了程序式程式設計。後續的擴充又支援了其他典範,例如物件導向程式設計和陣列程式設計
-
經過標準化,最早是 1966 年的 Fortran 66,最後一次更新則是 2018 年!
-
影響力極大,從 BASIC 到 ALGOL,啟發了許多語言。早期許多程式語言研究的目的都是為了改進 Fortran
-
至今仍在積極開發,持續加入新功能,同時保有很強的回溯相容性保證(舊程式碼通常還是能編譯和執行)
-
透過 coarrays 內建平行處理能力,這是一種安全又有效率表達平行運算的方式。函式可以標記為 pure,幫助編譯器針對平行運算最佳化
-
使用 allocatable 變數安全地處理記憶體,由編譯器負責釋放記憶體。
-
內建與 C 的互通性
COBOL
-
1959 年由 CODASYL 聯盟設計(由美國國防部贊助!),目標是降低開發商業應用的成本(名稱代表 Common Business-Oriented Language)
-
1968 年成為標準,最新的修訂版本則是 2014 年
-
有多種實作,例如 IBM COBOL、GnuCOBOL(會編譯成 C),以及可在 JVM 和 .NET 執行環境上運行的 Micro Focus™ Visual COBOL
-
靜態型別的語言
-
多典範,支援命令式和物件導向程式設計
-
語法冗長(關鍵字很多),但非常容易閱讀。對可讀性和維護都有好處
-
良好的回溯相容性,規格穩定。經過實戰考驗
-
效能良好(金融業廣泛使用)
Visual Basic
-
由 Microsoft 開發,是 Visual Basic 的後繼者,執行在 .NET 執行環境上(Visual Basic 2003 之後就不再使用 .NET 這個後綴)
-
第一個版本在 2002 年發布,2023 年這個語言被標記為「穩定」。這表示不會再新增語法,但它仍是受支援的語言
-
語法大致和 Visual Basic 相同,但做了一些調整
-
靜態型別的語言,支援強型別和弱型別
-
多典範語言:主要是物件導向,也支援命令式和事件驅動程式設計
-
容易學習(Visual Basic 當初的設計目標就是好學)
-
對物件導向程式設計的支援非常出色
-
執行在經過充分驗證的 .NET 執行環境上,並能使用所有 .NET 函式庫
-
透過 ClickOnce 部署,輕鬆容易
使用情境
Fortran
用於高效能運算情境(超級電腦),例如氣象預報、天文學和結構工程。它也用於 CAD 軟體,許多應用程式建立在 FORTRAN 之上,例如各種 NumPy 模組就使用了 FORTRAN 77 函式庫
COBOL
在金融業大量使用,許多金融系統仍有很大部分跑在 COBOL 軟體上(估計約有 80% 的金融交易由 COBOL 驅動),不過現在大多只是維護。也用於許多商業應用,甚至 Walmart 使用的鍵值儲存系統。
Visual Basic
用於 GUI(例如資料庫介面)和伺服器產生的網站。採用的公司包括 Boeing、Wells Fargo 和 General Electric
從程式設計的角度來看,它們有什麼不同?
Fortran
最初只支援命令式程式設計,但不久後就加入了程序式程式設計。後續的擴充又支援了其他典範,例如物件導向程式設計和陣列程式設計
COBOL
多典範,支援命令式和物件導向程式設計
Visual Basic
多典範語言:主要是物件導向,也支援命令式和事件驅動程式設計
突出的特色
Fortran
- 效能。Fortran 語言及其資料型態/資料結構的設計目標就是高效率/高效能。這也是它被用在超級電腦上的原因
- 預設就支援許多數學函式
- 陣列程式設計是一種非常俐落的方式,可以對陣列和陣列的部分區段套用運算,不必手動疊代或指定陣列邊界
COBOL
- 定點運算不會有捨入誤差,這點和浮點數不同。這讓它非常適合金融業
- 非常適合讀取和寫入檔案(記錄)
- COBOL 內建支援產生報表(這也是它在商業應用中受歡迎的另一個原因)
Visual Basic
- 非常適合用 Windows Forms 建立 GUI 應用程式。拖放式的所見即所得編輯器
- 出色的 IDE 支援,包括重構、程式碼自動完成等一大堆功能
該試哪一個?
- 如果你對科學運算或高效能運算有興趣,Fortran 是絕佳的選擇
- 如果你想感受一下以前的商業應用是怎麼打造出來的,COBOL 很適合
- 如果你有興趣打造 GUI 應用程式,或已經在 .NET 平台上,Visual Basic 會是很棒的選擇
- 如果你對程式設計的歷史有興趣,COBOL 和 Fortran 都是很值得看看的軌道