Dart 概述

Dart是谷歌开发的编程语言,和另外一门Go语言一样,都是谷歌主导开发的。

2011 年谷歌发布,由 V8 引擎核心工程师 Lars Bak、Kasper Lund 开发。

最初用来替代 JavaScript 做网页开发;后来成为 Flutter 框架唯一语言,主打客户端跨平台(移动端、网页、桌面)

谷歌内部大量核心业务(YouTube、GCP、基础设施)重度使用,社区生态庞大,独立于客户端体系。

关键是:它可以一套代码生成多个平台的应用,Android IOS MACOS LINUX Windows等等。

整体定位

Dart 是面向客户端优化的跨平台开发语言,目标是打造高效多端开发体验,配套灵活运行时支撑应用框架;它是 Flutter 的底层基础,同时原生支持代码格式化、静态分析、单元测试等开发工具能力,可编译部署到网页移动端桌面端等多平台。

技术特性

开发过程支持热重载。

生产过程,可以对多平台输出高质量的应用。

类型安全

  • 静态强类型(sound typing):强制类型匹配,但依靠类型推断可省略类型标注;
  • 兼容动态类型 dynamic,搭配运行时校验,兼顾灵活动态编码场景。

健全空安全 sound null safety

默认变量不可为 null,仅显式声明才可存空;依靠静态分析杜绝运行时空指针异常,非空变量在运行期也永久保证不为空。

内置库、异步调用、可空 / 非空类型、箭头函数、生成器、流、getter 等语法特性

丰富的Dart 标准库

  • dart:core:所有 Dart 程序必备,提供基础内置类型、集合与核心通用能力
  • dart:collection:拓展集合,包含队列、链表、哈希映射、二叉树等高级容器
  • dart:convert:数据编解码工具,支持 JSON、UTF-8 等格式互转
  • dart:math:数学常量、运算函数与随机数生成工具
  • dart:async:异步编程基础,提供 Future、Stream 等核心异步类
  • dart:typed_data:高效定长二进制数组(如 8 位无符号整型)、SIMD 数值类型
  • dart:io:非网页端专用,提供文件、Socket、HTTP 等 IO 操作能力
  • dart:ffi:C 语言风格外部函数接口,实现与 C 代码互操作
  • dart:isolate:并发隔离线程,类似线程但不共享内存,仅通过消息通信
  • dart:js_interop / package:web:网页端专用,操作 HTML 元素、浏览器 DOM、JS 互调

除内置核心库外,官方维护大量配套工具包:charactersintlhttpcryptomarkdown。 社区第三方开发者还发布数千扩展包,支持 XML、Windows 系统集成、SQLite、数据压缩等功能。

Dart 多运行平台

Dart 依靠多套编译技术实现多端运行:

1. 原生平台(移动端 / 桌面端)

内置两套编译体系:带即时编译(JIT)的 Dart 虚拟机、预编译(AOT)编译器,可生成机器码。

2. Web 网页平台

提供开发 / 生产两套编译方案,能将 Dart 编译为 JavaScript 或 WebAssembly。

Flutter 是基于 Dart 平台的主流跨端 UI 工具包,配套完整开发工具与界面库,可开发 iOS、Android、macOS、Windows、Linux、网页应用。

Dart 原生编译(JIT + AOT)
  • 开发阶段(JIT):虚拟机增量编译支持热重载,实时性能监控、完整调试工具,迭代效率极高;
  • 生产发布(AOT):编译为 ARM /x64 原生机器码,应用启动速度稳定且快速;
  • 运行时内置完善内存管理:分代垃圾回收、快速对象分配,同时严格执行 Dart 健全类型安全规则。
Dart Web 网页编译(JS / WasmGC)

将 Dart 代码转为 JS 在浏览器(如 Chrome V8 引擎)运行,也可编译为 WebAssembly:

  1. 开发编译模式:增量 JS 编译器,支持热重载,快速调试迭代;
  2. 生产 JS 编译:优化压缩、死代码消除,产出体积小、执行高效的 JS;
  3. WasmGC 生产编译:编译为高性能 WebAssembly GC 代码,运行速度大幅提升。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注