6 月 23 日消息,在 HDC 2024 华为开发者大会主题演讲上,华为终端 BG 软件部总裁龚体正式官宣了华为自研仓颉编程语言。该语言历经 5 年研发沉淀,现已开启开发者预览。
而在 HDC 2024 后续“仓颉语言助力鸿蒙原生应用高效开发”议程中,华为编程语言首席技术专家、中国工商银行、力扣 LeetCode 分享了有关仓颉的更多信息,为大家带来一手内容汇总:
仓颉编程语言简介
华为编程语言首席技术专家、仓颉编程语言首席架构师冯新宇首先上台演讲,对仓颉编程语言进行了简单介绍。冯新宇也是南京大学计算机科学与技术系教授,有关他的介绍可以查看此前的相关报道。
仓颉编程语言是一款面向全场景智能化应用开发的现代编程语言,具有原生智能化、天生全场景、高性能,强安全等技术特色,拥有现代语言特性的集成、全方位的编译优化和运行时实现、简洁易用的智能 Agent 声明式编程框架、以及开箱即用的 IDE 工具链支持。
据冯新宇教授介绍,仓颉采用模块化分层设计,空载内存只需要 2.08MB,而移动端主流语言 S 需要 4.91MB(预计指 Swift),移动端主流语言 J 需要 58.97MB(预计指 Java)。
此外,仓颉支持全并发 GC(注:GC 指 Garbage Collection,编程中的垃圾回收),相比传统 GC 可减少 STW 停顿(是指在执行垃圾回收时,应用的其他线程都被暂停),提高应用线程的流畅性。
仓颉还支持多种语法糖(相当于代码中的简写形式)、并发优化、和 C 语言的互操作等。
中国工商银行仓颉开发试点
冯新宇教授介绍完毕后,中国工商银行的李可研究员介绍了该机构对仓颉语言的开发实践。
中国工商银行目前已完成首个鸿蒙版 App 的开发,同时采用了仓颉和 ArkTS 语言,现已上架华为应用商店。
中国工商银行对仓颉的试点主要集中在工行个人手机银行的“收支日历”功能,如下图所示,收支明细数据加载及展示涉及较为复杂的数据解析及视图渲染工作。
仓颉在页面编写方面支持声明式 UI,整体语法还是比较简洁的;仓颉还可以和 ArkTS 语言混合开发,基本是声明 + 调用的常规步骤,也比较简单。
李可研究员表示,中国工商银行后续将逐步扩大仓颉语言的试点范围。
力扣的仓颉全量开发
最后,力扣 LeetCode 移动端技术组长叶海健上台演讲。力扣是一个程序员 IT 技术职业化提升平台,目前已有 1800 万全球注册用户,不少程序员在上面练习算法题。
据介绍,力扣鸿蒙原生应用使用了仓颉语言全量开发,该团队还开发了一些仓颉的第三方库。
力扣开发者也提到了声明式 UI 开发,并且仓颉提供了很简单的 Web 组件(下图右下角所示),可以直接调用。
仓颉具备类型推导能力,比如自动推导泛型、自动推导 let 变量类型、自动推导函数返回值类型等,可以减少开发者的类型标注负担。
仓颉还在安全方面进行了优化,编译期避免了空指针、空引用等问题,要求变量必须初始化再使用,而且不提供 null 值。
此外,仓颉原生支持高并发,线程切换的代码相比 Java 和 Swift 更加简洁,还有枚举支持构造函数等。
仓颉还引入了 AI 辅助编程工具(BitFun FireCoder),力扣已于 5 月接入使用该工具,号称“20% 的代码可由 AI 自动生成”。
力扣鸿蒙原生应用投入 2 人研发,历时 4 个月完成了 App 核心功能开发,代码总量 20K+ 行。
性能方面,力扣鸿蒙原生应用(仓颉开发)的冷启动速度、多图文章浏览浏览体验相比 Java & Kotlin 版本都有提升,大家具体看下图效果:
力扣鸿蒙原生应用于 2024 年 2 月 1 日启动开发,计划于 7 月 31 日上架首个 Beta 版本,9 月 30 日上架商用版 1.0,并于 11 月 30 日上架商用版 1.1。
华为 HDC 2024 开发者大会专题