这几天在学dart和flutter,真的发现dart和js一模一样,知道google为了取代js才有开发出了dart这个语言,但有一个问题有点不明白,google为什么要再去弄一个本来就有的语言?为了取代js弄出来dart,为了取代java弄出来golang,他们为什么要这样呢?
上面的问题有点想不明白,有懂的吗?
这几天在学dart和flutter,真的发现dart和js一模一样,知道google为了取代js才有开发出了dart这个语言,但有一个问题有点不明白,google为什么要再去弄一个本来就有的语言?为了取代js弄出来dart,为了取代java弄出来golang,他们为什么要这样呢?
上面的问题有点想不明白,有懂的吗?
这个问题涉及到编程语言的发展和选择,以及Google的策略。首先,JavaScript和Dart都是编程语言,它们各有优点和缺点。JavaScript最初被设计为在浏览器中运行,而Dart则是为了在服务器端运行而设计的。
Google开发Dart的原因主要有以下几点:
至于为什么Google要取代Java开发Golang,原因也是多方面的:
总之,编程语言的选择是根据具体需求和目标来决定的。不同的语言有不同的优点和缺点,因此需要根据实际情况进行选择。
不是一摸一样,只是比较相似,作为现代语言,相互借鉴,所以都比较相似,还是有不少区别:
类型系统:
变量声明:
var
、let
或const
关键字来声明变量,而变量的类型会根据值的类型而变化。var
、final
或const
来声明变量,但在Dart中你可以显式指定变量的类型,例如int
、double
等。函数定义:
function
关键字来定义函数,函数的参数和返回类型可以不显式指定。void
、参数类型和箭头=>
来定义函数,例如void myFunction(int a, int b) => print(a + b);
。类与对象:
异步编程:
Future
和async/await
来处理异步编程,使得异步代码更加清晰和易读。模块化:
import
和export
语法来实现模块化。import
和export
来组织代码。15 回答8.4k 阅读
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
你要考虑历史进程啊……
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 还怎能再来次“活动复刻”?