> **来源:[研报客](https://pc.yanbaoke.cn)** # 鸿蒙编程语言白皮书总结 ## 核心内容 鸿蒙操作系统支持多语言开发,主要包含 **ArkTS**、**仓颉** 和 **C/C++**,三者相互配合、互不替代,形成优势互补,共同支撑鸿蒙应用生态。此外,鸿蒙还支持 **JavaScript**、**TypeScript**、**Dart**、**Kotlin**、**Python**、**Go**、**Rust**、**Java**、**Julia** 等语言,基于主流跨平台框架进行开发。 ## 主要观点 - **ArkTS** 是动态类型语言,主打易学易用、生态丰富、极简开发和持续创新,适用于动态更新、快速构建、与 TS/JS 互通等场景。 - **仓颉** 是静态类型语言,主打高性能、强安全、跨平台和智能化,适用于高吞吐量、高并发、系统级交互、AI 辅助开发等场景。 - **C/C++** 提供底层性能支持,适用于游戏引擎、物理仿真、音视频编解码等对性能要求极高的场景。 - 鸿蒙支持语言互操作,开发者可以通过 **Node-API**、**ohos.ark_interop** 等机制实现 ArkTS 与 C/C++、仓颉与 ArkTS 的高效交互。 - 鸿蒙语言生态覆盖“开发-运行-安全-生态-沉淀”全链路,解决传统开发模式中的效率瓶颈、性能损耗、安全风险、多端割裂及历史资产浪费等问题。 ## 关键信息 ### 1. ArkTS 主要特性 - **并发编程模型**:支持 `TaskPool` 和 `Worker`,引入 `Sendable` 对象模型,提升并发通信性能。 - **声明式语法**:结合 ArkUI 提供声明式 UI 开发能力,提升开发效率。 - **标准库**:提供丰富的标准库,如数据结构、算法、XML、二进制 Buffer、URL 解析等。 - **模块化管理**:支持模块化开发、编译、打包和运行,提升大型复杂应用的管理效率。 - **语言规则**:不支持结构化类型、不支持更改对象布局、强制启用空安全检查,提升代码健壮性。 - **运行时与编译器**:使用 **ArkCompiler** 编译为 `.abc` 字节码,由 **ArkTS 运行时** 执行,支持混合执行模式(解释器、JIT、AOT)。 ### 2. 仓颉主要特性 - **静态类型系统**:类型在编译期确定,提升类型安全性和编译效率。 - **高性能与低时延**:通过静态编译、内存共享、并发模型优化,提升运行性能。 - **跨平台能力**:支持跨 OS 平台运行,包括鸿蒙、Android、iOS、Windows、Linux、MacOS 等。 - **智能化**:支持面向 LLM 的 Agent DSL,便于开发智能体应用。 - **开源生态**:仓颉模块(编译器、运行时、标准库等)均已开源,支持社区化开发。 - **内存管理**:支持自动内存管理,具备并发 GC、低时延、内存整理等特性,适用于时延敏感和内存受限场景。 - **并发编程**:提供轻量用户态线程和无锁并发数据结构,简化并发编程流程。 ### 3. C/C++ 支持 - **开发组件**:提供 **NDK**、**libc**、**标准 C++ 运行时库** 和 **毕昇编译器**,支持 C/C++ 开发。 - **互操作能力**:支持与 ArkTS、仓颉的模块化互操作,通过封装为扩展模块提升性能。 - **适用场景**:主要适用于性能敏感、底层系统交互、硬件加速等场景。 ### 4. 语言互操作 - **Node-API**:实现 ArkTS 与 C/C++ 互操作,提供跨平台、稳定 API,支持 I/O、CPU 密集型、OS 底层能力。 - **仓颉互操作**:通过 `ohos.ark_interop` 实现与 ArkTS 互操作,支持声明式接口、零拷贝数据传输等机制。 - **互操作优化**:支持 `@C` 注解、`foreign` 关键字、`@FastNative` 等,降低互操作开销,提升性能。 ### 5. 适用场景 - **高效开发**:适用于快速构建、UI 开发、与 TS/JS 互通等场景,ArkTS 与仓颉提供不同优势。 - **高性能**:适用于高吞吐量、高并发、系统交互、AI 交互等场景,仓颉通过静态编译和并发模型实现高性能。 - **安全**:通过类型系统和内存管理机制,保障应用运行安全。 - **跨平台**:支持跨 OS 平台运行,实现“同构开发、异构运行”。 - **技术资产保护**:支持复用现有 TS/JS 生态,提供语言兼容和模块化管理。 - **AI 辅助开发**:仓颉支持面向 LLM 的 Agent DSL,简化 AI 应用开发。 - **智能化**:支持多 Agent 协同、多轮对话、智能体开发等。 ## 语言选型建议 | 语言 | 适用场景 | 推荐级别 | 性能优化建议 | |--------------|------------------------------------|----------|--------------| | ArkTS | 动态更新、快速构建、UI 开发 | ☑ 推荐 | 使用 Sendable 对象、TaskPool 并发模型 | | 仓颉 | 高性能、高并发、AI 交互、内存敏感 | ☑ 推荐 | 使用静态编译、并发模型、内存优化 | | C/C++ | 硬件加速、性能敏感、底层交互 | ⚠ 特殊场景使用 | 封装为扩展模块,优化内存和并发 | ## 总结 鸿蒙编程语言体系为开发者提供了多样化的选择,通过 ArkTS、仓颉和 C/C++ 的协同,构建了高效、安全、智能、跨平台的开发环境。语言互操作机制进一步提升了不同语言之间的协作效率,降低了开发复杂度。鸿蒙语言生态持续演进,为开发者提供了更完善的工具链和开发体验。