CoffeeScript和Dart对JavaScript的改进有哪些主要区别?

时间:2012-04-15 16:09:37

标签: javascript coffeescript dart

两种语言都声称可以修复JavaScript的缺陷。我想了解CoffeeScript和Dart(编译为JavaScript)如何实现这一目标的主要区别。特别是,

  • 对象模型与JavaScript中的相同吗?
  • 他们是静态还是动态输入的?是强还是弱?
  • 闭包如何使用这两种语言?
  • 他们支持协程吗?
  • 语法有哪些主要区别?
  • 我可以使用多少本地库?
  • 我可以使用现有的JavaScript库吗?

对个人偏好,采用率,工具支持或特定用途的实用性感兴趣。

3 个答案:

答案 0 :(得分:19)

Seth Ladd有blog post,他将CoffeeScript的某些方面与Dart和JavaScript进行了比较。不接触你的所有子弹,但可能是一个开始。他还发布了这个discussion以回应关于nettuts的Coffeescript和Dart文章。

答案 1 :(得分:1)

添加到Richard G的精彩链接: 您可以在CoffeeScript http://coffeescript.org/#embedded中使用JavaScript 在该网站上测试CoffeeScript;很多很好的例子。

IIRC,Dart最初是他自己的语言。当开发社区对Dart(“meh”或“ugg”)不那么开放时,谷歌就加入了对Dart的JavaScript交叉编译。 Native Dart最终将与JavaScript竞争。 Dart现在是阿尔法品质的;除非你进行大量测试,否则我会跳过它。

对我而言,一个更好的问题是,“我应该使用CoffeeScript或Haxe JS进行开发吗?”

答案 2 :(得分:0)

我在MarakanaTechTV上发现了一个新视频,它与 Dart vs JS 进行了比较(主要与Dart的VM相关,而不是从Dart渲染到JS时)。亮点:

  • 更基于类(与JS的原型相反,它们类似,但dart在这里更像是Java和C ++。这有助于使Dart更快,因为调用不需要在原型链上运行。)
  • Objects sizes may be static&密集,帮助对象阵列运行得更快。虽然如果你想要多孔阵列,你可以使用“map”。
  • Int maths随时可用,比双浮动更快(JS或多或少总是如此)。
  • Dart has SIMD可以减少大型数据集的CPU使用率(例如图像,音频,视频,3d,大表)。虽然除非您计划在浏览器中处理图形,音频或大型数字表,否则这对您来说无关紧要。 (顺便说一句,我不同意扬声器;我自己翻译成SIMD for DSP显示切换到SIMD确实需要一些“开销”,因为SIMD操作码确实比典型的双/ int操作码需要1个或更多个周期,并且你必须花费操作码在SIMD和'旧'数学之间进行转换。也就是说,即使使用SIMD进行双声道(如立体声音频),你也可以节省至少20%的CPU,并且如果你能提高3.7倍的速度使用所有4个频道)。

另一个用于网络开发者的“Why Dart?”视频。方便的语言糖/快捷方式:命名为constrictors,词汇'this。',方法级联。内置数据绑定,如Angular.js。