1、仓颉语言介绍
仓颉编程语言是一款面向全场景智能的新一代编程语言,主打原生智能化、天生全场景、高性能、强安全。主要应用于鸿蒙原生应用及服务应用等场景中,为开发者提供良好的编程体验。
2、仓颉语言的特点
- 多后端支持:仓颉编程语言支持 CJNative 和 CJVM 两种后端。其中 CJNative 后端将代码编译为原生二进制代码,直接在操作系统层面上运行;CJVM 后端将代码编译为字节码,基于 VM(虚拟机)进行运行。本次发布仅提供 CJNative 后端 SDK,CJVM 后端 SDK 敬请期待。
- 语法简明高效 :仓颉编程语言提供了一系列简明高效的语法,旨在减少冗余书写、提升开发效率,例如插值字符串、主构造函数、Flow 表达式、
match和重导出等语法,让开发者可以用较少编码表达相关逻辑。 - 多范式编程:仓颉编程语言支持函数式、命令式和面向对象等多范式编程,融合了高阶函数、代数数据类型、模式匹配、泛型等函数式语言的先进特性,还有封装、接口、继承、子类型多态等支持模块化开发的面向对象语言特性,以及值类型、全局函数等简洁高效的命令式语言特性。开发者可以根据开发偏好或应用场景,选用不同的编程范式。
- 类型安全:仓颉编程语言是静态强类型语言,通过编译时类型检查尽早识别程序错误,降低运行时风险,也便于代码维护。同时,仓颉编译器提供了强大的类型推断能力,可以减少类型标注工作,提高开发效率。
- 内存安全:仓颉编程语言支持自动内存管理,并在运行时进行数组下标越界检查、溢出检查等操作,确保运行时内存安全。
- 高效并发:仓颉编程语言提供了用户态轻量化线程(原生协程),以及简单易用的并发编程机制,保证并发场景的高效开发和运行。
- 兼容语言生态:仓颉编程语言支持和 C 等编程语言的互操作,并采用便捷的声明式编程范式,可实现对其他语言库的高效复用和生态兼容。
- 领域易扩展 :仓颉编程语言提供了基于词法宏的元编程能力,支持在编译时变换代码。此外,还提供了尾随
lambda、属性、操作符重载、部分关键字可省略等特性,开发者可由此深度定制程序的语法和语义,这有利于内嵌式领域专用语言(Embedded Domain Specific Languages,EDSL)的构建。 - 助力 UI 开发 :UI 开发是构建端侧应用的重要环节,基于仓颉编程语言的元编程和尾随
lambda等特性,用户可以搭建声明式 UI 开发框架,提升 UI 开发效率和体验。 - 内置库功能丰富:仓颉编程语言提供了功能丰富的内置库,涉及数据结构、常用算法、数学计算、正则匹配、系统交互、文件操作、网络通信、数据库访问、日志打印、解压缩、编解码、加解密和序列化等功能。
3、仓颉语言发展历程
|----------------|----------------------------------------------------------------------------------|
| 时间节点 | 核心事件与解读 |
| 2019年 | 项目诞生:仓颉编程语言项目在华为正式启动,旨在打造一款面向全场景智能的新一代编程语言。 |
| 2024年6月 | 首次正式亮相:在当年的华为开发者大会(HDC 2024)上,仓颉编程语言首次公开亮相,明确了其"下一代编程语言"的定位。 |
| 2025年6月 | 战略定位明确 :在HDC 2025上,华为发布了《鸿蒙编程语言白皮书》,正式将仓颉提升至与ArkTS同等的主力编程语言地位,共同支撑鸿蒙生态。 |
| 2025年7月30日 | 正式开源 :华为按计划在Gitcode平台上正式开源了仓颉语言,内容包括编译器、运行时和标准库等核心组件,标志着其进入依托社区共同发展的新阶段。 |
4、应用场景
鸿蒙应用场景
在鸿蒙应用场景中,仓颉编程语言凭借对现代语言特性的集成、全方位的编译优化与运行时实现,以及开箱即用的 IDE 工具链支持,为开发者缔造了友好的开发体验和卓越的程序性能。此外,面向未来的鸿蒙 AI 原生应用开发,仓颉语言提供了面向开发者的全套内嵌 Agent DSL 的编程框架以及智能化开发工具,便于开发者高效地完成鸿蒙 AI 原生应用的开发工作。
服务端/云化场景
在云化场景中,仓颉编程语言提供了微服务应用开发框架,提供基于编译前处理模式的IOC容器、AOP切面编程、 ORM和事务管理、端到端的异步请求以及与其他组件快速对接等能力,帮助开发者快速构建微服务应用,并且通过仓颉轻量级用户态线程以及高性能网络协议库,能够充分利用系统资源,高效开发出高性能云服务应用。同时,仓颉社区协同合作伙伴以及开发者,共同构建了丰富的三方库及中间件生态,方便开发者构建仓颉程序。
5、仓颉编程语言下载
https://cangjie-lang.cn/download

6、CodeArts编程软件下载
https://devcloud.cn-north-4.huaweicloud.com/codeartside/home?product=cangjie#

7、创建第一个仓颉工程
注意:创建项目时路径中不要有中文



8、仓颉HelloWorld程序
/* 文件名:hello.cj
功能:输出Hello World!
说明:这是第一个仓颉语言程序
*/
main(){
println("Hello, World!") //输出Hello World!
}
仓颉(Cangjie)语言核心语法要点
程序入口
程序从 main 函数开始执行。
源文件
源文件使用 .cj 作为扩展名。
注释
支持两种注释格式:
- 单行注释:
// - 多行注释:
/* ... */
代码块
使用大括号 {} 来定义代码块,例如函数体和控制流结构。
语句结束
语句结尾不强制要求 使用分号 ;,但语法上允许使用(通常是可选的)。
字符串
字符串使用双引号 " 括起来。
输出函数
使用内置函数 println 来输出内容。