眾所周知,npm在JavaScript社區(qū)的功用之一就是幫助大家發(fā)掘在npm注冊的、滿足需求的庫和框架。Npm強(qiáng)大的搜索功能可以幫助用戶通過相關(guān)的軟件包、內(nèi)置文檔以及使用情況的統(tǒng)計信息來進(jìn)行選擇。同時在選擇過程中還有一個重要標(biāo)準(zhǔn),那就是是否有足夠能力的社區(qū)來維持和積極維護(hù)這個項目。
軟件包的普及程度是庫和框架選擇的重要考慮因素,因為包含大型社區(qū)的軟件包同時也意味著會有更多的人來幫助你解決遇到的問題,同時修復(fù)錯誤的可能性也更大。而且,如果你是管理者,那么使用流行的軟件包也更容易找到熟悉軟件的開發(fā)者。
軟件包一旦融入到軟件中,那么生命周期就會特別長,因為一旦安裝,何紹有人會把軟件包從軟件中剝離出來。這種低流失率,隨著npm用戶總數(shù)的增加,npm注冊中心的所有軟件包都在不斷增加,只是成長的速度有所不同。
所以,我們沒有采用普遍的絕對下載增長來進(jìn)行判斷,而是采用了相對下載增長。在查看一個包的下載數(shù)時,這個數(shù)字代表的是這個包下載數(shù)占npm注冊中心所有包下載數(shù)的比例。
完整的注冊表
npm注冊表中所有軟件包下載的總和表明,npm生態(tài)系統(tǒng)正在經(jīng)歷爆炸式的持續(xù)增長。(圖中的缺口是圣誕節(jié)和新年的休息期間,這對于大部分的JavaScript開發(fā)者來說都是休假期。)同時,我們也看到JavaScript越來越受歡迎,npm也獲得了更多JavaScript社區(qū)的認(rèn)可。
目前,npm大約有1000萬用戶,預(yù)計有75%的JavaScript開發(fā)者都在使用npm。
前端框架
對于前端框架,我們看到有一些潛力股,同時也有一些限制已經(jīng)很受歡迎了,在這里我們重點列出5個框架:
1. Backbone
2. React (and Preact, a closely related spin-off)
3. Angular
4. Ember
5. Vue
Backbone
Backbone是JavaScript Web應(yīng)用程序最早的框架之一,5年前,它就在注冊表中占據(jù)了主導(dǎo)地位,當(dāng)時它的下載量逼近所有注冊表下載的1%。但也是從這時開始走了下坡路,不過由于現(xiàn)有項目的生命周期,想要Backbone完全退出市場還有很長時間,現(xiàn)在它每月還可以獲得75萬次的下載。
React
顯而易見,React正在大踏步的走在快速增長的高速路上。自Facebook 2013年3月推出以來,React的增速非??臁Ec其他框架不同的是,React并不是構(gòu)建Web應(yīng)用程序的完整端到端解決方案,而是針對許多應(yīng)用程序的特定需求的精心設(shè)計的解決方案,可以輕松地為應(yīng)用程序的其他部分提供多種替代解決方案。由于這種模塊化的特性,React已經(jīng)產(chǎn)生了一整套相關(guān)軟件包的生態(tài)系統(tǒng),可以解決應(yīng)用程序其他部分的問題。
React整體生態(tài)系統(tǒng)的增長不容忽視,不僅Web開發(fā)人員在積極采用React,其它領(lǐng)域的開發(fā)者,例如移動和桌面應(yīng)用程序開發(fā)者也在使用它。
Preact
Preact是React的小兄弟,是一個獨立開發(fā)的React替代品,為了性能和size的改進(jìn),它犧牲了與舊版瀏覽器的兼容性。Preact獲得了很多開發(fā)者的關(guān)注,但是總體使用率還是比較低的。不過,直線上升的增長率,讓我們完全有理由相信在未來幾年內(nèi)它會成為一支主力軍。
Angular
Angular是一個完整的框架,是被用于構(gòu)建Web應(yīng)用程序的完整解決方案。Angular是由谷歌構(gòu)建和維護(hù)的,從整個注冊表來看,Angular比較受歡迎的,但是單看它自己的增長率基本沒有什么變化。
對于一個新項目來說,選擇這樣曲線的軟件包并不是一件好事,不過,它背靠著Google強(qiáng)大的資源,這對開發(fā)者來說可能是一個很大的誘惑。
Ember
Ember沒有主要的企業(yè)支持者,它是由各大公司共同開發(fā)的完整框架,Ember被封裝和分發(fā)的方式很難追蹤,因為npm不是Ember部署和分發(fā)的唯一方式。不過,從npm的數(shù)字來看,2016年之后Ember經(jīng)歷下滑之后開始回溫了,不過,這對于這個結(jié)果npm本身也表示可能準(zhǔn)確性不是那么高。
Vue
Vue是由曾經(jīng)與Angular合作的前Google工程師創(chuàng)建的,在絕對流行度方面與Ember和Angular大致相當(dāng)。但是Vue的增長速度遠(yuǎn)遠(yuǎn)超過Ember和Angular, npm預(yù)計2018年Vue將超過Ember和Angular。
2017年前端框架增長情況
該圖顯示了2016年10月至2017年10月的12個月期間框架的絕對受歡迎程度及其增長情況。這12個月的總體情況如下:
·Preact很小,但發(fā)展最快;
·Vue增速也快,但是上面還有Ember、Angular和Backbone三座大山;
·Ember在過去的12個月里越來越受歡迎;
·Angular和Backbone的人氣下降了;
·jQuery仍然非常受歡迎,但增速放緩了;
·React既龐大又快速增長。