公司有个同事说我们试试 dart 来写新项目吧。 dart + angular + D3 做一个什么实时的图表现实。
然后看了看 dart,编辑器,语法,功能都挺好的挺吸引人的,但是永远你要关注的就是短板问题,你是否接受 Dart 的短板。
现在列几个我不能接受的。
Dart 目前只支持 IE9,10 和最新版本的 Chrome, Safari, Firefox,你要想支持老版本,比如编译成 JS,而编译成 js 之后,文件非常巨大,就几行代码的 helloworld 就大概在 90k 左右了,而且 minified。因为他要包含很多 dart 自己的库了。
Dart 当你要跟别的 javascript 库沟通的时候,代码就变得非常不便了。而且当把 dart 的变量传给 js 的方法的时候也需要转换一下。我非常不看好这点。 可以查看一下以下页面。
https://www.dartlang.org/articles/js-dart-interop/ 一个 js 写的类,然后让 dart 去调用。
var Point = function(x, y) { this.x = x; this.y = y; this.distanceFrom = function(otherPoint) { return Math.sqrt(Math.pow(otherPoint.x - this.x, 2) + Math.pow(otherPoint.y - this.y, 2)); }; };
==Dart code=>
var p1 = new JsObject(context['Point'], [5, 1]); var p2 = new JsObject(context['Point'], [1, -2]); print(p1.callMethod('distanceFrom', [p2])); // Prints 5.
当你的用户告诉你出了什么 js 错误的时候,你得打开 rails server side + dart editor 一起调试,因为你不能用 browser console 去调试了,必须用 dart editor.
我接受不了,所以我打算劝我同事放弃吧。