鸿蒙编程语言整体框架
鸿蒙生态系统支持多编程语言开发,主要语言包括ArkTS、仓颉和C/C++,三者各具特色并相互补充。
ArkTS概述
- ArkTS基于TypeScript,增强静态检查和类型推断能力,提升代码健壮性和性能。
- 支持并发编程模型(TaskPool和Worker)、声明式UI开发、强大的标准库和模块化管理。
- ArkTS与TS/JS生态高效互操作,复用现有技术资产。
仓颉概述
- 仓颉是静态类型、静态编译语言,提供高性能、强安全、跨平台和智能化特性。
- 开源社区化开发和运作,支持条件编译和跨平台代码共享。
- 仓颉特性:高性能(全栈优化、轻量线程、无锁并发)、强安全(静态类型、自动内存管理、运行时检查)、跨平台(静态编译、按需加载)、智能化(Agent DSL)。
C/C++概述
- 鸿蒙应用开发全面支持C/C++,提供开发套件(NDK)及工具链。
- C/C++代码可通过跨语言互操作封装为ArkTS、仓颉扩展模块。
- C/C++适用于极致性能、生态框架兼容和行业标准场景。
语言互操作介绍
- ArkTS与C/C++互操作:使用Node-API实现,支持系统模块封装和核心功能封装。
- 仓颉与C/C++互操作:支持C函数调用和跨语言数据转换,提供低互操作开销机制。
- 仓颉与ArkTS互操作:使用ohos.ark_interop库,提供JSValue、JSContext、JSCallInfo等数据结构。
- ArkTS调用仓颉:通过互操作库加载仓颉模块并调用接口。
- 仓颉调用ArkTS:通过ohos.ark_interop库加载ArkTS系统并调用接口。
- 仓颉提供声明式互操作宏机制,简化互操作代码编写。
其他编程语言
- 除ArkTS、仓颉和C/C++外,鸿蒙也支持JavaScript、TypeScript、Dart、Kotlin等语言基于主流跨平台框架进行开发。
- Python、Go、Rust、Java、Julia等语言社区也在积极支持鸿蒙发展。
鸿蒙编程语言适用场景
高效开发
- ArkTS:兼容TS语法、扩展高频基础库、支持声明式UI开发、继承TS/JS生态。
- 仓颉:静态类型系统、简明语法、多范式支持、丰富标准库、快速成长的生态。
- 适用场景:领域框架开发、异步耗时业务开发、AI交互富文本开发。
高性能
- ArkTS:混合执行模式(AOT、解释器、JIT)、动态加载与懒加载、SmartGC。
- 仓颉:静态类型和静态编译优化、低时延高效率的自动内存管理、简洁轻量的并发编程。
- 适用场景:UI界面刷新、应用冷启动、频繁与native层交互。
安全
- ArkTS:应用字节码文件合法性校验、代码签名与运行时验签。
- 仓颉:静态类型系统、编译和运行时安全检测、自动内存管理、运行时漏洞利用缓解机制。
- 适用场景:涉及金融交易对业务逻辑有安全要求的场景。
跨平台
- ArkTS:平台无关的方舟字节码、多开发平台编译及调试工具链、主流操作系统运行时。
- 仓颉:多平台编译运行、平台条件编译、跨平台调试。
- 适用场景:跨平台工具库、电商场景。
技术资产保护
- ArkTS:提供ArkGuard源码混淆工具。
- 仓颉:提供外形混淆、数据混淆、控制流混淆等多种混淆技术。
- 适用场景:金融行业对业务逻辑有保密要求场景。
AI辅助开发
- 鸿蒙ArkTS、仓颉目前开源训练语料储备匮乏,导致主流大模型适配与生成能力偏弱。
- 鸿蒙将与开发者共同努力,实现应用全流程Agentic智能开发,提升代码生成正确率,减少人工干预。
智能化
- 仓颉通过元编程和DSL能力构建Agent DSL能力,支持单Agent编程、多Agent协同、MCP协议等。
- 适用场景:鸿蒙智能应用开发。
鸿蒙编程语言演进策略
语言演进整体策略
- ArkTS:基于TS和JS,扩展声明式和并发编程能力,持续提升开发效率和性能。
- 仓颉:深耕高性能、强安全、跨平台、智能化领域,打造鸿蒙生态应用开发的首选静态编程语言。
未来一年语言演进策略
- ArkTS:引入并发编程、类型系统完善、现代化语法等特性,提升开发效率和性能,增强AI友好性。
- 仓颉:提升开发者体验,从语言特性构建、兼容现有生态、AI亲和、完善工具链易用性等方面持续建设语言能力。
- DevEco Studio:增强对仓颉的支持,包括AI Coding CLI版、UI界面预览与分析、测试框架等。
- 资料文档:持续优化应用开发指南、Samples、最佳实践、FAQ等资源。
- 跨平台:构建仓颉跨平台应用调优能力,完善跨平台开发体验。
- 互操作:提供ArkTS和仓颉双向互操作的声明宏,构建跨语言调试能力,引入渐进/动态类型改进互操作机制。