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