繁体   English   中英

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

[英]What are the main differences between CoffeeScript’s and Dart’s improvements upon JavaScript?

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

  • 对象模型与JavaScript中的相同吗?
  • 它们是静态还是动态输入的? 强弱?
  • 封闭如何在两种语言中工作?
  • 他们支持协程吗?
  • 语法的主要区别是什么?
  • 我可以使用多少本机库?
  • 我可以使用现有的JavaScript库吗?

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

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

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

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

对我来说,一个更好的问题是,“我应该用CoffeeScript还是Haxe JS开发 ?”

我在MarakanaTechTV上发现了一个新的视频,它与Dart和JS有一些比较(主要与Dart的VM相关,而不是从Dart渲染到JS)。 强调:

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

还有另外一个“ 为什么Dart? ”vid for web devs。 方便的语言糖/快捷方式:命名为constrictors,词汇'this。',方法级联。 像Angular.js这样的内置数据绑定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM