為什麼 COBOL 還沒有“死”?

優質文章,第一時間送達!

為什麼 COBOL 還沒有“死”?

譯者:EarlGrey@編程派

原文:
http://slott-softwarearchitect.blogspot.com/2020/04/why-isnt-cobol-dead-or-why-didnt-it.html

由於疫情原因,上古語言 COBOL 又火了,甚至 IBM 都開始重新提供培訓課程了!今天分享一位國外開發者對 COBOL 的分析文章,解釋為什麼 COBOL 沒有發展的更好?

FORTRAN 之所以能夠存活下來,就是因為這門語言及相關的工具鏈(尤其是編譯器)成功地解決了很多開發者的痛點問題,同時保留了高性能的優勢。這避免了 Python 等挑戰者,試圖取代它運行天氣預報等動態模型任務的嘗試。

簡而言之,為什麼 FORTRAN 現在混得還可以?但是 COBOL 就慘很多呢?

我敢保證,這兩門語言的的境遇基本是一致的。現在仍有機構使用的原因,是仍有大量的歷史遺留實現。

當然,兩者也是有區別的。我覺得其中一點,就是開發者對語言的反感程度

FORTRAN 給人的印象尚可,是因為它已經將很多實現細節,封裝在了常用庫裡面,開發者不用自己去摸索。SciPy 中有很多 FORTRAN 代碼,GCC 編譯器會負責處理這些代碼,不需要我們操心。

但是 COBOL 就不同了。它沒有方便的 Python 上層封裝庫,也沒有 Conda 安裝包。只有在企業應用中才有使用。

另外,使用 COBOL 的機構,又正好是存在大量技術惰性的組織。組織變化很慢,它們所使用的語言則更加遲緩。

這是具有監管優勢的超大型組織所帶來的後果。例如,政府要求很高,政策調節下幾乎不怎麼變動。銀行、保險等其他監管嚴格的行業,調整的也比較緩慢,能夠忍受 COBOL 的問題。

還有一個原因。

FORTRAN 庫沒那麼難弄懂,至少會有清晰的數學定義,可以進行測試。沒有什麼意料之外的情況。

但是對於要符合法律要求的 COBOL 程序,100% 存在模糊的、無法解開的迷霧,特性疊加特性之後,根本無法進行單元測試。

特殊情況和例外,是程序設計必須要考慮的問題,通常是在應用中解決。

對於FORTRAN,例外情況是由使用 FORTRAN 的 Python 封裝(如 SciPy、Numpy)處理的。

但對於COBOL,例外情況就直接在 COBOL 裡的,某個地方處理的。

回覆下方「關鍵詞」,獲取優質資源


回覆關鍵詞「 pybook03」,立即獲取主頁君與小夥伴一起翻譯的《Think Python 2e》電子版

回覆關鍵詞「入門資料」,立即獲取主頁君整理的 10 本 Python 入門書的電子版

回覆關鍵詞「m」,立即獲取Python精選優質文章合集

回覆關鍵詞「」,將數字替換成 0 及以上數字,有驚喜好禮哦~


題圖:pexels,CC0 授權。

為什麼 COBOL 還沒有“死”?

好文章,我在看❤️


分享到:


相關文章: