最受歡迎的七種商用開(kāi)源編程語(yǔ)言的全面報(bào)告
Semaphore 是一個(gè)國(guó)外持續(xù)集成/持續(xù)部署方案服務(wù)商。Semaphore 稱自己在過(guò)去三年對(duì)其開(kāi)發(fā)者用戶進(jìn)行調(diào)查,調(diào)查他們?cè)陂_(kāi)發(fā)商業(yè)項(xiàng)目時(shí)一般都使用哪些語(yǔ)言。這些數(shù)據(jù)基于成千上萬(wàn)個(gè)在 Semaphore 上進(jìn)行測(cè)試和部署的項(xiàng)目的人。所以現(xiàn)在這是迄今為止關(guān)于商業(yè)項(xiàng)目中最受歡迎的開(kāi)源編程語(yǔ)言的全面報(bào)告。
本文并非編程語(yǔ)言排行榜,忽略順序
別問(wèn)我們?yōu)槭裁礇](méi)有 XXX 編程語(yǔ)言,這不是我們發(fā)起調(diào)查的;
Elixir
Elixir 是一個(gè)相當(dāng)年輕的語(yǔ)言,自然幾乎所有的項(xiàng)目都是基于最新版本的。40% 的項(xiàng)目使用的是今年發(fā)布的Elixir 1.4 及以上版本,該版本于 2016 年 1 月 1日發(fā)布。
Go
Go的發(fā)布政策規(guī)定,支持Go的每個(gè)主要的版本。因此,使用Go的商業(yè)項(xiàng)目中有60%正在使用官方支持的版本。
Java
大多數(shù)項(xiàng)目都基于Java 8。Java 9 于17 年9 月發(fā)布,但現(xiàn)在的項(xiàng)目似乎沒(méi)有采用。甲骨文公司宣布,將長(zhǎng)期支持 Java 8版本,甚至到 2022 年,而Java 9將不會(huì)被指定為長(zhǎng)期支持的版本。Java 18.9 LTS 計(jì)劃于2018年9月發(fā)布。
Node.js
在過(guò)去的幾年中,Node.js 運(yùn)行時(shí)發(fā)生過(guò)很多變化,最終整合了新的發(fā)布時(shí)間表。實(shí)際情況是,幾乎三分之一的項(xiàng)目都是使用過(guò)時(shí)的 Node 版本,而不到10%的項(xiàng)目使用 2017 年發(fā)布的版本(v8或v9)。
Node 9 在今年秋天發(fā)布,但我們還沒(méi)有很多項(xiàng)目采用。值得注意的是,截至3月份,AWS Lambda 支持Node.js 6.10 版本。
PHP
PHP 已經(jīng)成為多年來(lái)使用最多的十大語(yǔ)言之一,并且在建站時(shí),它都用在服務(wù)器端。
大部分項(xiàng)目正在使用 5.6 版本,在2017年1月19日就結(jié)束了支持。此版本將持續(xù)更新,直到2018年底。不再支持 5,3,5.4 和 5.5 版本。這可能是由于從 5.x 更新到7.x的過(guò)程很復(fù)雜。例如,許多致命錯(cuò)誤已被轉(zhuǎn)換為異常,變量和整數(shù)處理。
所有使用PHP的項(xiàng)目中有19%使用PHP 7.0版本。該版本于2015年12月發(fā)布,支持期限為1個(gè)月。7.1版于去年十二月發(fā)布。到目前為止,只有9%的項(xiàng)目正在使用它。
Python
Python去年就在 Hacker News 和各種技術(shù)論壇上受到了很多關(guān)注,盡管 Python 3 是在2008年發(fā)布,但是仍有超過(guò)70%的商業(yè)項(xiàng)目使用 2.7版本。
截至今年4月,AWS Lambda 支持 Python 3.6 和 2.7。
Ruby
開(kāi)源正在快速發(fā)展,Ruby 社區(qū)緊跟時(shí)代潮流。超過(guò)85%的項(xiàng)目使用 Ruby 2.0 及更高版本。
需要注意的一個(gè)事情是,2.0 和 2.1 版本已經(jīng)結(jié)束了,而 Ruby 2.2 EOL 將于 2018年3月31日發(fā)布。建議升級(jí)到更新的版本,因?yàn)榕f版本沒(méi)有獲得安全更新。
另外需要注意的是 Rails 5 只支持 Ruby 2.2.2 及更高版本。