作者 | Program Ace
譯者 | 王坤祥
策劃 | 小智
本文作者從自己的觀點出發,介紹了未來 20 年內可能消失的 5 個編程語言,並給出了具體的原因。最後對想要學習編程的初學者給出了學習建議。
隨着時間的流逝,程序員們發現了更新、更簡單的工作方式,新的編程語言如雨後春筍般出現,但只有少數編程語言能成為社區的新寵。這種進步的一個副作用是一些古老的編程語言必然會跟歷史一樣被人們遺忘。如果一個編程語言無法隨着時間的推移提升其價值,那麼它的用户羣終將會流失,並逐漸淡出人們的視線,或者成為更新一代編程語言的基礎。
最近,古老的 COBOL 編程語言上了熱搜。在 1960 年代和 1970 年代,它曾經是許多美國銀行和政府機構的首選的編程語言,但最終被更加簡單有效的編程語言所取代。但是,使用 COBOL 構建的系統仍然存在,當一些政府機構發現他們需要通過更新代碼來全面改革失業系統時,才發現業內沒有幾個開發人員可以熟練使用該編程語言。
滄海桑田,COBOL 早已物是人非。我們當前的許多編程語言也註定會有相似的下場。本文中,我們將分析未來 20 內最終會消失的 5 種編程語言。我知道這可能會傷害到那些正在使用這幾個編程語言的程序員的內心,所以在開始介紹之前首先聲明下這只是我個人的看法和預測。
1. Ruby
Ruby 在 1999 年發佈後立即受到程序員們的熱捧,它能夠快速構建應用程序的特性給程序員留下了非常深刻的印象。緊隨其後,備受歡迎的 Ruby on Rails 框架於 2004 年發佈,由於 Ruby 和 Rails 這兩個名稱在當時幾乎成為了同義詞,因此 Ruby 很快地被推到了程序員最喜歡的編程語言排行榜首位。它經歷了一個堅實的十年,穩居編程語言排行榜前列,一度成為眾人矚目的焦點,但是最近的十年它並不好過,所以 Ruby 納進了我的淘汰清單列表。
為什麼 Ruby 會逐漸消退呢?導致其排名下降的因素之一是其執行速度。由它構建的應用程序運行速度往往比其他流行的編程語言,比如 JavaScript、Go 和 Python 構建的應用(在某些框架下)運行速度慢。同時期下,後三者已經發展到可以滿足當時的需求,而 Ruby 在很多方面一直在原地踏步,沒有什麼進步。例如,讓 Ruby on Rails 名噪一時的 MVC 架構在現在被很多編程人員看來是笨重和過時的。
2. Visual Basic
考慮到 Visual Basic 是公認的程序員最不喜歡的編程語言之一的事實,將它包含在淘汰列表中是無可厚非的。它於 1991 年由微軟發佈,作為構建 Windows 的主要工具,確實實現了此目的,但多年來經常出現問題。程序員使用 VB 進行開發的熱情差距很大,隨着 2000 年 C#的發佈,這種差距逐漸進一步擴大。由於 C#更加簡潔,提供了更廣泛的功能,並且更適合於雲服務和移動開發(在當前市場中扮演着重要角色),因此很多開發人員都放棄使用 VB 轉而投向 C#懷抱。最重要的是,似乎它的創建者也都無情地放棄了它,因為微軟曾表示他們沒有進一步發展它的計劃。
3. Haskell
Haskell 是另一個古董級別的編程語言,它於幾十年前創建,在世紀之交前一直被使用。不幸的是,對於 Haskell 來説,屬於它的時代很快就要結束了。研究人員和學者大多將 Haskell 用於構建程序,以對其工作進行復雜的排列和外推計算,普遍認為它很難學習。學習路徑困難必然導致非常有限的活躍用户,而 Haskell 的上一個最新的穩定版本是在 2010 年發佈,這對於促進它本身的發展無濟於事。
4. Perl
與 Visual Basic 命運一樣,Perl 不被大部分使用它的開發人員所喜歡。在 Perl 於 1987 年開始流行時,它被譽為是適合任何一個人的編程語言,無論你是編程的初學者還是專業人士都可以使用,同時還被宣傳可以用於各種各樣的場景。但是,1991 年 Python 的出現,徹底粉碎了 Perl 主導編程世界的幻想。
儘管 Python 的語法相比 Perl 稍顯繁瑣,更加嚴格,但 Python 讓用户使用腳本實現目標的過程變得更加簡單直接,這改變了當時的遊戲規則。Python 在 2000 年代開始讓 Perl 黯然失色,並一度成為編程入門的首選語言。在過去的 15 年中,Perl 的使用量一直在穩步下降,我們看不到任何它將停止下滑的跡象。
5. Objective-C
Objective-C 與 Apple 的關係類似於運動相機與 GoPro 的密切聯繫——兩者都是他們所屬公司專用的工具。儘管 Objective-C 已經在 macOS、iOS 和 OS X 開發中使用了二十多年(1996 年至今)的時間,但如今已經很少有程序員在使用該語言,因為 Swift 橫空出世了。
Swift 由 Apple 構建並於 2014 年發佈,旨在成為 macOS、iOS 及其他幾個 Apple 相關平台的新編碼標準。Obj-C 在很大程度上是基於複雜的 C 語言創建的,而 Swift 有效地刪除了這些複雜的元素,同時增加了一些新的功能特性,例如自動內存管理,對 Cocoa Touch 的支持以及類型安全的集成。
Swift 設法實現和維護了較高的語言穩定性和用户採用率,因為 Apple 公司仍在堅持重寫 Obj-C 庫,以使舊語言的使用者可以很容易地進行過渡。儘管仍然有很多關於這兩種選擇哪個更好的討論,但當前的趨勢表明,Objective-C 終將被淘汰。
總結
儘管上述提到的語言似乎都處於下降趨勢,但不能保證它們最終一定會消失。如果他們的創造者和社區投入足夠的精力來更新和維護它們,添加新功能以及有用的特性,這些編程可能會捲土重來,恢復生命力。但事實是廣大程序員更有可能繼續湧向更新更好的選擇。
如果你正在考慮開始學習哪種語言,那麼有許多因素需要考慮。如果你只是將編程當做一種興趣愛好,你可以聆聽一下自己內心並選擇最能激發你興趣的那個來學習,即便所選的編程語言不再被廣泛使用甚至面臨淘汰。另一方面,如果你正在從事編程相關的工作,那麼不應該只選擇最流行的編程語言,也不應該賭一把選擇未來可能會成為最流行的編程語言。而應該通過仔細對比各個編程語言的功能特性,市場需求以及可見的未來增長潛力等因素後做出選擇,這才是明智之舉。