“世上語言千千萬,我卻獨愛這一種!”這句話用來形容程序員和編程語言之間的愛恨情仇實在是再精準不過了。根據GitHub 2016年的開源報告,其上所有開源項目共包含了316種編程語言,這是一個什么概念呢?舉個例子來說,世界上共有226個國家和地區,也就是說編程語言的數量比國家數量還多。
想要全部精通這些語言顯然是個不可能事件,所以編程語言的選擇就有了先后之分。編程語言的好壞之爭娛樂性高于知識性,所以本文不以好壞論高下,而是以熱度作為參考條件,盤點2017年哪些編程語言最受歡迎。
▲藍色為Java,紅色為Go,黃色為Swift,綠色為Python,紫色為Kotlin
▲藍色為PHP,紅色為Ruby,黃色為C++,綠色為C#
上圖是今年話題度比較高的編程語言在Google Trends上的熱度情況,我們從中選取Java、Python、R 、Go以及Kotlin語言來進行分析。
Java:編程語言中的“小浣熊”
小浣熊干脆面有一句廣告詞深入人心“一直被模仿,從未被超越!”如果套用在Java身上,那就是“一直被唱衰,從未被打倒。”Java應該是被死亡次數最多的編程語言,每月TIOBE發布新的榜單,Java都要被拉出來鞭尸,其它編程語言有了哪些新改進,Java也要出來以死墊背陪跑。
Java 是企業擁戴的頭號編程語言,它有三大殺手锏:靜態類型、更強大的工具,以及具備廣度和深度的庫的生態系統。任何語言想在這三個領域完全取代Java都不是短時間內能夠完成的。
今年,關于Java熱度最高的詞語應該就是Java 9的發布,Java 9又雙叒叕延期的新聞一直傳到了近些日子,發布時間才確定下來是9月21日。據悉,Java 9將會有9大重要改進:新模塊系統、支持HTTP/2.0、改進的Javadoc、Stream改進、使用新的工廠方法更容易地初始化Collections、接口中的私有方法、語言和語法的改進、增強處理API、增強處理API。
Python:人生苦短,我用Python
IEEE發布了2017年編程語言排行榜,Python位居榜首。從去年開始,Python就借著人工智能的東風,熱度一路船高水漲。Python可以說是一門比較功利的語言,它不復雜,讀和寫都非常易于使用,因此就有了“人生苦短,我用Python”這句調侃。
當然,Python的流行并不僅限于易于使用,它背后還站著一個真正的大佬——Google。自2006年起,谷歌就在多個平臺和應用中大量使用Python。除此之外,Python社區的活躍度合支持度也非常高,同時,Python在數據科學中的流行度僅次于R語言。
關于版本問題,Python的功能發布周期為18個月。目前Python基金會正在積極推行Python 3+,據悉2020年將不再支持Python 2.7。另外,Python 4也正在籌備中,據其核心開發人員Nick Coghlan透露,4.0中沒有任何深刻的變化或大的向后兼容性的破壞。
R:你們對R語言的力量一無所知
雖然,R語言在TIOBE排行榜中一直都在十幾的位置徘徊,但是在IEEE 發布 2017 年編程語言排行榜中卻位居第六。這說明R語言在編程語言中扮演的角色是“隱形富豪”,很多人對于R語言的力量一無所知。
在上文中,我們也提到了R語言在數據科學中非常流行,那么R語言可以支持哪些量級的數據集呢?talkR會議上R語言熟手表示百萬條記錄的數據集可以輕松地用標準R進行處理;百萬到十億條記錄的數據集稍微努力一下也可以使用R來處理;十億條以上的數據集就需要MapReduce算法,而這些算法可以在R中設計,并用Hadoop等連接器進行處理。
當然R語言的力量也不僅止于此,大數據的爆紅催生了物聯網的發展,很多項目都依賴多個數據源,而R語言恰好支持多數據源加載數據;R語言的學習曲線平緩,只需了解基本編碼原則就可以通過內置庫來處理大數據;R語言與其他主流的編程語言兼容;就連托管公司也為R語言提供了解決方案。
GO:火得一路拉風帶閃電
TIOBE將2016年年度編程語言的桂冠頒給了Go語言,這一年中Go 語言獲得了 2.16% 的用戶增長,大比分領先其它編程語言,進入2017年,Go語言熱度依然不減,整體發展趨勢還是向上的。
今年已經是Go語言1.0版本的第五個年頭了,在2月份發布了1.8版本之后,Go語言團隊就開始慢慢向2.0版本邁進了。據悉,Go 2.0版本首先要保證兼容現有的Go 1.0源代碼,其次是要找到方法來解決Go語言的擴展問題。
據Go語言項目和團隊的技術主管 Russ Cox在Gophercon上透露,目前全球至少有50萬Go開發者,Go源文件和Go代碼至少有十億行。今日頭條是國內比較有名的在使用Go的廠商,其后端服務超過80%的流量是跑在 Go 構建的服務上,微服務數量超過100個,高峰 QPS 超過700萬,日處理請求量超過3000億。
Kotlin:一場“任命”引發的爆紅
如果要評今年熱度躥升最快的編程語言,Kotlin一定榜上有名。2017年5月,谷歌在IO大會上宣布Kotlin語言將取代JAVA作為安卓開發的一級編程語言,然后在TIOBE的六月份榜單中Kotlin就沖進了前50,位列43位,真可謂是一場“任命”引發的爆紅。
近日,Kotlin 1.1.4 發布,其更新內容如下:修復 IDEA 插件中的主要性能回歸;添加對包缺省的可控性注解的支持;改進對 Java 9 的支持;添加一個用于 JavaScript 死代碼消除的工具,提高對 JS 調試和 JS 單元測試支持的源映射支持;生成更高效的字節碼;為 IntelliJ IDEA 插件添加新功能;Android Extensions 插件增強功能。
針對于Java與Kotlin之爭,綠鳥集成技術公司CEO Thorsten Heller表示未來Java也許會死,也許不會死,但是毫無疑問Java會受到挑戰。而這個挑戰者我認為正是Kotlin,它的簡單性、精益語法、函數式方法都是其流行度的加碼元素。