@pockry
2015-11-25T16:07:01.000000Z
字数 3638
阅读 1892
Web
JavaScript
全栈
Web框架
作者:张天雷,徐川
自从Node.js撼动整个Web开发领域以来,JavaScript Web全栈开发框架层出不穷,但是随着时间流逝,人们也逐渐意识到Node.js并不适合所有场景,一体化的开发框架也不一定适合JavaScript,众多JS Web框架纷纷沉寂,但唯有Meteor以其韧性坚持下来并脱颖而出,成为JavaScript Web开发框架的代表。
2011年组建的Meteor毕业于YCombinator训练营,成员来自Google等巨头企业。迄今为止,Meteor开发团队已经拿到了多轮投资,包括早期Andressen Horowitz领投的1000万美元,以及在推出Galaxy前夕的融资2000万美元。Meteor于2014年十月发布1.0版本,2015年的八月份,Meteor超过Rails,Github Star数接近3万,成为GitHub最受欢迎的网络应用开发框架。
作为一个开源框架,Meteor有着产品级的实时性和跨平台特性,提供多种功能且易用性极佳。InfoQ一直关注Meteor的发展情况,并进行了跟踪报道。近日Meteor发布了Galaxy应用托管服务,标志着Meteor正式进入商业运营的阶段。本文将回顾Meteor的发展,并分析Meteor的优缺点,以及Meteor的未来。InfoQ记者还就相关问题请教了Vue.js作者、Meteor的开发者之一尤雨溪。
Meteor早期版本以实时框架为卖点,外界对它的关注大约从0.4版本开始,这个版本将其Node.js依赖从0.6更新到0.8版本,而Node.js也正是从0.8版本开始渐渐普及。下面列出Meteor的主要版本更新:
从上面的更新我们可以看到Meteor不止是在打造一个框架,也是在构建一个从研发到部署、从Web到移动的、JavaScript全栈开发的生态链,这是开发者选择Meteor的原因之一。
从发展趋势来看,Meteor的出现并不是偶然。在Web开发中,一体化的框架非常多,如Rails就是其中的杰出代表,以其快速开发的能力受到人们青睐。Node.js横空出世以来,最主流的Web框架是Express,但是它只能算微框架,要想开发出一个功能完整的应用还需要大量的配置和很多的功能插件。市面上并没有主流的Node.js一体化框架,Meteor瞄准了这个缺口,也获得了市场的承认和开发者的喜爱。
从开发者的众多反馈来看,选择Meteor的原因不外乎下面几点:社区活跃、学习难度低、大量原生功能和优秀的生态系统,以及其主要的卖点:实时性框架。
另外,Meteor从最开始的一个重要卖点就是实时框架,而现在实时性在Web应用甚至移动应用中用到的地方越来越多,证明Meteor选择这个方向也是对的。
当然,Meteor并不是没有缺点,比如近期推出的Galaxy就遭到了诟病,Meteor本身是为了降低开发门槛,快速开发,适用于中小团队和创业者,但是Galaxy最低每月500美元的价格与这个定位并不匹配,在发布之后受到开发者的非议。
除了这个之外,Meteor缺乏大型成功案例,没有经过实践的洗礼,也让开发者怀疑它是否足够成熟可用。在这篇Meteor在生产环境的实践的文章里,作者提到了他使用Meteor的痛点,那就是部署在非官方平台的体验并不好,另外,某些关键功能插件并不好用,亟待加强和优化。
而让人不选择Meteor的根本原因,还与趋势相关。Node.js包管理器NPM十分好用,并且迅速流行开来,对于Node.js开发者来说,依赖NPM来进行模块化的开发非常方便,而Express框架是很多Node.js开发者入门必学,因此它所倡导的模块化+高度可配置的理念也就默认被人们所接受。在这篇文章里作者就希望人们使用更多库而不是框架来开发Node.js Web应用。当然,不管趋势如何变化,我们可以肯定的是,至少很长一段时间内,类似于Meteor这样的一体化框架还会有它的市场。尤雨溪表示:“是否使用框架是按实际情况考虑的。全栈式框架的价值在于对于没有特殊要求的应用,能够在极短的时间内开发出可用的产品。去框架化对于技术人员来说是很浪漫的事情,但当你拿了融资,需要在几个月内产品上线的情况下,未必有那么充裕的时间去自己整合各种组件,实现一些框架已经实现了的功能。”
从目前的表现来看,Meteor正在稳步发展,但是,它所处的环境,无论是Node.js,还是JavaScript社区,都正在剧烈变化当中,谁也不能预测未来Meteor到底能否成功。
在笔者看来,Meteor的未来是否成功,在很大程度上将取决于移动端,目前Meteor通过PhoneGap来支持移动应用打包,但是,相比于目前移动Web的发展,它已经有些落后于潮流,React Native才是人们的新宠,InfoQ记者向尤雨溪询问Meteor是否有计划支持React Native,他表示React Native的运行环境和打包方式都和现在集成Cordova的方式区别很大,因此目前还没有具体的计划,不过未来肯定会去尝试。希望Meteor在这方面更激进一些,像1.2版本支持ES6、Angular和React,就十分受到开发者的欢迎。
另外,Galaxy的发布,也让人担心,Meteor的重心是否转向提供服务,框架的功能创新是否会放慢速度。尤雨溪则表示无需担心,因为只有保持框架本身的竞争力才能为Galaxy吸引到客户,所以肯定不会对框架本身松懈的。
至于近一段时间Meteor的开发计划,尤雨溪介绍道,他们已经在计划对Meteor本身进行一些大的改动来解决一些社区公认的问题,比如Meteor自身的模块系统一直受人诟病,他们在1.3会加入对ES6 module的支持。另外还会加强对于NPM的原生支持,让Meteor应用可以更简单地调用NPM上的资源。
JavaScript社区一直充满活力,每天各种各样的框架层出不穷,但是真正成功商业化的不多,我们也衷心希望Meteor能为JavaScript框架探索出一条成功的道路。对开发者来说,Meteor作为一款功能全面、简单好用的一体化框架,在开发Node.js Web应用的时候,是一个不错的选择。