Dart语言相对于JavaScript (Node.js)的优势是什么?



我看不出Dart要解决的问题有什么意义。

我读到它是由于JavaScript的缺点而创建的,但是没有给出这些缺点。

谁能解释一下学习Dart而不是我学习Node.js的好处?

我认为它的主要问题是解决了创建大型、多开发人员应用程序的问题。

在Javascript中,我可以写出完全有效的代码:

function x(y) {
 return y*y;      
}
document.write(x(3,4,5));

这个会执行得很好,但这显然是一个错误。

现在将函数定义和函数调用分开,由几个开发人员和几个月的几千行代码库进行。

原始函数x(y)原本可以是函数x(y,z,a),但随着时间的推移已经被重构。这是javascript对我来说失败的地方,这是dart将帮助解决的问题。

Edit (May 2013)除了我上面的答案(我认为这仍然是正确的)之外,我认为性能故事也变得非常引人注目。Lars Bak和Kasper Lund在Google I/O的演讲提供了一些证据。

技术概述似乎很好地总结了两者的区别:

  • 类:虽然JavaScript 面向对象的,而且它提供类(至少在它的最新版本中),但它实际上是一种基于原型的语言,而不是基于类的语言。虽然这并不是天生的更糟,但它与大多数主要的OO语言不同,这使得大多数人更难学习。

  • (可选)静态类型:在纯JavaScript中不能执行静态类型(如:"checked by the compiler")。优点(和缺点)是众所周知的,并已被广泛讨论。

  • 语言对库的支持:"在此之前加载该文件"是实现库的一种非常原始的方式,大多数现代语言都以某种方式显式支持库。

该页还提到了工具,但这并不是语言之间的固有差异。当然,静态编译和类型语言更容易编写好的工具,但这不是不能通过编程解决的根本区别。

最新更新