30

JavaScript vs Dart 两者之间的比较

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzI0MDIwNTQ1Mg%3D%3D&%3Bmid=2676493457&%3Bidx=1&%3Bsn=4ddef2c744a31a5230c494f4be6e3d60
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
a2AZR3Q.png!web

什么是JavaScript?

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

JavaScript具有自己的软件包管理器,例如NPM和Yarn。尽管JavaScript现在是首选和流行,但在编程社区中仍然有一些不同的评论。不过,可以肯定地说,JavaScript的流行性毋庸置疑,因为它包含将近200万个在StackOverFlow上标记的问题。

什么是Dart?

QBFnqam.png!web

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

Dart编译源代码,类似于C等其他编程语言。但是它也有自己的虚拟机(VM),用于运行称为Dart VM的原生应用程序。Dart也有自己的软件包管理器,称为Pub。 使用Dart和JavaScript的示例应用程序

Dart.js

void main() {
  print("Hello World");
}

Javascript

console.log("Hello World")

JavaScript与Dart的比较

流行程度

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

由于其受欢迎程度,JS生态系统非常庞大,现在,随着云组件中心的出现,它甚至在可重用组件“市场”中占主导地位。

另一方面,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来开发其跨平台应用程序。

Q3uIbqz.jpg!web

将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”增长最快的语言类别中也排名第一。

VziYbmy.png!web StackOverflow NBNz2eQ.jpg!web Jaxenter bum6reU.png!web Credits: GitHub

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

近期文章

实战 | 使用TypeScript和ES模块发布Node模块

避免在单页应用程序中使用CORS,如何以及为什么?

使用CSS文字阴影创建有趣的效果

测量JavaScript函数的性能的简单方法及与其他方式对比

不要过度使用React.useCallback()

什么是纯函数,它是函数式编程 的基础

HTML页面生成器:使用JavaScript和Node创建CLI

CSS中的间距,前端开发中各种设置间距的优点缺点及实例

React.js和Vue.js的语法并列比较

温故知新 | Vue.js进阶必会,编写你的第一个Vue.js插件

从零开始使用JavaScript制作自己的命令行(CLI工具)

Vue.js中编写更好的v-for循环的6种技巧

fIjyM3R.png!web

如果对你有帮助,还可以 在看、留言、 转发 ,这是对作者最大的帮助。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK