返回 登录
4

AngularDart:Google用Dart重写了AngularJS

Angular开发团队的GitHub里出现了一个新项目AngularDart,原来是几位同学用Dart语言重写了Angular。

他们在博客中称,AngularDart中保留了Angular的核心特性如指令、数据绑定和依赖注入,利用了Dart的元数据、类型、类等特性,还采纳了新兴的Web标准如Shadow DOM

而且,AngularDart已经用于生产实践,他们与Google内部的另外一个代号为Green Tea的应用开发组合作,为Google销售团队开发了一个销售自动化Web应用,效果良好,应用6个月就交付了。

当然,围绕Dart和其他的后JavaScript族语言一直存有争议。ID是cletus的一位Google工程师(非Angular团队成员)就在Hacker News上直言不讳地批评Dart和CoffeeScript等没什么意义,可选的类型系统什么都想要最后反而两头都不讨好。他非常认可Go语言的Rob Pike所重视的快速编译、快速的开发周期、简单的语法。的确,我现在常常像初学编程的同学推荐先学JavaScript,就是因为它有一个特大优点,能在浏览器里快速查看程序的运行效果,接近所见即所得,学习中能尽快获得某种成就感是非常重要的。cletus也指出,转译语言在转译过程中,也会带来新的bug。

HN上更多的讨论围绕Google此举的意图展开。批评意见是,Google的所谓开源总是想利用公司在各方面的强大实力,强推自己的东西,而不是像一般开源项目那样自由竞争。现在Angular正火,搞一个AngularDart明显是想借Angular来推Dart嘛。然后是一些阴谋论的猜测……

在我看来,当Google越来越像当年的微软,技术圈里产生出对一统天下者的戒心是非常自然的。

但Angular团队内部的工程师spankalee却明确表示,Google在这方面并没有什么大战略,只是有些个人和小团队觉得这么做有价值,就做了。Angular本身就是一个副产品项目,得到社区欢迎后,公司开始官方支持,但也就是允许一些工程师能专职开发这个项目而已,Dart也是这样,背后并没有什么大棋局。AngularDart也是如此,只不过是公司有团队又想用Angular,又想用Dart,于是就做了。

kyrra指出,Google内部其实对Dart的态度并不一致,Chrome团队的不少人就不同意将Dart集成到Chrome里。Google内部更多团队还是在用JavaScript。

recuter的猜测更加引人注目,Angular下一版可能发生大变化。2.0的目标是模块组件化,这与另一个Google主导的Web Components标准是有重叠的。另外,Google和Mozilla正在合作将类似Angular中指令的特性标准化。这意味着未来某一天,Angular的亮点都会成为标准,它本身可能也不再需要了。这种猜测得到了Google员工spankalee的部分确认,AngularDart的工作会对Angular 2.0产生较大影响,将更加模块化和使用更多Web标准。

评论