搞前端開發的比後端多兩倍,這意味著哪一個更有前途?
npm的作用是幫助程序員查找滿足需求的JavaScript庫和框架,近日,npm連發三份調查報告,總結了JavaScript生態圈近一年來大大小小的變故,本文主要針對後端框架展開。
後端的故事很簡單:Express是編寫後端服務的主流解決方案,其餘幾個大框架相對於Express來說都太小了。
另一個清晰的模式是,Express在逐漸趨於穩定。過去,所有npm下載量的1.5%基本都是Express,現在,這個數字是0.15%的十分之一。然而,與不斷下滑的Backbone和Flux相比,Express算是趨於穩定了。
本文討論的幾乎所有框架相較於幾年前都是增長的,比如Express從2013年初以來已經增長了6000%。之所以這些增長看起來好像是下降了一樣,是因為在同一時間內,註冊npm機構的庫和工具等增長了67,000%,基數變大了。
換句話說,JavaScript正在以史上前所未有的速度增長著。
寫前端的程序員是寫後端的二倍,未來哪一部分會更火?
目前,大約83%的npm開發人員在編寫前端JavaScript,而只有41%的程序員在為後端編寫代碼(這些數字之間有重疊)。前後端開發人員比例為2比1,這說明什麼?調查認為,這強烈表明未來前端開發和工具應用將更有前途。
在深入研究這個結論之前,讓我們先來看看其他常用的後端框架。
其他後端框架
除了Express之外的四大後端框架是:
·Koa
·Hapi
·Sails
·Next
這裡,Koa是Express的繼承者,是用一套更緊密的設計原則對Express的重寫。獲得可觀使用量的同時,增長速度不是很快。
Hapi
Hapi在2014年底經歷了短暫的鼎盛時期。巧合的是,這就發生在npm社區轉換自己的網站使用Hapi之後,所以有可能npm的代言是有效的。然而,自此以後,Hapi一直處於下滑狀態,npm自己的網站也正在轉移。
Sails
顧名思義,Sails就是JavaScript的Ruby on Rails的克隆。雖然最初在2012年底推出的時候非常流行,但是它遵循著常見的"半衰期"衰退模式,這表明它不再被新項目所採用。
Next.js
Next.js是一個相對較新的框架,並且比其他三個討論的要少得多,它的使用模式有點混亂,所以這裡跟蹤了它的採用情況,Next.js顯示出一些穩定增長,值得一試,尤其是因為它使用了React。
npm的前端工具使用歷史
在2013年及以前,npm中前端庫的使用量非常龐大,從Backbone的流行就可以看出來。但是,在Express和其他伺服器端架構持續增長的同時,Backbone開始走下坡路。
自2015年以來,npm註冊管理機構的前端使用率再次增長。但是前端和後端在JavaScript之間的界限是模糊的,部分原因是Webpack和Babel這樣工具的使用。
為了試圖弄清楚npm的前端使用情況,我們將看看用來提供前端代碼的庫,包括:
·Babel
·Webpack
·Browserify
·Bower
·RequireJS
·SystemJS
Babel
Babel是一個轉譯器,用於將更現代的JavaScript版本轉換為與Node.js中的伺服器端JavaScript以及與瀏覽器兼容的JavaScript舊版本。雖然Babel非常受歡迎,但它被用於前端和後端應用程序,不是前端使用的可靠代理。
Webpack
另一方面,Webpack是專門為瀏覽器提供JavaScript代碼的工具。它的使用率一直與React不相上下。
不過,在2016年中,Webpack的使用率開始超過React。這表明,Web開發人員已經開始更廣泛地採用Webpack,而不僅僅是React應用程序。
Browserify
在Webpack流行之前,Browserify開創了在瀏覽器中使用伺服器端JavaScript的過程。 這在2015年中非常受歡迎,但2016年開始急劇下滑。
對此可能的解釋可以在兩個工具的設計目標中找到。Browserify將Node.js API(包括用於許多後端API的填充)包含到瀏覽器中。Webpack是一個更通用的模塊系統和編譯工具,可以載入圖片,CSS和其他前端資源。因此,對於不是"Node.js Devs"的開發者來說,Webpack更為有用。
Bower
瀏覽器端模塊化JavaScript的另一個解決方案是Bower。Bower不僅是將模塊放入瀏覽器的另一種方式,它也是一個完全獨立的非npm模塊,儘管Bower客戶端本身是由npm註冊中心託管和安裝的。
雖然Bower的開發人員認為客戶端本身具有許多優秀的特性,但他們同意CommonJS是大多數npm包所使用的JavaScript模塊格式,是一種更靈活和流行的解決方案。但最終,還是開始逐漸下滑。
(有趣的是,編寫Bower早期版本的AndréCruz創建了npms.io,這個開源的JavaScript模塊搜索引擎被npm所採用,現在npm的官方搜索功能已經啟用,André自己也是npm用戶。)
RequireJS和SystemJS
RequireJS是另一種具有自己模塊格式的替代裝載機,在2013年初頗受歡迎,但與Bower同時開始下滑。
2015年發布的SystemJS增長緩慢,直到2016年中期,從未真正獲得過推動力。
曾經是主要力量的Bower敗給了Browserify,後者丟失了Webpack的份額,Webpack偷走了SystemJS的份額。JavaScript生態系統在過去5年的變化清楚表明,很難預測5年後JavaScript將會成為什麼樣。React現在看起來占統治地位,但是隨時都有可能被新人取代。
Webpack和Express
目前,npm前端使用的最可靠代理可能是Webpack。與Express相比,Webpack從三年前的快速增長,現在已經達到了Express受歡迎程度的一半。
儘管在瞬息萬變的JavaScript世界中做出預測是一件危險的事情,但npm社區認為Webpack將繼續增長,甚至超過Express,這與目前所看到的新用戶比例一致。
幾年後,npm可能被認為是一個主要的前端工具,這對於JavaScript來說是個好消息。npm生態系統的所有增長,無論是前端還是後端,對於整體JavaScript都是一個好消息。
如果簡單概括,調查結果就四個字:平穩增長。眾多框架和工具的強勁增長組成了一門語言的繁榮,JavaScript正在登月。


TAG:IT168企業級 |