Dart语言比JavaScript(Node.js)有什么好处?

根据他们试图解决的问题,我没有看到Dart的观点。

我读到它是由于JavaScript的缺点而创build的,但是没有给出这些短暂的结果。

有人可以解释学习飞镖的好处,而不是我学习Node.js吗?

技术综述似乎很好地总结了这种差异:

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

  • (可选的)静态types:你不能在普通的JavaScript中进行静态types的input(如:“由编译器检查”)。 众所周知的优点(和缺点)已经被广泛讨论。

  • 对图书馆的语言支持:“在此之前加载该文件”是实现图书馆的一种非常原始的方式, 大多数现代语言都以某种方式明确支持图书馆。

该页面还提到了工具,但这不是语言之间的内在差异。 当然,静态编译和types化的语言更容易编写好的工具,但这并不是编程无法解决的根本区别。

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

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

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

这将执行得很好,但这是公然的错误。

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

原来的函数x(y)本来可以是函数x(y,z,a),但是随着时间的推移已经被重构了。 这是JavaScript失败的地方,这是飞镖将帮助解决。

编辑(20135月)除了我上面的答案,我相信仍然是真实的,我认为,性能故事也变得非常引人注目。 Lars Bak和Kasper Lund 从Google I / O的谈话提供了一些证据。