21世紀編程語言死亡名單
原創【51CTO.com原創稿件】IT 圈有一個懸了很多年未決的世界謎題:“Java 到底什么時候會死啊?” 今年以來,一些比較流行的語言都呈現出穩定下降的趨勢,像 Java 和 C 語言就是其中的大代表。
Java 屢“被死亡”?C 語言一蹶不振?
過去 16 年來(自 2001 年起),TIOBE 編程語言排行榜的三甲位置一直被 Java、C 與 C++ 長期占據。
Java 語言一度陷入狗帶風波,“被死亡”和“被復活”了那么多次,現在它依然穩坐榜首。C 語言去年底就被爆一蹶不振,今年也是前三甲。
C# 與 Python 雖然已經被廣泛認定為下一時代的核心編程語言,但在人氣方面仍未得到充分體現。
C# 之所以無法進軍三甲,主要是因為其在非 Windows 領域的采用率仍然不夠理想。另一方面,Python 的動態類型化特性導致開發者們不傾向在大型以及/或者關鍵性軟件系統中加以運用。
不過必須承認,三巨頭與其他編程語言間的差距正在迅速縮小。而在三巨頭逐漸失去壓倒性優勢之后,未來前景將如何變化目前還很難給出定論。
事實上,目前的趨勢顯示雜糅使用正步入主流,以單一編程語言開發的應用程序正變得越來越罕見。
按照這樣的發展進程,未來 TIOBE 排行榜上還將出現更多人氣縮水的語言選項。激動人心的時刻終于到來,相信大家和我們一樣,也期待著看到未來幾年中各類編程語言將迎來怎樣的命運,又有哪些語言能夠登上新時代的三甲寶座。
TIOBE 9 月編程語言排行榜 TOP20
***0 語言 TIOBE 指數走勢
10 個編程語言歷史排名(1987-2017)
注: 以下排名位次取決于 12 個月的平均值
編程語言“名人榜”(2003-2016)
“年度編程語言”獲獎名單如下圖所示,該獎項授予一年中評分***的編程語言:
【說明】TIOBE 編程語言社區排行榜是編程語言流行趨勢的一個指標,每月更新,這份排行榜排名基于互聯網上有經驗的程序員、課程和第三方廠商的數量。排名使用著名的搜索引擎(諸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)進行計算。請注意這個排行榜只是反映某個編程語言的熱門程度,并不能說明一門編程語言好不好,或者一門語言所編寫的代碼數量多少。
這個排行榜可以用來考查你的編程技能是否與時俱進,也可以在開發新系統時作為一個語言選擇依據。
21世紀編程語言死亡名單
看完了上面一大堆的排行榜,咱們進入正題,在前面在眾多“Java 已死”的月經帖中,今天終于有人正面回應了 Java 的死期。
據國外顧問機構約翰·庫克博士的預測,到 2039 年 Java 將壽終正寢。換句話說,Java 只剩 22 年可活。
這時可能就會有人跳出來反駁約翰·庫克,你憑什么這么說?有什么科學依據呢?
你還別說這還真不是空口說白話,確有科學依據的。
《反脆弱》書里介紹了一個林迪效應:
對于會自然消亡的事物生命每增加一天,預期壽命就會縮短一些。
對于不會自然消亡的事物,生命每增加一天,意味著更長的預期剩余壽命。
林迪效應指出,經歷的時間越長則未來生存的時間也越長。這適用于創造出來的事物,而不適用于生命體。一只小狗的壽命可能比一只老狗更長,但是一本已經在出版界發行了一個世紀的書可能在下一個世紀也會出現。
此前介紹了林迪效應的數學細節:冪律分布等等。而這篇文章所要闡述的關鍵事實是,如果某種東西具有林迪效應所描述的那種生存分布狀態的話,那么其預期的未來壽命就等于當前的年齡。
例如,開頭提到的那本 100 歲的書預計也會出現在下一個 100 年里。
請注意,這一切都是以概率分布為基礎的,這并不是說,所有的新生事物都會很快消失,所有的東西都曾經是新的。
有人在哈姆雷特上演的首演那夜推測,幾年后就沒人會去關心哈姆雷特了。但現在我們知道哈姆雷特已經存在四個世紀了,而且還在變得越來越有名。林迪效果預測,人們在 25 世紀還能看到哈姆雷特的演出。
請注意,除了生存期之外,林迪效果絲毫沒有考慮事物本身。某些人可能會基于一些其他信息而看好哈姆雷特,比如首演那天的演出效果等等,但這已經超出了林迪效應的考慮范圍。
林迪效應可以簡單地概括為“越活越年輕”。如果我們將林迪效應應用于編程語言,我們只考慮他們已經存在了多久,以及他們當前是否流行。根據 2017 年 9 月編程語言排行榜,Java、C 與 C++ 三巨頭到底還能統治排行榜多久?
例如,你可能會認為,Go 語言將會因為谷歌公司的巨大影響力而長期存在,但是林迪效應并不會考慮這些信息。
所以,在這里,我們假設林迪效應成立,下面是我們預測的編程語言的壽命。
你可以質疑這個預測對某個語言的壽命有什么意義。例如,我認為 Lisp 會生存的更久一點,但如果將來人們用 Clojure 編程而不是用常見的 Lisp 呢。再比如,其他人不同意我這個看法。
“我們不知道到了 2100 年程序員會用什么語言進行編程。然而,我們知道它將被稱為 FORTRAN。” C.A.R. Hoare 說。
那么這和 Java 的死亡有什么關系呢?
較老的編程語言,例如 FORTRAN,BASIC 和 COBOL 等雖然不是***的編程語言,但是它們在特定領域都有一定的應用。
而對于較新的編程語言,如 Go,Python,Java 和 C,則可能會被其他更新更好的語言所替代。也許生命周期還長不過較老的編程語言。
除了 Java,約翰·庫克博士還預言了其他編程語言的生命周期。***會掛掉的是近年來很熱的 Go 語言(2025年),C#(2034 年),Python(2043 年),Haskell(2044 年),C(2062 年),Lisp(2075 年),FORTRAN(2077 年)。
換句話說,在本世紀結束時,這些語言都將消失。面對這種局面,程序員們有什么想說的:
網友A:搞得好像哪個程序員能編22年一樣……
網友B:那還好,估計能撐到我退休,哈哈。
網友C:23333,全都滅亡了,將來就是我PHP的天下了。
網友D:大家先別動手,先弄死喊 PHP 的。
網友E:什么,我大 Java 要亡了???
網友F:2077 年之后用什么語言呢?
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】