【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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:163542
用户头像

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

关注

评论

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

推荐系统在线峰会来了,冷启动、推荐工程、模型训练…你都能找到答案

小红书技术REDtech

推荐系统

生命数字化时代来临:全基因组计算成本不到1美元

INSVAST

基因测序 基因数据分析

Sentieon | 每周文献-Clinical Trial-第十一期

INSVAST

基因测序 临床试验

实现高效数据同步:40 分钟内同步500GB MySQL 数据至 Doris

NineData

MySQL 数据库 Doris 数据迁移 数据实时同步

Hap-eval:Sentieon开源的多测序平台SV精度评估工具

INSVAST

代码 基因测序 Hap-eval

直播预告|没有 “专业” 的向量数据库,大模型就玩不转了吗?

Zilliz

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

使用Sentieon加速甲基化WGBS数据分析

INSVAST

基因测序 dna WGBS 甲基化

仓库进销存ERP管理系统开发搭建部署

V\TG【ch3nguang】

进销存系统 ERP管理系统

Sentieon | 每周文献-Long Read Sequencing(长读长测序)-第七期

INSVAST

基因测序 长读长测序 Long Read

Sentieon | 每周文献-Benchmark and Method Study(基准与方法研究)-第八期

INSVAST

基因测序 基因数据分析 基准与方法研究

Sentieon | 每周文献-Liquid Biopsy(液体活检)-第十期

INSVAST

基因测序 液体活检 Liquid Biopsy

服务器实现端口转发的N种方式

这我可不懂

Linux windows 服务器

TiDB 源码编译之 TiProxy 篇

TiDB 社区干货传送门

版本测评 新版本/特性解读 7.x 实践

基因组大数据计算: CPU和GPU加速方案深度评测

INSVAST

基因测序 基因数据分析

Sentieon|应用教程:利用Sentieon Python API引擎为自研算法加速

INSVAST

开源软件 基因测序 Python API

Sentieon | 应用教程: 关于读段组的建议

INSVAST

代码 教程 字段 基因测序

端云一体化云开发,助推HarmonyOS应用与元服务高效开发

最新动态

Sentieon DNAscope:适配多测序平台数据的快速精准分析流程

INSVAST

基因测序 基因数据分析 DNAscope

靶向RNA-seq全面解决方案和加速分析,只看这篇就够了!

INSVAST

基因测序 基因数据分析 RNAseq

使用DWS集群,用户被锁定如何解锁

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

视频增强和修复工具 Topaz Video AI 3.3.11激活包+注册码

mac大玩家j

Mac软件 视频处理工具 视频编辑软件 视频剪辑工具

制造执行系统(MES)在汽车行业中的应用

万界星空科技

MES系统 汽车

Sentieon | 每周文献-Multi-omics(多组学)-第九期

INSVAST

基因测序 Multi-omics 多组学

多城市家政预约到家服务小程序/APP开发搭建

V\TG【ch3nguang】

预约小程序

大数据平台安全主要是指什么安全?如何保障?

行云管家

大数据 数据 大数据平台 大数据平台安全

动力商城/积分兑换商城系统开发——助企业建立自己的电商管理业务

V\TG【ch3nguang】

积分商城

Android图片资源检测插件实现

java易二三

Java 程序员 计算机 插件 APK

苹果电脑推荐 Office 2019 v16.77 beta永久激活版+激活工具

胖墩儿不胖y

Mac软件 office办公套件 Office 2019中文版

财务数智化十年“老兵”的六条财务共享中心建设体会

用友BIP

智能财务 财务共享

揭秘 | RocketMQ文件清理机制~

java易二三

Java 程序员 计算机

DNAscope白皮书: 基于机器学习的高精度胚系变异检测流程

INSVAST

基因测序 基因数据分析

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