Angular.js 和 Ember.js 对比

Publish: March 19, 2015 Category: WEB 2 Comments

这里主要是整理了Ruby-China社区关于两个前端框架的调查贴。(coming https://ruby-china.org/topics/24465

两个阵营观点整理(当然有一些是偏向的):


ember

  • 个人会选 Ember,但有的时候选择不是完全自由的,公司那么多项目都是基于 Angular 的,让大家完全转投 Ember 不太现实。
    选择 Ember 胜于 Angular 的主要原因是对 ES6 的态度,从很多细节来看 Ember 比较贴合标准,而 Angular 即使到了 2,生态链上貌似也要多一个 atscript 才足够好,没有 atscript 的 Angular 2 还有多少魔力尚未可知。通过 ngEurope 2014 传达出的信息来看, atscript 还是不能缺的。

说实话,在 JS 社区对于语言的态度是分成两派的,一派推崇基于上层的扩展甚至“改革”,借助扩展编译器甚至语言的实现来对标准的进化施加影响,个人不排斥但却更喜欢另一派——在标准的基础上不断进取,以实际应用的表现去争取影响标准的进化,而不是借助外力。
另外,Ember 和 Angular 其实都是适合大规模应用框架,一般的项目个人还是倾向于基于 jspm 的 React 方案,目前还在观望 facebook 对于 flux 的进一步动作,或许能给人以惊喜。
除了框架以外,其实 http://jspm.io 才是真正值得每一个人关注的东西,基于 jspm 的 Angular 项目架构目前比较令我满意了,React 也不必说。Ember 有 Ember-CLI,不用费心,这也是 Ember 最大的优势之一。
同志们,是时候关注和认真对待前端项目的工程性了。
还是那句话,单比特性,任何一种都有比其他强的特性;拿来做上规模的项目,大家都可以,分不出绝对的高下。Ember 的前景很好,详情前面已经有叙述了。
至于整合或分离,大家面临的架构问题其实都一样,只不过群众基础好的造的轮子也多一些,但是自己能力到了,没轮子也可以自己造。
react 的问题弄说的是对的,你需要自己补全其他的组件,fb 自己也在做。(nightire)

    • 小规模和短期维护的项目,随便拿什么都行。如果你需要的是中等规模(或者更大)和需要至少维护 1 年的项目,Ember 是比较合适的选择,因为它确实做到了宣扬的 stability without stagnation 。
      优点:
    1. 稳定,我指的稳定是 “文档写明白的就必定没有意外情况” 。从 1.0 到现在我用的 1.9 ,bug 几乎没碰过几个 。
    2. 升级几乎无痛,大部分时候把新版本扔进去,测几个页面就 ok 。
    3. 因为以上两点,升级到 Ember 2.0 应该也会很顺利。感兴趣的可以看 Ember 2.0 RFC。 BTW 2.0 六月份发布。
    4. 积极跟进和拥抱 ES 标准。很多人知道 Ember CLI 现在集成了 Babel.js 。但 ES6 module 是 Ember 去年就开始用的(最早在 Ember App Kit ,到现在差不多 1 年)。最近 EmberConf 刚开完,core team 在讨论 ES class 代替 Ember.Object 的可能性。
    5. Ember Inspector ,谁用谁知道。
    6. Ember CLI 和 Ember addon ,打造生态圈的基础。

    以上说的大部分都是和维护性和开发便利性相关。因为我觉得单纯的比功能,感兴趣的去各自的官网上看看就心里有数了。Ember, Angular, React 都不差,谁都有明星项目的例子,也不存在完全搞不定的弱点。开发者照自己 taste 选择就好。但是代码维护和开发效率直接影响每天的工作,至少我很重视这两点。
    不过说到这两点就不得不提生态圈。这点无可否认 Angular 做的更好。出名的几个 UI 库都能跟 Angular 很方便地集成,开源又减轻了开发者个人的维护成本。这点在 bootstrap 一个项目的时候可以有非常大的提速。Ember 有了 addon 之后也能找到一些,但毕竟时间不长,还需要积累。


    最后说几点 Angular 的:

    1. Angular 2 已经没有 AtScript 了,直接用 TypeScript 。原因又造轮子被群众吐槽太多了。其实它需要的也就是 annotation (和另一个特性,忘了)。而 annotation 也可以自己用 JavaScript 写,就是繁琐一点。
    2. annotation 准备被 TC39 加入 ES 标准了。因为 Ember 也可能用到,两个 MVC 框架利益达成一致了。
    3. Google 承诺 Angular 1 到 2 有 migration path 。也是被群众吐槽不得不改的结果。
    4. Angular 2 我从去年就开始听说(跟 Ember 2.0 RFC 发布时间差不多),到现在还是 alpha 。真正开始项目肯定还是选 Angular 1 的。至于升级,这点见仁见智了。Google 目前给出的信息太少。
    5. Angular 2 的 route 内部使用的 Ember 的 route-recognizer (darkbaby123)

    angular

    1. 单纯使用过 Angularjs1.2.x 的感觉,对于ruby开发者来说很友好,做过三个项目,至今没任何不适,妈妈再也不用愁前端逻辑了。Emberjs打算有空了也学学,看看到底是 shen me gui

    中立
    看项目规模,如果项目规模不大,其实选什么都行。( lgn21st)

    还没遇到必须用前端框架的需求,隔岸观火中。( Rei)


    线上写了半年的 React 的飘过, 非灵活, 工程化方面的问题的确要深入考虑下, 这方面经验不够多.
    没有写过像样的 Angular 跟 Ember...
    但是 Ember 听说最近加了类似 Virtual DOM 的 Glimmer 引擎, 比较有好感.
    ... Angular 用 TypeScript 以后除了 Java 程序员是不是还应该吸引 C# 程序员呢 :D

    这里仅仅是整理的相关的一些评论,angular可能用户群更大一些,到深入一些还需自己团队的人员等具体因素来做技术选型。又做了一次搬运工,罪过罪过!!!!!

    Tags: angular, ember

    Related Posts:
    • [尚无相关文章]

    2 Comments »

    1. This is the best blog for anyone who wants to search out out about this topic. You realize a lo[...]

    2. You've made your stand extremely nicely!.

    Leave a Comment

    Trackbacks/Pingbacks

    1. Cialis pills --- March 29th, 2018 at 05:15 am
    2. essayforme --- April 12th, 2018 at 08:22 pm