写点什么

Meteor:网络应用开发的瑞士军刀

  • 2015-11-25
  • 本文字数:3208 字

    阅读完需:约 11 分钟

自从 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 的发展

Meteor 早期版本以实时框架为卖点,外界对它的关注大约从 0.4 版本开始,这个版本将其 Node.js 依赖从 0.6 更新到 0.8 版本,而 Node.js 也正是从 0.8 版本开始渐渐普及。下面列出 Meteor 的主要版本更新:

  • 2012 年 9 月发布 0.4 版本,添加智能邮件发送包,更新 Node.js 从 0.6 到 0.8 版本。
  • 2013 年 0.5.x 版本,从 0.5 版本开始,Meteor 做了相当大的变动,目标将基于 Metero 的应用扩展到百万用户级别。0.5.3 版增 加了对环境变量的支持,支持更多可配置的开发环境。0.5.7 版在性能和伸缩性上做了不少改进。0.5.8 班包含客户端数据库更新,增加对 AppCache 支持,改进了底层的 Deps 工具,支持 CoffeeScript。
  • 0.6 版本包含一个全新的系统用于分发 Meteor 和更新应用,同时增加应用专有的包以及直接支持 NPM 模块。
  • 0.7 版本实现一个新的数据库驱动器,使用 MongoDB 数据库复制日志来更高效的监控查询。
  • 0.8 版本用 Blaze 模板引擎替代 2012 年引入的 Spark 引擎,Spark 被称为 jQuery 的声明式版本,不过显然它并未代表未来的趋势。
  • 0.9 版本开始丰富整个生态系统,0.9.0 版本发布了官方的 Meteor packaging 系统,包括 Isobuild 构建系统和 Meteor Package Server。0.9.2 版本首次支持使用 PhoneGap 构建 iOS 和 Android 移动应用。
  • 1.0 版本与 2014 年 10 月发布,作为一个里程碑版本并不包含重大更新,但更新了文档,优化了用户体验。
  • 1.1 版本终于开始支持 Windows 操作系统,同时还支持 MongoDB 3.0 版本。
  • 1.2 版本开始支持 ES6、AngularJS 和 React,前段时间还发布了 Angular Meteor 1.2.0 版,这是为 Angular 定制的版本。
  • 另外前段时间还发布了 Galaxy,这是为 Meteor 应用提供托管的官方服务。

从上面的更新我们可以看到 Meteor 不止是在打造一个框架,也是在构建一个从研发到部署、从 Web 到移动的、JavaScript 全栈开发的生态链,这是开发者选择 Meteor 的原因之一。

Why Meteor

从 发展趋势来看,Meteor 的出现并不是偶然。在 Web 开发中,一体化的框架非常多,如 Rails 就是其中的杰出代表,以其快速开发的能力受到人们青睐。 Node.js 横空出世以来,最主流的 Web 框架是 Express,但是它只能算微框架,要想开发出一个功能完整的应用还需要大量的配置和很多的功能插 件。市面上并没有主流的 Node.js 一体化框架,Meteor 瞄准了这个缺口,也获得了市场的承认和开发者的喜爱。

从开发者的众多反馈来看,选择 Meteor 的原因不外乎下面几点:社区活跃、学习难度低、大量原生功能和优秀的生态系统,以及其主要的卖点:实时性框架。

  • 社区活跃:Meteor 无论在 GitHub、StackOverflow 还是 Twitter 等社交媒体上,用户活跃度都超过其他开发框架一个数量级,活跃的社区代表开发者正在进行频繁的交流和讨论,有助于问题的解决和框架的推广传播。
  • 学习难度低:如上文所说,Meteor 是前后端甚至数据库都可统一开发的 JavaScript 框架,开发者无需掌握多种不同工具即可完成网络应用的构建。Meteor 在设计之初就考虑了简明的理念,在官方教程的帮助下,开发者一个小时之内就能学会基本开发。
  • 大量原生功能:支持多重数据库、视图、地址分配、安全、性能工具、测试、移动等功能,涵盖整个网络应用开发周期
  • 优秀生态系统:迄今为止,Meteor 在线代码库中包含超过五千个第三方组件,而且数目仍然在迅速增长。

另外,Meteor 从最开始的一个重要卖点就是实时框架,而现在实时性在 Web 应用甚至移动应用中用到的地方越来越多,证明 Meteor 选择这个方向也是对的。

Why Not Meteor

当然,Meteor 并不是没有缺点,比如近期推出的 Galaxy 就遭到了诟病,Meteor 本身是为了降低开发门槛,快速开发,适用于中小团队和创业者,但是 Galaxy 最低每月 500 美元的价格与这个定位并不匹配,在发布之后受到开发者的非议。

除了这个之外,Meteor 缺乏大型成功案例,没有经过实践的洗礼,也让开发者怀疑它是否足够成熟可用。在这篇 Meteor 在生产环境的实践的文章里,作者提到了他使用 Meteor 的痛点,那就是部署在非官方平台的体验并不好,另外,某些关键功能插件并不好用,亟待加强和优化。

而 让人不选择 Meteor 的根本原因,还与趋势相关。Node.js 包管理器 NPM 十分好用,并且迅速流行开来,对于 Node.js 开发者来说,依赖 NPM 来进行模块化的开发非常方便,而 Express 框架是很多 Node.js 开发者入门必学,因此它所倡导的模块化 + 高度可配置的理念也就默认被人们所接受。 在这篇文章里 作者就希望人们使用更多库而不是框架来开发Node.js Web 应用。当然,不管趋势如何变化,我们可以肯定的是,至少很长一段时间内,类似于Meteor 这样的一体化框架还会有它的市场。尤雨溪表示:“是否使 用框架是按实际情况考虑的。全栈式框架的价值在于对于没有特殊要求的应用,能够在极短的时间内开发出可用的产品。去框架化对于技术人员来说是很浪漫的事 情,但当你拿了融资,需要在几个月内产品上线的情况下,未必有那么充裕的时间去自己整合各种组件,实现一些框架已经实现了的功能。”

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 应用的时候,是一个不错的选择。

2015-11-25 02:163786
用户头像

发布了 164 篇内容, 共 109.8 次阅读, 收获喜欢 392 次。

关注

评论

发布
暂无评论
发现更多内容

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz 向量数据库

Wallys/DR5018+QCN6122/support for the latest Wi-Fi standards in networking devices.

Cindy-wallys

ipq5018 QCN6102 QCN6122

LangChain 查询使用指「北」

Zilliz

Milvus AIGC 向量数据库 zillizcloud langchain

云服务器与独立服务器的性能比较:您需要了解的关键差异

一只扑棱蛾子

云服务器 独立服务器 服务器性能

财务共享五大价值助力央企构建世界一流财务管理体系

用友BIP

财务共享

论数字化大趋势下,建设财务共享中心的重要性

用友BIP

财务共享

GreptimeDB 使用指南|快速查询分析外部数据

Greptime 格睿科技

数据库 分布式 云原生 时序数据库 使用指南

MobTech MobLink|小程序、网页跳转App的原理

MobTech袤博科技

利用跨端框架和小程序容器技术,打造一致体验的多平台应用

FinFish

小程序 小程序容器 跨端框架 小程序化

软件测试/测试开发丨Web自动化测试高级定位xpath

测试人

程序员 软件测试 自动化测试 测试开发

inBuilder今日分享丨表单设计器画布渲染引擎揭秘

inBuilder低代码平台

AIGC下的低代码赛道,你我皆是拓荒人

引迈信息

AI 低代码 AIGC JNPF

水泥行业全球第一企业怎么进行财务共享建设?

用友BIP

财务共享

怎样才能让业财融合真正为企业数智化转型起到推动作用?

用友BIP

财务共享

AI浪潮再掀低代码开发热,快来了解最新趋势!

加入高科技仿生人

人工智能 低代码 AI技术

通过SQL获取每个月第n周任意天的数据

搞大屏的小北

sql查询 sql 第一周 每个月 周一

怎样将图片直接转换为3d模型?

真大的脸盆

Mac Mac 软件 图片转换工具 图片转换模型软件

多元办公场景下,企业如何保障工作效率与数据安全流通?

人称T客

项目很大,是否忍一下?

巨梦科技

微前端

开源大模型新SOTA!支持免费商用,比LLaMA65B小但更强,基于1万亿token

Openlab_cosmoplat

开源社区 falcon

利用透明压缩技术解决企业级SSD读写延迟挑战

ScaleFlux

压缩算法 固态硬盘 企业存储

数据可视化:分布类可视化图表大全

2D3D前端可视化开发

大数据 数据分析 数字化转型 数据可视化 数据可视化工具

Kyligence x 明道云|低代码平台助力中小企业实现存量背景下的创新增长

Kyligence

数据分析 低代码平台 指标平台

RocketMQ 多级存储设计与实现

阿里巴巴云原生

阿里云 RocketMQ 云原生

西南财经大学李玉周:数智化技术广泛使用推动管理会计加快落地

用友BIP

智能会计 价值财务

进阶神册!Redis+Nginx+设计模式+Spring全家桶+Dubbo核心技术笔记

程序知音

Java 数据库 spring java架构 Java进阶

拿到字节跳动奖学金,入职字节跳动做科研,他们经历了什么?

字节跳动技术范儿

字节跳动 语音合成 模型压缩

数字化转型应该如何去做?(过程管理方法篇)

数字随行

数字化转型

万众瞩目的Nautilus Chain即将上线主网,生态正式起航

大瞿科技

踢碎破局陷阱,来一场酣畅淋漓的 SLG!

网易智企

AI AIGC

点云标注技术推动该领域的发展

来自四九城儿

Meteor:网络应用开发的瑞士军刀_Web框架_徐川_InfoQ精选文章