编程语言这一年
最近開(kāi)源中國(guó)(OSCHINA)在慶祝 11 周年生日,編輯部借著這個(gè)機(jī)會(huì)梳理了一下這一年來(lái)我們追過(guò)的那些開(kāi)源界/開(kāi)發(fā)界的熱點(diǎn)新聞,算作一個(gè)階段性小結(jié)。(其實(shí)只有 9 個(gè)月~)
開(kāi)源中國(guó)是目前國(guó)內(nèi)為數(shù)不多深耕于圍繞“開(kāi)源/自由軟件”為開(kāi)發(fā)者分享開(kāi)源業(yè)內(nèi)事、傳播開(kāi)源價(jià)值觀的平臺(tái)。目前社區(qū)收錄的開(kāi)源項(xiàng)目數(shù)量已經(jīng)超過(guò) 50k,其中國(guó)產(chǎn)項(xiàng)目數(shù)量 10k+。
關(guān)于社區(qū)會(huì)發(fā)布哪些類型的新聞內(nèi)容,開(kāi)源中國(guó)的傳統(tǒng)是:
最核心的當(dāng)然是開(kāi)源相關(guān)的,比如開(kāi)源項(xiàng)目的更新公告、各個(gè)開(kāi)源社區(qū)的相關(guān)大事。
知名開(kāi)發(fā)工具的相關(guān)動(dòng)態(tài),包括各種 IDE、瀏覽器與各種協(xié)議/規(guī)范等。
開(kāi)發(fā)者強(qiáng)相關(guān)的大事件,比如 996。
偶爾有一些泛 IT 界的能夠引起開(kāi)發(fā)者共鳴/思考的大事件,比如刪庫(kù)跑路。
……
而這些內(nèi)容來(lái)自開(kāi)源中國(guó)官方編輯,也來(lái)自社區(qū)的用戶 OSCer,借此也感謝 OSCer 們對(duì)開(kāi)源中國(guó)社區(qū)的支持與維護(hù)。“@紅薯?你起來(lái)啊,怎么就跪下了。”
今年這幾個(gè)月下來(lái),已經(jīng)積累了龐大規(guī)模的內(nèi)容,我們按不同方向整理成了數(shù)篇文章,接下來(lái)會(huì)陸續(xù)推出,這是第一篇,自然是從編程語(yǔ)言講起。
OSCHINA 今年關(guān)注了什么之——編程語(yǔ)言
編程語(yǔ)言是開(kāi)發(fā)者最親密的工具,以針對(duì)編程語(yǔ)言的梳理作為開(kāi)篇,似乎再合適不過(guò)了。
今年我們注意到了一些編程語(yǔ)言的巨大變化,不是一般的小打小鬧,相反,持續(xù)發(fā)展下去它們極有可能完全改變當(dāng)前的開(kāi)發(fā)生態(tài)。
Rust
Rust 今年成為了微軟的“新貴”。
微軟表明其正在探索使用 Rust 編程語(yǔ)言作為 C、C++ 和其它語(yǔ)言的替代方案,以此來(lái)改善應(yīng)用程序的安全狀況。
微軟認(rèn)為 Rust 是目前業(yè)界采用的最佳選擇,原因不僅是它能夠以內(nèi)存安全的方式編寫(xiě)系統(tǒng)級(jí)程序,還在于其精密性,“if it compiles, then it works”。
此外,Rust 還有其它優(yōu)勢(shì)讓微軟青睞:
Rust 靜態(tài)地強(qiáng)制執(zhí)行程序的許多屬性,已經(jīng)遠(yuǎn)超內(nèi)存安全性,還包括空指針安全性和數(shù)據(jù)爭(zhēng)用安全性(即沒(méi)有來(lái)自兩個(gè)或多個(gè)線程的一塊內(nèi)存的不同步訪問(wèn))。
Rust 的豐富類型系統(tǒng)使編寫(xiě)富有表現(xiàn)力的程序成為可能。?具有相關(guān)數(shù)據(jù)的枚舉和強(qiáng)大的 trait 系統(tǒng)等概念進(jìn)一步強(qiáng)化了 Rust 的目標(biāo),即盡可能使程序無(wú)錯(cuò)誤。
Rust 現(xiàn)有的社區(qū)對(duì)該語(yǔ)言有很大益處。雖然 Rust 仍然是一種年輕語(yǔ)言,但它擁有一個(gè)健康的生態(tài)系統(tǒng),既能夠促進(jìn)開(kāi)源社區(qū)發(fā)展強(qiáng)大,又能夠支持生產(chǎn)用戶。
本身語(yǔ)言層面的優(yōu)勢(shì),現(xiàn)在加上微軟生態(tài)大佬的扶持,我們有理由相信接下來(lái) Rust 的發(fā)展應(yīng)該是前途無(wú)量了。
關(guān)于 Rust 的發(fā)展趨勢(shì),還可以補(bǔ)充一點(diǎn)。有開(kāi)發(fā)者詢問(wèn) Linux 內(nèi)核穩(wěn)定版維護(hù)者 Greg Kroah-Hartman 是否接受使用 Rust 開(kāi)發(fā) Linux 內(nèi)核驅(qū)動(dòng),Greg 回答在比 C 有優(yōu)勢(shì)的情況下可以作為可選項(xiàng)接受。
其它引起熱議的相關(guān)內(nèi)容:
Rust 2019 Roadmap:繼續(xù)穩(wěn)定化和償還技術(shù)債務(wù)
Rust 創(chuàng)始人談 Rust 2019 和未來(lái):社區(qū)應(yīng)限制成長(zhǎng)速度
Kotlin
Kotlin 與 Rust 一樣,今年都強(qiáng)勢(shì)上位。
在今年的 I/O 大會(huì)上,谷歌宣布“Kotlin First”,Kotlin 編程語(yǔ)言正式成為 Android 應(yīng)用程序開(kāi)發(fā)人員的首選語(yǔ)言,并且谷歌接下來(lái)的一些 Android 新特性將首先采用 Kotlin 實(shí)現(xiàn)。
僅僅幾年時(shí)間,Kotlin 因其相比 Java 更安全與簡(jiǎn)潔等優(yōu)越性,很快占領(lǐng)市場(chǎng),谷歌 Android 首席布道師 Chet Haase 表示:“在過(guò)去的兩年中,Kotlin 受歡迎程度一直在提高,超過(guò) 50% 的專業(yè) Android 開(kāi)發(fā)人員現(xiàn)在使用 Kotlin 開(kāi)發(fā)他們的應(yīng)用”。
從今年?Stack Overflow 年度開(kāi)發(fā)者調(diào)查的數(shù)據(jù)中也能看到這一點(diǎn):在開(kāi)發(fā)者最喜愛(ài)的編程語(yǔ)言中,Kotlin 得到了 72.6% 的正面反饋。
雖然目前還處在早期階段,但是相信隨著 Kotlin 的進(jìn)一步普及與谷歌公司在 Android 上的運(yùn)營(yíng),Kotlin 在 Android 開(kāi)發(fā)上采用率很快會(huì)超越 Java。
其它引起熱議的相關(guān)內(nèi)容:
Android 開(kāi)發(fā)者應(yīng)該從 Java 轉(zhuǎn)到 Kotlin 嗎?谷歌告訴你
Kotlin 和 Java:Android 開(kāi)發(fā)者更喜歡后者?
OkHttp 4 正式版發(fā)布,從 Java 切換到 Kotlin
PHP
“世界上最好的編程語(yǔ)言”,這一句雖然已經(jīng)成為了程序員調(diào)侃的經(jīng)典,但是不可否認(rèn),PHP 目前還是具有十分巨大的影響力。
雖然今年似乎沒(méi)有多少 PHP 相關(guān)的重大正面事件發(fā)生,但是有開(kāi)發(fā)者為我們?cè)敿?xì)分析了今天 PHP 是什么樣子,這引起了社區(qū)的一陣喝彩:
PHP 正在積極開(kāi)發(fā),每年都會(huì)發(fā)布新版本
PHP 5 之后性能在不斷提高
有非常活躍的框架、包和平臺(tái)組成的語(yǔ)言生態(tài)
PHP 在不斷發(fā)展,過(guò)去幾年中添加了許多新特性
各種開(kāi)發(fā)工具在過(guò)去幾年中已經(jīng)成熟,并且保持增長(zhǎng)
結(jié)論是?PHP 早已不是十年前那門(mén)糟糕的語(yǔ)言。
對(duì)許多開(kāi)發(fā)者來(lái)說(shuō),PHP 目前是 Web 開(kāi)發(fā)的絕佳選擇,使用 PHP,可以創(chuàng)建可靠、可維護(hù)和高質(zhì)量的應(yīng)用,最終結(jié)果能夠讓人滿意。
拿數(shù)據(jù)來(lái)說(shuō)話。根據(jù) 5 月份專門(mén)調(diào)查 Web 技術(shù)、提供有關(guān) Web 各種技術(shù)的使用情況信息的 W3Techs 提供的數(shù)據(jù)和報(bào)告,PHP 在 Web 開(kāi)發(fā)領(lǐng)域是無(wú)出其右的。
針對(duì)全球網(wǎng)站服務(wù)器端所使用的編程語(yǔ)言進(jìn)行統(tǒng)計(jì),結(jié)果是有?79% 的網(wǎng)站都用到 PHP 開(kāi)發(fā),位居第一。而第二第三名的 ASP.NET 和 Java 占比分別為 11.3% 和 4.0%,似乎完全沒(méi)有競(jìng)爭(zhēng)力。
結(jié)合一年以來(lái)的歷史趨勢(shì)進(jìn)行觀察,PHP 在服務(wù)器端的使用占比也基本穩(wěn)定在 79%。
調(diào)侃歸調(diào)侃,PHP 的能力和影響力就擺在那里,至少它現(xiàn)在還沒(méi)衰落,并且大有好轉(zhuǎn)的跡象。
所以,世界上最好的編程語(yǔ)言是誰(shuí)?
其它引起熱議的相關(guān)內(nèi)容:
PHP 兼 Zend 聯(lián)合創(chuàng)始人 Zeev Suraski 宣布從 Zend 離職
Zend 創(chuàng)始人提議創(chuàng)建 PHP 方言,暫命名為 P++
中歐 PHP 開(kāi)發(fā)者大會(huì)因多元化爭(zhēng)議而取消
PHP 8 確認(rèn)支持 JIT
PHPStudy V8.0 內(nèi)測(cè)版發(fā)布
PHP 虛擬機(jī) HHVM 4.0.0 正式發(fā)布,不再支持 PHP
polarphp 0.0.1 alpha 發(fā)布:全新 PHP 運(yùn)行時(shí)環(huán)境
PHP 5.6 已結(jié)束安全支持,你升級(jí)到 PHP 7 系列了嗎?
Laravel 6 LTS 正式發(fā)布:遵循語(yǔ)義化版本標(biāo)準(zhǔn)、前端腳手架獨(dú)立為 Laravel UI
Python
看一看今年各種編程語(yǔ)言排行榜吧,你會(huì)發(fā)現(xiàn),Python 不僅是蟒蛇,還是條巨蟒,當(dāng)前它正在瘋狂吞噬其它語(yǔ)言的市場(chǎng)。
是的,Python 在各大編程語(yǔ)言榜單上都有明顯且優(yōu)異的成績(jī),在一些榜單中它現(xiàn)在已經(jīng)將千年老大 Java 遙遙甩在了第二位。
以至于有人在分析:Perl 成為了過(guò)分炒作 Python 的犧牲品,以至于有人在思考:Python 是不是把 R 勒死了?
Perl 它是一種高級(jí)、通用、直譯式、動(dòng)態(tài)的編程語(yǔ)言,它汲取了 C、sed、awk 與 Shell 腳本以及眾多其它編程語(yǔ)言的特性,其中最重要的特性是內(nèi)置正則表達(dá)式,以及強(qiáng)大的第三方代碼庫(kù) CPAN(the Comprehensive Perl Archive Network,全面的 Perl 存檔網(wǎng)絡(luò))。
Perl 可以運(yùn)行在超過(guò) 100 種計(jì)算機(jī)平臺(tái)上,適用性非常廣泛,從大型機(jī)到便攜設(shè)備、從快速原型創(chuàng)建到大規(guī)模可擴(kuò)展開(kāi)發(fā)都可以一把梭,除 CGI 以外,它還被用于圖形編程、系統(tǒng)管理、網(wǎng)絡(luò)編程、金融、生物以及其它領(lǐng)域。
要知道,被稱為腳本語(yǔ)言中“瑞士軍刀”的它,2005 年在 TIOBE 編程語(yǔ)言排行榜上曾坐過(guò)第三名的位置,當(dāng)時(shí)指數(shù)超過(guò) 10%,而現(xiàn)在因?yàn)橥愋驼Z(yǔ)言 Python 的崛起(當(dāng)然也有自身社區(qū)的原因),把它逼到了死角。在最近一次 TIOBE 榜單中,Perl 排到了 19 位,同時(shí),開(kāi)始單獨(dú)統(tǒng)計(jì)的 Perl 6 僅排到了 93 位(Perl 6 與此前版本基本上可以算兩種語(yǔ)言,這也是前邊所說(shuō)它自身的原因之一)。
R 的境遇與 Perl 差不多,都是在大家共同的戰(zhàn)場(chǎng)上,被 Python 強(qiáng)勢(shì)趕盡殺絕,現(xiàn)在成為被預(yù)言將會(huì)衰落的語(yǔ)言。
Python 的火熱,其實(shí)也不是從今年開(kāi)始的,但是今年有愈演愈烈的勢(shì)頭,同時(shí),如果 AI、安全、大數(shù)據(jù)與云計(jì)算等領(lǐng)域不退火的話,Python 熱估計(jì)還可以再演下去。但是話又說(shuō)回來(lái),這些目前非常具有實(shí)際意義的領(lǐng)域有什么理由退火呢?
其它引起熱議的相關(guān)內(nèi)容:
Python 2.x 即將終止支持,是時(shí)候和 Python 2 講再見(jiàn)了
數(shù)據(jù)科學(xué)用 R 還是 Python 好?專業(yè)教授多角度分析
高性能 Python 解釋器 PyPy 支持 AArch64 架構(gòu)
Python 之父考慮重構(gòu) Python 解釋器
微軟官方上線 Python 教程
Python 3.7 已上架 Microsoft Store,讓你在 Windows 輕松使用 Python
知名 Python 庫(kù) Requests 作者?Kenneth Reitz 被指騙捐
Python HTTP 庫(kù) Requests 3.0 即將推出
2019 開(kāi)發(fā)者調(diào)查:Python 或成贏家,Java 最不賺錢(qián)?
Python 之父再度發(fā)聲:我們能為中國(guó)的“996”程序員做什么?
調(diào)查顯示開(kāi)發(fā)者最討厭 PHP,最愛(ài) Python
2018 Python 開(kāi)發(fā)者調(diào)查報(bào)告發(fā)布,數(shù)據(jù)出乎你意料嗎?
Python 之父沒(méi)有離開(kāi),成為了指導(dǎo)委員會(huì)成員
8 年后重登王座,Python 再度成為 TIOBE 年度編程語(yǔ)言
其它
除了前邊過(guò)于顯眼而單獨(dú)拎出來(lái)簡(jiǎn)單分析的語(yǔ)言,其實(shí)其它語(yǔ)言也有相關(guān)的大動(dòng)態(tài)。
微軟推出新編程語(yǔ)言 Bosque,超越結(jié)構(gòu)化程序設(shè)計(jì)
今年微軟推出了一門(mén)全新的編程語(yǔ)言 Bosque,該語(yǔ)言參考了 TypeScript 的語(yǔ)法與類型,還有 ML 和 Node/JavaScript 的語(yǔ)義。作者微軟計(jì)算機(jī)科學(xué)家 Mark Marron 致力于消除編程過(guò)程中出現(xiàn)的各種復(fù)雜情況,創(chuàng)造出了他認(rèn)為超越主流結(jié)構(gòu)化程序設(shè)計(jì)的 Bosque 這一語(yǔ)言。
安全的全新編程語(yǔ)言 V 發(fā)布首個(gè)可用版本
V 是一個(gè)集合了 Go 的簡(jiǎn)單和 Rust 的安全特性的新語(yǔ)言,其主要特性包括:
快速編譯(編譯器只有 400kb,而且無(wú)第三方依賴)
安全
C/C++ 轉(zhuǎn)換
編程語(yǔ)言之父談?wù)Z言設(shè)計(jì),龜叔大贊 TypeScript
四位編程語(yǔ)言創(chuàng)始人分別是:
Guido van Rossum,Python 作者
James Gosling,Java 作者和首席設(shè)計(jì)師
Anders Hejlsberg,Turbo Pascal 編譯器的主要作者,Delphi、C# 和 TypeScript 開(kāi)發(fā)者
Larry Wall,Perl 作者
TypeScript 官方?jīng)Q定全面采用 ESLint
不少用戶認(rèn)為 TypeScript 的 Linting 支持不足,因此負(fù)責(zé) JavaScript 編輯體驗(yàn)的團(tuán)隊(duì)開(kāi)始著手增加對(duì) TSLint 和 ESLint 的支持。
微軟宣布 SQL Server 2019 免費(fèi)支持 Java
以往 SQL Server 允許用戶選擇自己的 Java Runtime,通常是 OpenJDK 或 Oracle 的 Java SE。不過(guò),這兩種選擇都會(huì)存在問(wèn)題。對(duì)于 OpenJDK,需要技術(shù)支持的時(shí)候用戶沒(méi)法找到供應(yīng)商;而使用 Oracle 的 Java SE,則會(huì)出現(xiàn)讓 Oracle 幫助用戶在 Microsoft SQL Server 中使用 Java 的情況,這對(duì)于微軟來(lái)說(shuō)有點(diǎn)尷尬。
微軟為 Java 開(kāi)發(fā)者推出 VSCode 安裝程序
不到 1 分鐘即可在 Visual Studio Code 中使用 Java 編寫(xiě)和運(yùn)行 Hello World 程序。
談判失敗:Oracle 殺死 Java EE
Oracle 與 Eclipse 基金會(huì)之間關(guān)于 Java 商標(biāo)談判的結(jié)果:雙方的談判最后以失敗告終,Oracle 拒絕出讓 Java 商標(biāo)。
13 歲女學(xué)生被捕:因發(fā)布 JavaScript 無(wú)限循環(huán)代碼
Golang 到底姓什么?開(kāi)發(fā)者想移除谷歌 logo
關(guān)于 Golang 姓谷歌這一觀點(diǎn),一方面是由于 Go 核心團(tuán)隊(duì)的大部分成員都是谷歌的員工,如果他們不離開(kāi)谷歌,不去積極確立 Go 語(yǔ)言未來(lái)的發(fā)展方向,那很難說(shuō) Go 不是谷歌的;另一方面,谷歌公司真的為 Go 付出了一些東西,比如提供了大量的基礎(chǔ)設(shè)施和資源,如域名 golang.org。
Go 語(yǔ)言團(tuán)隊(duì)否決關(guān)于"try"語(yǔ)句的提案
排行榜
常規(guī)的幾大知名編程語(yǔ)言排行榜或多或少已經(jīng)反映了上邊提到的編程語(yǔ)言的趨勢(shì),比如,自從谷歌宣布 Kotlin 成為開(kāi)發(fā) Android 的一級(jí)語(yǔ)言,Kotlin 在當(dāng)月各個(gè)榜單中指數(shù)就迅速上漲;Java 在 Python 的猛烈攻勢(shì)下,逐漸退居老二。
排行榜列在這里,有興趣也可以分別回顧一下:
RedMonk 語(yǔ)言排行:Kotlin 上升 8 位,TS 快進(jìn)前 10
RedMonk 2019 年 6 月編程語(yǔ)言排行:TypeScript 首次進(jìn)入前十
?
PYPL 二月榜單發(fā)布:最受歡迎的編程語(yǔ)言、IDE 和數(shù)據(jù)庫(kù)都是哪些
PYPL 4 月排行:Python 最流行,Java 還行不行?
PYPL 6 月編程語(yǔ)言排行,Kotlin 與 PHP 亮了?
PYPL 7 月榜單公布:Java 份額出現(xiàn)下降趨勢(shì)
PYPL 9 月編程語(yǔ)言排行榜發(fā)布,Python 一枝獨(dú)秀
?
TIOBE 2 月排行榜:時(shí)隔 3 年,Groovy 重進(jìn) TOP 20
3 月編程語(yǔ)言排行公布: Powershell 難得進(jìn)入前 50 名
4 月編程語(yǔ)言排行榜:C++ 重回前三,PHP 呈下降勢(shì)頭
5 月語(yǔ)言排行榜:R 跌出前二十,Python 緊咬 C++
TIOBE 6 月排行:Python 排名飆升,有望擠下 C 和 Java?
TIOBE 7 月排行:Perl 成為過(guò)分炒作 Python 的受害者?
TIOBE 8 月排行:你說(shuō) Objective-C 將走向衰敗,我不同意
小結(jié)
編程語(yǔ)言還會(huì)持續(xù)地發(fā)展下去,編程語(yǔ)言之爭(zhēng)也不會(huì)停歇。
當(dāng)下哪個(gè)語(yǔ)言最厲害?不同開(kāi)發(fā)者會(huì)有不同的看法,而且多半陷入偏激的論戰(zhàn)。事實(shí)是目前還沒(méi)有哪個(gè)語(yǔ)言是可以通吃所有領(lǐng)域的,每個(gè)出色的語(yǔ)言只有在自己最擅長(zhǎng)的領(lǐng)域里才稱為出色。所以討論哪個(gè)語(yǔ)言最好,也要遵守“基本法”,求求你們先限定一下范圍,這樣可以少去許多無(wú)意義的口水戰(zhàn)。
最后根據(jù)江湖規(guī)矩,這種場(chǎng)合一定得說(shuō)一句:PHP 是……
不不不,一定得說(shuō)一句:開(kāi)源中國(guó)生日快樂(lè)!
總結(jié)
- 上一篇: CNCF发布K8s项目历程报告,35k贡
- 下一篇: 试试这个Excel知识测验,得分超过80