6 月 21 日,在华为开发者大会上,仓颉编程语言正式对外发布。这是一款面向全场景应用开发的现代编程语言,内置定制的 Agent DSL 以及 AI 应用开发框架,可支持面向领域的声明式开发,提供模型部署、智能决策、Agent 协同的框架能力,具备原生智能化、天生全场景、高性能、强安全等特点,主打高效编程、安全可靠、轻松并发、卓越性能、敏捷扩展。
高效编程
仓颉支持面向对象、函数式、命令式等多种编程范式的融合,既支持面向对象编程范式的模块化和灵活性,又支持函数式编程范式的简洁性和高抽象级表达,使得开发者能够根据业务需求,选择最合适的表达方式,简洁高效的开发业务代码。
除此以外,仓颉还借鉴了现代语言中的各种优秀语言特性,包括各种声明式语法和语法糖,除了能让通用场景的编程更加简洁,还可以针对特定场景快速设计领域特定语言(DSL),以提升领域易用性。
安全可靠
编程语言的设计和实现,以及相应工具支持,对于程序质量和安全性有重要影响。 仓颉通过静态类型系统、动静态检查、自动内存管理、以及工具链来提升程序的安全性。
轻松并发
仓颉语言为并发编程提供了一种简单灵活的方式,通过轻量化线程模型和高效易用的无锁并发对象让并发编程变得轻松,将高效并发处理的能力直接置于开发者的手中。这一节将详细介绍仓颉并发编程两大关键技术的核心思想、设计、以及带来的显著优势,揭示仓颉语言如何实现 “轻松并发”。
卓越性能
仓颉语言通过值类型、多层级静态分析优化和超轻量运行时, 在计算机语言基准测试 Benchmarks Game 上,相比业界同类语言取得了较为明显的性能优
工具支持
仓颉开发者工具聚焦用户开发体验,围绕编译构建、调试、性能分析与 LLT 验证等开发流程,提供包管理器、调试器、原生测试框架、IDE 等常用的开发工具,帮助开发者提升开发与问题定位效率。开发者工具从以下几方面显著提升开发效率,降低开发负担:
- 包管理器:自动依赖管理和用户自定义构建,提供一站式编译构建支持;
- 调试器:跨语言调试和仓颉线程调试,提升调试体验;
- 原始测试框架:单元测试、基准测试和 Mocking 框架,为用户提供了最先进的测试体验;
- IDE 插件:VSCode 底座以及鸿蒙 DevEco Studio 底座实现开箱即用。
同时,仓颉编程语言有一套完备且易用的 IDE 工具链实现开箱即用,具体如下:
- 多范式编程:支持函数式、命令式和面向对象等多种范式,它不仅融合了高阶函数、代数数据类型、模式匹配、泛型等函数式语言的先进特性,还有封装、接口、继承、子类型多态等支持模块化开发的面向对象语言特性,以及值类型、全局函数等简洁高效的命令式语言特性。开发者可以根据开发偏好或应用场景,选用不同的编程范式;
- 语法简明高效:提供了一系列简明高效的语法,旨在减少冗余书写、提升开发效率,例如插值字符串、主构造函数、Flow 表达式、match、if-let、while-let 和重导出等语法,让开发者可以用较少编码表达相关逻辑;
- 类型推断:支持类型推断,即编译器根据变量或表达式的上下文信息自动推测出类型,而不需要开发者在开发阶段标注类型,降低编程复杂度;
- 内存安全:支持自动内存管理,并在运行时进行数组下标越界检查、溢出检查等,确保运行时内存安全。
- 类型安全:仓颉编程语言是静态强类型语言,通过编译时类型检查尽早识别程序错误,降低运行时风险,也便于代码维护。同时,仓颉支持 Null Safety、隐世类型转换、初始化检查等能力,进一步提升程序的安全性。
- 高效并发:提供了用户态轻量化线程(原生协程),以及简单易用的并发编程机制,保证并发场景的高效开发和运行。
- 跨语言互操作:支持和 C、ArkTS/JS、Java 、Python 等编程语言的互操作,并采用便捷的声明式编程范式,可实现对其他语言库的高效复用和生态兼容。
- 内置库功能丰富:提供了功能丰富的内置库,涉及数据结构、常用算法、数学计算、正则匹配、系统交互、文件操作、网络通信、数据库访问、日志打印、解压缩、编解码、加解密和序列化等功能。
据了解,仓颉编程语言的出现主要是为了应对生态范式的变革给未来的智能应用以及 Agent 开发带来新的诉求和挑战,比如:构建效率、空间计算应用的流畅交互体验、多 Agent 协同、系统性安全问题等。
当前在鸿蒙原生应用的开发中,支持声明式 UI,一次开发、多端部署的 ArkTS 语言已经被广泛使用。仓颉语言当前已经完成设计与实现并启动了开发者预览,未来将与 ArkTS 共同发展,为鸿蒙原生应用开发者提供极致高效的开发体验。
为了让仓颉编程语言能够更好地贴合大模型浪潮下 “AI for language,language for AI” 的形态,Agent DSL 和原生 AI 应用框架、DSL KIT、Actor 和分布式编程、IDE AI 赋能、可视并行化调优等语言能力正在规划当中。
关于仓颉编程语言更多信息已公开,可查看:https://developer.huawei.com/consumer/cn/cangjie/