程式語言是有生命的,它們出生之後,幸運的一群存活下來,享有豐富的生活,然後不可避免地進入衰退。和現實生物不同的是,程式語言的衰退能夠持續許多許多年。由於大量舊有程式碼需要人手持續維護,曾經越風行的程式語言,衰退期就越長。
新程式語言的出現,幾乎總是與特定領域的需求相關。例如,Ruby on Rails 的出現讓 Ruby 突然間熱門起來,Objective-C 的興起則是起自 2007 年 iPhone 的首次推出。因此,了解這些波動與趨勢,通常能夠為現今的編程問題提出有價值的洞見。
最近的處理器趨勢,也就是從多核到多核心的轉向,預料會為適合並行化程式設計的函數式語言構築崛起的舞台。然而 2012 年的多數調查並未見到重大突破。要說哪種函數式語言表現最好的話,Scala 與 Clojure 是其中的佼佼者,從 Ohloh 的語言數據、Google 搜尋趨勢 (Google trends)、Tiobe 指數 ( Tiobe index) 看來,尤以 Scala 目前最為熱門。
語言熱門度經常讓特定語言支持者或反對者難以捉摸。例如,多年來 Java 一直被預期會沒落,然而前面提過的三項數據卻與此相左。年復一年,Java 的地位始終沒有動搖,在所有主要語言調查中排名不是第一就是第二。這似乎顯示對該語言的不滿,以及許多 JVM 上的替代語言,都沒有削減 Java 的普及度。然而,正確的來說,應是該語言在其傳統應用中沒落,但 Android 的普及卻彌補了其間的差額。
另外一個主要的行動程式語言 Objective-C 表現也不錯,其 Tiobe 指數大幅上升,在 Google 搜尋趨勢上也維持一樣的高水準。然而,假如 Android 持續吞食 Apple 的全球市佔率,預料將看到 Java 持續成長與 Objective-C 穩定持平。
在一般用途的腳本語言上,Python 持續緩慢成長,JavaScript 和 Ruby 則是原地踏步,而 Perl 持續其衰退。根據 Google 搜尋趨勢,Perl 的搜尋數量只有 2004 年的 19%。它在開放源碼社群中發揮的作用減弱,進一步鞏固了該語言正處於無法挽回處境的看法。但是,宣告某某語言陣亡或垂死時,需要格外小心,因為也可能出現罕見的復活現象,JavaScript 和 Objective-C 就是兩個最好例子。儘管由於更為普及的 Python 的直接競爭,Perl 不太可能見到這種新的生機。
主要的原生語言 C 與 C++,大致保持相同水準,許多調查中的數據粉碎了微軟 Herb Sutter 所提出,將見到 C++ 復興運動的希望。Sutter 提出的復興希望部分應是出自於 C++11 標準底定,以及結合 Windows 8 推出之勢,該語言可提高普及率的預期,然而從各項數據中並未看出 C++ 打入新利基市場的跡象。要做到這一點,C++ 必須在行動、雲端、海量資料 (big data) 等當前重要領域成為主要語言。但目前看來,C++ 最有可能仍維持在其傳統利基市場中成長。
Lua 與 Tcl 這兩個主要嵌入於 C 和 C++ 中的語言,則持續往不同方向前進。Lua 被廣泛用於遊戲中,飛快的全新 LuaJIT 更增加了該語言吸引力。Tcl 則因為核心設計問題、釋出緩慢、糟糕的行銷決策而持續衰退。
在 2012 年,我們看到若干新興語言具有潛力躍升為主流,像是 D、Go、Dart。儘管尚未能夠擠進第一線語言之列,它們仍正緩慢的向前邁進並吸引愛好者。今年我們將看到更多新的有趣的語言,並報導它們角逐開發者青睞的進度。
Comments
基本上 2004 年與 2012 年的總量也是正向成長,因此名次 落後,大致代表是其成長率小於總 體成長率,而不見得是衰退。