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