關於JavaScript, NPM官方釋出了2018年的回顧以及2019年的預測
原文標題:This year in JavaScript: 2018 in review and npm’s predictions for 2019
本文翻譯自NPM官方釋出的一份報告。原文連結點選這裡
這份報告是根據Laurie Voss (NPM的聯合創始人、COO)在npm and the Future of JavaScript上的演講整理的。沒有任何資料資料是完美的。如果你有任何的疑問,你可以閱讀這篇文章,看下我們是怎麼聚合這些資料的。
NPM擁有超過1000萬用戶,每個月下載超過300億個包。每週二是NPM訪問量最大的一天。使用者平均在這一天下載超過13億JavaScript開原始碼包。通過分析這些下載資料,我們可以看到JavaScript開發人員們都在從事哪方面的工作。除此之外,我們還和
通過上面兩種方式,我們發現了npm社群的內在組成以及社群的趨勢。這將為你在2019年進行技術選型提供幫助。
JavaScript是世界上最流行的程式開發語言
JavaScript如此流行對任何人來說都不是一個新聞了。Stack Overflow 2018年的開發者調查顯示,JavaScript是最流行的開發語言,其次是HTML和CSS。GitHub最近的Octoverse報告給出了所有開發語言pull requests數量的排名,JavaScript也是位列第一。
NPM促進了JavaScript的流行
JavaScript是唯一可以開發web應用的語言,毫無疑問,JavaScript的流行與這一點是分不開的。不過,根據伯克利大學的這篇文章來看,擁有豐富的開源庫,是開發者在選擇一門開發語言時,最重要的因素。
npm被用來構建各種應用
我們詢問了開發者,他們寫的JavaScript執行在哪裡。93%的人回答他們用來開發web, 70%的人表示他們在服務端使用JavaScript,例如Node.js。當然,還有其他的領域:物聯網、桌面應用、端應用等等。
這對於在npm官方工作、維護npm命令列工具的我們,是一個顯著的變化。npm起初是為了服務端應用而誕生的,而web開發者的需求是不一樣的。成為一個主要為web端服務的平臺,改變了我們的優先順序,於是,我們開發了例如package-lock.json的新功能。
npm對web開發來說是必須的
當npm在2014年誕生的時候,使用幾十個JavaScript包是很典型的。如今,一般的web應用都會使用超過1000個模組,超過2000個模組的也不少。事實上,現代web應用中,97%的程式碼都來自npm。開發者只需要對剩下的3%程式碼負責,就能使他們的應用跑起來了。
這對程式碼複用,npm社群以及開源界來說是巨大的成功。不需要在數千個模組中建立程式碼,為數百萬開發人員節省了數以億計的編碼時間。
2018年,npm將專注安全
對於大多數開發者來說,npm已經成為了開發一個網站的方式。這對於我們來說是責任。在我們的調查中,77%的開發人員擔心他們使用的庫的質量與安全性,52%的人認為他們所使用的庫是不值得信任的。
4月份,我們釋出了Node Security Platform。如今,Node Security Platform已經整合到了npm中。每一次npm的安裝都會有安全稽核,告訴開發者他們是否正在安裝一個不安全的模組。我們還提供了通過自動安裝模組的安全版本來輕鬆糾正這些漏洞的工具。總之,我們坐了很多事,來保障安全 。
npm使用者特徵
我們調查物件的基本特徵在之前釋出的報告中涵蓋了。但有一些事實需要注意。
1.很多新人。25%的開發人員使用JavaScript不到兩年,51%的人使用npm不到兩年。這是社群不斷壯大的副作用。
2.大部分是自學的。69%的npm使用者是自學的JavaScript,22%的人是在工作中學習的。
3. 不僅僅使用JavaScirpt。npm的使用者並不都是嚴格的JavaScript開發者 —— 30%的人還使用Java,30%還使用PHP,30%使用Python,還有其他的一些語言。4.並不在科技公司工作。55%的npm使用者表示他們並不在一個可以被稱為【科技】公司的地方工作。
同時,在某些方面,npm使用者與軟體開發人員並沒有什麼不同,這本身是很有意思的事情。比如,npm使用者在各種規模的公司工作,與這些公司的分佈比例大致相同。JavaScript並不是一個'"大公司技術"或"小公司技術"。npm使用者分佈在各個行業,也有著不用的年齡段以及受教育程度。
每個人都希望少用工具
2018年的JavaScript,在某種程度上是令人詬病的。因為你需要引入很多的工具才能讓程式碼跑起來。這和2014年的情況是相反的。2014年的時候,Node.js被認為是一個 "包含所有" 的框架。今天,絕大多數的開發者根本不會把Node.js當做一個框架。誠然,我們所有的被調查者都希望使用更少的工具,更少的配置就能開始開發,也希望看到更完善的文件。那麼,他們喜歡的是什麼樣的工具呢?
今年初,我們深入調查了各種JavaScript框架的流行度,報告在這裡part1、part2、part3。我們不會在這裡複述所有的分析結果,但我們可以一起來看看從過去的9個月都發生了些什麼。
React的增長放緩了
React繼續統治web榜。在npm的調查中,超過60%的受訪者表示他們正在使用React。這個比例比年初時已經有不小增長。但是,React在2018年的增長速度較2017年已經放緩了。Angular的下載量保持平穩
兩種最主要的Angular版本結合起來,在時長份額方面基本保持不變。Ember的流行程度反彈了
一個非常不尋常的現象,Ember的受歡迎程度本來在下降,但卻迎來了強勁的反彈。到9月份,使用Ember的開發者人數已經比年初時的兩倍還多。我們將繼續關注這個情況。我們認為,Ember的反彈是React增長放緩的原因之一。Vue繼續強勁增長
GraphQL持續高速增長
GraphQL,根據其最受歡迎的客戶端庫Apollo來看,正在變得越來越受歡迎。我們認為它將在2019年成為新的熱門技術。編譯依然由Babel領銜,不過有一個驚喜 - TypeScript
所有的React使用者來說,Babel並不陌生,它被用來將React下一代的JavaScript轉換成現在的語法標準。React佔據了60%的市場份額,而65%的npm使用者正在使用Babel(Babel也在React的生態之外被使用).令人略有意外的是,46%的受訪者表示他們正在使用微軟的帶有型別檢查的JavaScript - TypeScript. TypeScript的大量使用,也許預示著開發者書寫JavaScript的方式將徹底改變。我們將在下一次的調查中,更多關注TypeScirpt的使用情況。
npm對於2019年的預測
JavaScript擁有一個巨大,多變,快速發展的生態,對其進行預測是困難的。但是我們的資料可以使我們對2019年進行一定的預測。
- 你將會放棄你現在使用的工具。JavaScript的框架和工具更新很快。框架的平均流行週期是3-5年。隨著人們都在維護遺留的應用程式,框架的流行程度漸漸衰退。當人們開始新的工作時,他們將使用新的框架。做好準備學習使用新的框架吧,不要死抓住你現在的工具不放。
- 儘管增速放緩,React在2019年仍將是最有統治地位的框架。60%的web框架時長份額是前所未有的,部分原因是:React並不是一個完整的框架,而只是其中的一部分。這使得React可以在更多場景靈活使用。2019年,更多的人會使用React來開發web應用,這將為React在教程、建議以及Bug修復上帶來優勢。
- 你需要學習GraphQL。在生產環境中使用GraphQL或許過早了,特別是在你的Api都已經完成的情況下。但是2019年,你應該有意識的接觸GraphQL的概念了。當你在2019年末、2020年參與新專案時,這將是你使用GraphQL的好機會。
- 你們組的同事將會引入TypeScript。46%的使用率表示TypeScript不僅僅是一個發燒友的工具。人們是真正體會到了型別檢查提供的安全性所帶來的好處。特別的,當你身處一個大組時,考慮在2019年使用TypeScript吧。
保持淡定
我們可以十分確信的做出預測:社群將會繼續高速發展,JavaScript將會擁有很多的能力。隨著它的增長,我們將記錄新的趨勢,並與社群分享我們的見解。你可以訂閱我們的週報,在twitter上關注我們,以瞭解最新的行業動態。