【问题标题】:What are the main differences between CoffeeScript’s and Dart’s improvements upon JavaScript?CoffeeScript 和 Dart 对 JavaScript 的改进之间的主要区别是什么?
【发布时间】:2012-04-27 03:58:30
【问题描述】:

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

  • 对象模型和 JavaScript 中的一样吗?
  • 它们是静态类型还是动态类型?强还是弱?
  • 闭包在这两种语言中是如何工作的?
  • 他们支持协程吗?
  • 语法上有哪些主要区别?
  • 我可以使用多少个原生库?
  • 我可以使用现有的 JavaScript 库吗?

对个人偏好、采用率、工具支持或针对特定目的的有用性等内容感兴趣。

【问题讨论】:

  • @TrevorBurnham 谢谢,我会考虑的。这是否意味着对 stackoverflow 没有建设性的问题属于那里,或者在programmers.stackexchange.com 上的欺凌行为较少? IOW,为什么这个问题在这里“没有建设性”,但在那里可以?
  • 对我来说似乎不是特别没有建设性,尽管可能有点不清楚。已编辑,重新打开。
  • 这是建设性的,但它不是一个有明确单一答案的问题,这似乎是这些天的范围。只是我的意见。
  • @Shog9 感谢您重新打开!我会看看我能不能想出更好的措辞。

标签: javascript coffeescript dart


【解决方案1】:

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

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

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

【讨论】:

  • 实际上,Dart 从一开始就被设计为可编译(和编译)为 JavaScript。当前的编译器 (dart2js) 实际上是 第三个 Dart -> JavaScript 编译器(首先是 dartc,然后是 frog,然后是 leg,最近重命名为 dart2js)。
【解决方案2】:

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

  • 更多基于类(与 JS 的原型相反,它们相似,但 dart 在这里更像 Java 和 C++。这有助于使 Dart 更快,因为调用不必沿 Prototype 链向上传播。)
  • Objects sizes may be static & 密集,帮助对象数组运行得更快。如果你想要空洞数组,你可以使用“map”。
  • Int maths 很容易获得,比双浮点数更快(JS 或多或少总是如此)。
  • Dart has SIMD 可以减少大型数据集 CPU 使用率(例如图像、音频、视频、3d、大表)。尽管除非您打算在浏览器中处理图形、音频或大型数字表,否则这对您来说并不重要。 (顺便说一句,我不同意演讲者的观点;我自己翻译为 DSP 的 SIMD 显示切换到 SIMD 确实需要一些“开销”,因为 SIMD 操作码确实比典型的双精度/整数操作码需要 1 个或更多周期,并且您必须花费用于在 SIMD 和“旧”数学之间转换的操作码。也就是说,即使将 SIMD 用于 2 通道(如立体声音频),您也可以节省至少 20% 的 CPU,如果您使用所有 4频道)。

还有另一个面向 Web 开发人员的“Why Dart?”视频。方便的语言糖/快捷方式:命名收缩器、词汇“this.”、方法级联。 Angular.js 等内置数据绑定。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2018-11-10
      • 2015-08-22
      • 2015-08-06
      • 2011-03-06
      • 2013-12-23
      • 2017-04-28
      • 2011-04-14
      • 2010-09-17
      • 2021-11-30
      相关资源
      最近更新 更多