自從Node.js撼動整個Web開發(fā)領域以來,JavaScript Web全棧開發(fā)框架層出不窮,但是隨著時間流逝,人們也逐漸意識到Node.js并不適合所有場景,一體化的開發(fā)框架也不一定適合JavaScript, 眾多JS Web框架紛紛沉寂,但唯有Meteor以其韌性堅持下來并脫穎而出,成為JavaScript Web開發(fā)框架的代表。 2011年組建的Meteor畢 業(yè)于YCombinator訓練營,成員來自Google等巨頭企業(yè)。迄今為止,Meteor開發(fā)團隊已經(jīng)拿到了多輪投資,包括早期Andressen Horowitz領投的1000萬美元,以及在推出Galaxy前夕的融資2000萬美元。Meteor于2014年十月發(fā)布1.0版本,2015年的八 月份,Meteor超過Rails,Github Star數(shù)接近3萬,成為GitHub最受歡迎的網(wǎng)絡應用開發(fā)框架。 作為一個開源框架,Meteor有著產(chǎn)品級的實時性和跨平臺特性,提供多種功能且易用性極佳。InfoQ一直關注Meteor的發(fā)展情況,并進行了跟蹤報 道。近日Meteor發(fā)布了Galaxy應用托管服務,標志著Meteor正式進入商業(yè)運營的階段。本文將回顧Meteor的發(fā)展,并分析Meteor的 優(yōu)缺點,以及Meteor的未來。InfoQ記者還就相關問題請教了Vue.js作者、Meteor的開發(fā)者之一尤雨溪。 Meteor的發(fā)展Meteor早期版本以實時框架為賣點,外界對它的關注大約從0.4版本開始,這個版本將其Node.js依賴從0.6更新到0.8版本,而Node.js也正是從0.8版本開始漸漸普及。下面列出Meteor的主要版本更新:
從上面的更新我們可以看到Meteor不止是在打造一個框架,也是在構(gòu)建一個從研發(fā)到部署、從Web到移動的、JavaScript全棧開發(fā)的生態(tài)鏈,這是開發(fā)者選擇Meteor的原因之一。 Why Meteor從 發(fā)展趨勢來看,Meteor的出現(xiàn)并不是偶然。在Web開發(fā)中,一體化的框架非常多,如Rails就是其中的杰出代表,以其快速開發(fā)的能力受到人們青睞。 Node.js橫空出世以來,最主流的Web框架是Express,但是它只能算微框架,要想開發(fā)出一個功能完整的應用還需要大量的配置和很多的功能插 件。市面上并沒有主流的Node.js一體化框架,Meteor瞄準了這個缺口,也獲得了市場的承認和開發(fā)者的喜愛。 從開發(fā)者的眾多反饋來看,選擇Meteor的原因不外乎下面幾點:社區(qū)活躍、學習難度低、大量原生功能和優(yōu)秀的生態(tài)系統(tǒng),以及其主要的賣點:實時性框架。
另外,Meteor從最開始的一個重要賣點就是實時框架,而現(xiàn)在實時性在Web應用甚至移動應用中用到的地方越來越多,證明Meteor選擇這個方向也是對的。 Why Not Meteor當然,Meteor并不是沒有缺點,比如近期推出的Galaxy就遭到了詬病,Meteor本身是為了降低開發(fā)門檻,快速開發(fā),適用于中小團隊和創(chuàng)業(yè)者,但是Galaxy最低每月500美元的價格與這個定位并不匹配,在發(fā)布之后受到開發(fā)者的非議。 除了這個之外,Meteor缺乏大型成功案例,沒有經(jīng)過實踐的洗禮,也讓開發(fā)者懷疑它是否足夠成熟可用。在這篇Meteor在生產(chǎn)環(huán)境的實踐的文章里,作者提到了他使用Meteor的痛點,那就是部署在非官方平臺的體驗并不好,另外,某些關鍵功能插件并不好用,亟待加強和優(yōu)化。 而 讓人不選擇Meteor的根本原因,還與趨勢相關。Node.js包管理器NPM十分好用,并且迅速流行開來,對于Node.js開發(fā)者來說,依賴NPM 來進行模塊化的開發(fā)非常方便,而Express框架是很多Node.js開發(fā)者入門必學,因此它所倡導的模塊化+高度可配置的理念也就默認被人們所接受。 在這篇文章里 作者就希望人們使用更多庫而不是框架來開發(fā)Node.js Web應用。當然,不管趨勢如何變化,我們可以肯定的是,至少很長一段時間內(nèi),類似于Meteor這樣的一體化框架還會有它的市場。尤雨溪表示:“是否使 用框架是按實際情況考慮的。全棧式框架的價值在于對于沒有特殊要求的應用,能夠在極短的時間內(nèi)開發(fā)出可用的產(chǎn)品。去框架化對于技術人員來說是很浪漫的事 情,但當你拿了融資,需要在幾個月內(nèi)產(chǎn)品上線的情況下,未必有那么充裕的時間去自己整合各種組件,實現(xiàn)一些框架已經(jīng)實現(xiàn)了的功能。” Meteor的未來從目前的表現(xiàn)來看,Meteor正在穩(wěn)步發(fā)展,但是,它所處的環(huán)境,無論是Node.js,還是JavaScript社區(qū),都正在劇烈變化當中,誰也不能預測未來Meteor到底能否成功。 在 筆者看來,Meteor的未來是否成功,在很大程度上將取決于移動端,目前Meteor通過PhoneGap來支持移動應用打包,但是,相比于目前移動 Web的發(fā)展,它已經(jīng)有些落后于潮流,React Native才是人們的新寵,InfoQ記者向尤雨溪詢問Meteor是否有計劃支持React Native,他表示React Native的運行環(huán)境和打包方式都和現(xiàn)在集成Cordova的方式區(qū)別很大,因此目前還沒有具體的計劃,不過未來肯定會去嘗試。希望Meteor在這方 面更激進一些,像1.2版本支持ES6、Angular和React,就十分受到開發(fā)者的歡迎。 另外,Galaxy的發(fā)布,也讓人擔心,Meteor的重心是否轉(zhuǎn)向提供服務,框架的功能創(chuàng)新是否會放慢速度。尤雨溪則表示無需擔心,因為只有保持框架本身的競爭力才能為Galaxy吸引到客戶,所以肯定不會對框架本身松懈的。 至 于近一段時間Meteor的開發(fā)計劃,尤雨溪介紹道,他們已經(jīng)在計劃對Meteor本身進行一些大的改動來解決一些社區(qū)公認的問題,比如Meteor自身 的模塊系統(tǒng)一直受人詬病,他們在1.3會加入對ES6 module的支持。另外還會加強對于NPM的原生支持,讓Meteor應用可以更簡單地調(diào)用NPM上的資源。 JavaScript 社區(qū)一直充滿活力,每天各種各樣的框架層出不窮,但是真正成功商業(yè)化的不多,我們也衷心希望Meteor能為JavaScript框架探索出一條成功的道 路。對開發(fā)者來說,Meteor作為一款功能全面、簡單好用的一體化框架,在開發(fā)Node.js Web應用的時候,是一個不錯的選擇。 |
|