JavaScript vs Dart 二者之间的比较

什么是JavaScript?

JavaScript一般被称为浏览器脚本语言,但它也已扩展到许多服务器端和移动应用程序开发环境。JS已经存在了将近20年,能够确定地说它确实是一种成熟且稳定的编程语言。在Facebook发布React和React Native框架以后,JS变得愈来愈流行。javascript

JavaScript具备本身的软件包管理器,例如NPM和Yarn。尽管JavaScript如今是首选和流行,但在编程社区中仍然有一些不一样的评论。不过,能够确定地说,JavaScript的流行性毋庸置疑,由于它包含将近200万个在StackOverFlow上标记的问题。html

什么是Dart?

Dart是由Google专门针对各类平台上的快速应用程序进行客户端优化的语言。Google最初将其用做内部编程语言来构建Web、服务器和移动应用程序。尽管Dart自2011年以来一直存在,但在Google宣布Flutter进行跨平台移动应用开发后,它就开始流行。惟一的缘由是Flutter彻底基于Dart。所以,移动开发人员必须学习Dart 才能开始使用Flutter。前端

Dart编译源代码,相似于C等其余编程语言。可是它也有本身的虚拟机(VM),用于运行称为Dart VM的原生应用程序。 Dart也有本身的软件包管理器,称为Pub。java

使用Dart和JavaScript的示例应用程序

Dart.jsgit

void main() {
  print("Hello World");
}
复制代码

Javascript程序员

console.log("Hello World")
复制代码

JavaScript与Dart的比较

流行程度

JavaScript实际上无处不在,几乎没有不运行JavaScript的设备。当前,JavaScript被用于编写Web,移动和服务器端代码。 JavaScript在StackOverflow上标记了将近200万个问题。github

因为其受欢迎程度,JS生态系统很是庞大,如今,随着云组件中心的出现,它甚至在可重用组件“市场”中占主导地位。web

另外一方面,Dart变得愈来愈流行,但距离JavaScript还很遥远。在Google宣布Flutter以前,Dart无处可寻。Dart吸引了不支持JavaScript的开发人员。目前,Dart在StackOverFlow上标记了将近3万个问题。编程

学习曲线

众所周知,JavaScript对于初学者来讲是至关棘手的,特别是当他们没有编程概念的背景知识时。可是JavaScript是大学和训练营教授的主要语言之一,由于它是Web开发的核心之一。实际上,HTML,CSS和JavaScript被称为Web开发的三剑客。在线上有不少课程和教程能够帮助您学习JavaScript。后端

可是,使用Dart,状况就大不相同了。学习Dart对于新手来讲可能会很是吓人,由于它不像JavaScript那样广为人知,并且学习材料相对较少。可是Google不遗余力帮助其余OOP语言的开发人员无缝过渡到Dart。

类型安全

这是JavaScript和Dart之间的主要区别之一。做为一种解释型语言,JavaScript支持动态类型和鸭子类型。鸭子类型是根据特定方法和属性的存在而不是对象自己的类型来肯定对象是否适合用于特定目的的类型。Javascript容许键入任何代码,使其成为非类型安全的语言,致使仅在运行时发现错误。

相反,Dart支持松散的和强大的原型设计。做为一种编译语言,Dart可以在编译过程当中发现大多数错误,这使得它比JavaScript更加类型安全。

企业使用

JavaScript已在商业上使用,即便在大型项目中也是如此,它用于构建Web和跨平台应用程序。Facebook引入的Web和跨平台框架React和React Native使用JavaScript,这些框架在Facebook内部使用。Airbnb,Slack,eBay等其余公司也使用JavaScript。

Dart的出生地是Google,所以,一开始它在内部被普遍使用。而后,在引入Flutter以后,诸如阿里巴巴这样的大公司采用Flutter和Dart来开发其跨平台应用程序。

将Dart编译成JavaScript

Dart有两种不一样的JS编译器,Webdev工具根据用例选择最佳的编译器。在开发应用程序时,webdev选择dartdevc,它支持增量编译,所以你能够快速查看编辑结果。可是,在构建要部署的应用程序时,webdev选择dart2js,它使用摇树之类的技术来生成优化的代码。

Dart团队正在努力使dart2js编译的代码比手写JS运行得更快。虽然不是全部状况下都会如此,但咱们能够期待在不久的未来会有一些激烈的竞争。

利弊

JavaScript

优势:

  • JavaScript能够用于Web和移动应用程序。
  • 它能够用于前端和后端,所以JavaScript能够在每一个设备上运行。
  • JavaScript具备庞大的社区和在线提供的出色框架。
  • 轻巧而灵活。
  • 能够找到大量的学习资料。

缺点:

  • 尽管JS有大量的库,可是有不少库的质量和维护性不好。
  • 仅在运行时发现错误。

Dart

优势:

  • 开源。
  • 由大公司——Google支持。
  • 类型安全,并使用JIT和AOT进行编译。
  • Flutter的骨干。
  • 在某些状况下相对更快

缺点:

  • 对程序员而言相对较新。
  • 与JavaScript相比,学习材料并不普遍。

结论

Dart和JavaScript都是开发各类应用程序的理想选择。随着它们在Flutter和React,React Native中使用,我能够看到这两种语言的光明前景。在Jaxenter进行的一项民意调查中,Dart以223票被选为您2019年列表中的第一语言。此外,在Stack Overflow进行的一项调查中,Dart(66.3%)仅次于JavaScript(66.8%),成为2019年最受欢迎的编程语言。Dart在“Github State of the Octoverse”增加最快的语言类别中也排名第一。

[StackOverflow](https://insights.stackoverflow.com/survey/2019)

[Jaxenter](https://jaxenter.com/poll-results-dart-word-2019-154779.html)

Credits: GitHub

做为对新手开发人员,我建议您从JavaScript入手,并首先掌握它的基础知识。你不必定须要成为JS专业人士,而是须要了解其基础知识。完成后,你就能够转入Dart,探索它的水域。这样一来,你就能够彻彻底底地熟悉这两个巨人了。


来源:blog.bitsrc.io,做者:Mahdhi Rezvi,翻译:公众号《前端外文精选》

本文首发于微信公众号《前端外文精选》,关注即送大礼包,准能为你节省很多钱!

相关文章
相关标签/搜索