Dart:Flutter 和 Fuchsia OS 背后的语言。
Flutter 1.0 于 2018 年 12 月 4 日正式发布。此后,Dart 程序员的需求日益增长。因为整个 Flutter 应用开发完全基于 Dart。
科技巨头谷歌似乎对这门语言有宏伟的计划。因此,Dart 被应用于 Flutter 和 Fuchsia OS 等两个大型项目。
这里简要介绍了 dart 的功能、用例及其强大的功能,这将告诉你为什么 Google 选择它用于 flutter 和 fuchsia OS。
Dart 于 2011 年 10 月 10 日在丹麦的 GOTO 会议上首次亮相。Dart 1.0 于 2013 年 11 月发布,Dart 2.0 于 2018 年 8 月发布,并配备了健全的类型系统。
Dart 是一种通用语言,最初由 Google 开发。
Dart 是一种非常强大的语言,你可以使用它来编写从简单的脚本到功能齐全的原生应用(例如 Flutter)。它主要应用于四个平台:原生移动应用、Web 应用、桌面应用和服务端应用。
- 设计者: Lars Bak 和 Kasper Lund
- 首次出现—— 2011年10月10日
- 类型规则 — 1.x:可选,2.x:静态
- 许可证 — BSD
- 文件扩展名 —
.dart
Dart 主要支持五种范式:
- 脚本
- 面向对象
- 至关重要的
- 反光的
- 功能
Dart 受到五种语言的影响:
Dart 是 ALGOL 语言家族的成员,与 C、C++、Java、C#、JavaScript 等语言同属一个家族。
所以,如果你有 C、Swift 或 Java 的背景,你会感觉就像在飞镖里一样。它的语法更接近 C。
- C#
- JavaScript
- Erlang
- Smalltalk
- 强谈
它有四种主要实现:
- Dart 虚拟机
- dart2js 编译器
- 扑
- Fuchsia 操作系统
运行 Dart 代码的方法
Dart 在各种平台上实现。因此,它需要根据平台提供多种运行 Dart 代码的方式。以下是运行 Dart 代码的三种主要方式:
- 通过转编译为 JavaScript
- 通过 DartVM
- 通过 AOT 编译过程
通过转编译为 JavaScript
Dart 代码可以编译为 JavaScript,以便在浏览器上运行。为此,Dart 使用源到源编译器 (dart2js) 将其代码转换为 JavaScript。
因此,当您想在浏览器上部署 Dart 代码时,首先需要通过 dart2js 编译器转换该代码。dart2js 会将您的代码转换为 JavaScript。因此它可以在所有现代浏览器上运行。
令人惊奇的是,dart2js 不仅能生成 JavaScript 代码,还能生成优化的 JavaScript 代码。这意味着与手写的 JavaScript 代码相比,转换后的 Dart 代码在浏览器上运行速度更快。
通过 DartVM
就像 Java 有 JVM 一样,Dart 也有自己的用于运行 dart 的虚拟机,代号为 DartVM。
如果您想创建控制台应用或服务器应用,可以使用 DartVM 来运行 Dart 代码。DartVM 是一款高度优化、功能强大且快速的虚拟机,可以在几分之一秒内运行您的 Dart 代码。
DartVM 直接自带 Dart SDK。您只需在环境变量中设置 SDK 的路径即可开始使用。现在,您的想象力才是唯一的限制……
通过 AOT 编译过程
AOT 指的是预先编译 (Ahead-Of-Time compilation),指的是将高级代码(例如 C、C++)或中间代码(例如 Java 字节码或 .NET Framework 的 CIL 代码)转换为本机机器码(即系统相关的代码)的编译过程。该代码可以在能够理解它的特定机器上运行。
AOT 生成机器优化的代码,就像标准的本机编译器一样。
使用 Flutter 构建的应用程序使用相同的 AOT 编译过程从单个代码库生成原生 Android 和 iOS 应用程序。
SnapShots:为了更快地执行代码
根据维基百科:SnapShot 是系统在特定时间点的状态。
同样的概念也适用于此,SnapShots 是存储对象和其他运行时数据的文件。
因此下次启动时无需编译整个程序,编译器将从快照文件中获取已保存的数据,并仅编译新添加的数据。从而加快启动和代码执行速度。
快照是 DartVM 的核心部分。
dart 中有两种类型的 SnapShot 文件:
- 脚本快照
- 完整快照
脚本快照
Dart 程序可以编译成 SnapShots 文件。这些文件包含预先解析并可执行的程序代码和依赖项。这可以实现快速启动。
完整快照
dart 核心库可以编译成快照文件,以便快速加载库。
Dart VM 为核心库提供了一个预构建快照,该快照会在运行时加载。这就是 DartVM 提供更快代码执行速度的原因。
好了,伙计们,以上就是 Dart 的特性和用例。它本身就是一种非常强大的语言。如果你打算进入应用开发领域,那么你绝对应该开始学习 Dart 和 Flutter。我会尽可能多地分享关于 Dart 和 Flutter 的知识。如果我遗漏了什么,请随时告诉我。我很乐意学习。