既然有了javascript为什么还要弄出来一个dart?

这几天在学dart和flutter,真的发现dart和js一模一样,知道google为了取代js才有开发出了dart这个语言,但有一个问题有点不明白,google为什么要再去弄一个本来就有的语言?为了取代js弄出来dart,为了取代java弄出来golang,他们为什么要这样呢?

上面的问题有点想不明白,有懂的吗?


回答:

你要考虑历史进程啊……

Dart 是 2009 年提出来的,2011 年正式公布。

今天你觉得前端技术发展日新月异,每个几个月一大堆新 API 就出来了,仿佛 JS 无所无能。

但十几年前可不是这样的,2011 年 IE 都还有大量市场份额,JS 规范工作推进缓慢,ES4 胎死腹中,浏览器厂商们勾心斗角……我们今天讲前端发展的一个重要里程碑 —— ES6,还要 4 年才会公布。

Google 作为浏览器大厂,在当时肯定是感觉 JS 这么搞下去就完犊子了,所以才想到要另起炉灶的。你问为啥 Google 不去继续发展 JS?当然也努力了啊。但显然人家是没打算把鸡蛋放同一个篮子里,Dart 是做另一手准备而已。毕竟 JS 不是一门 Google 专属的语言,它能不能怎么发展光靠 Google 自己说了又不算。现在我们知道 JS 发展得很好,但十几年前你敢打包票说未来一定是今天这样吗?


至于为啥 Flutter 框架选择了 Dart,这就是另一个话题了。

流传比较广的说法是因为当时 Flutter 想要搞各种事情,都需要编译器级别的底层支持,但当时 Google 内部除了 Dart 组,别的语言组都不鸟 Flutter(因为 Dart 本来就半死不活,没啥事儿干 ?),所以两组人马一拍即合相见恨晚惺惺相惜……


至于 Google 为啥要要去 Java 搞 Go(其实一开始搞 Go 是为了替换掉谷歌内部原有的 C++ 项目的,后来慢慢把 Java 的部分也替代掉了属于“意外之喜”),你怕不是忘它跟甲骨文因为 JDK 打了十多年的官司、最后判赔 88 亿美元吧。虽然后来又翻案了,但这种事情 Google 还怎能再来次“活动复刻”?


回答:

Dart的官方网站第一句话就说明了原因:
他与JS不是用一个场景, 也并不是一模一样


回答:

为了取代java弄出来golang?


回答:

dart和js真的一模一样吗,我这就去写flutter(我真的不知道)


回答:

不是一摸一样,只是比较相似,作为现代语言,相互借鉴,所以都比较相似,还是有不少区别:

  1. 类型系统:

    • JavaScript: JavaScript是一种动态类型语言,意味着你无需在声明变量时指定其类型,类型会在运行时确定。
    • Dart: Dart是一种静态类型语言,你需要在声明变量时显式指定其类型,类型检查在编译时进行。
  2. 变量声明:

    • JavaScript: 使用varletconst关键字来声明变量,而变量的类型会根据值的类型而变化。
    • Dart: 使用varfinalconst来声明变量,但在Dart中你可以显式指定变量的类型,例如intdouble等。
  3. 函数定义:

    • JavaScript: 使用function关键字来定义函数,函数的参数和返回类型可以不显式指定。
    • Dart: 使用void、参数类型和箭头=>来定义函数,例如void myFunction(int a, int b) => print(a + b);
  4. 类与对象:

    • JavaScript: JavaScript是基于原型的语言,没有经典的类,而是通过原型链实现对象继承。
    • Dart: Dart是基于类的语言,支持类和对象的概念,提供了经典的面向对象编程模型。
  5. 异步编程:

    • JavaScript: 使用回调函数、Promises或async/await来处理异步编程。
    • Dart: 使用Futureasync/await来处理异步编程,使得异步代码更加清晰和易读。
  6. 模块化:

    • JavaScript: 在ES6及以上版本中引入了importexport语法来实现模块化。
    • Dart: Dart从一开始就支持模块化,使用importexport来组织代码。

以上是 既然有了javascript为什么还要弄出来一个dart? 的全部内容, 来源链接: utcz.com/p/945502.html

回到顶部