文章目录
- 一、前言
- 二、功能特点
- 2.1 高效编程
- 2.2 安全可靠
- 2.3 轻松并发
- 2.4 卓越性能
- 2.5 敏捷扩展
- 2.6 工具支持
- 2.7 未来工作规划
- 三、 开发工具
- 3.1 仓颉语言 IDE 插件使用指南
- 3.2 各平台 IDE 插件下载安装
- 3.3 仓颉语言命令行工具使用指南
- 四、入门指南
- 4.1 总体流程
- 4.2 报名公测
- 4.3 下载软件
- 4.4 安装 DevEco Studio
- 4.5 安装仓颉插件
- 4.6 创建仓颉工程
- 4.7 使用模拟器运行应用/服务
- 五、学习资源
- 5.1 视频课程
- 5.2 示例代码
- 5.3 相关书籍
- 5.4 技术文章
- 六、总结
一、前言
随着万物互联以及智能时代的到来,软件的形态将发生巨大的变化。一方面,移动应用
和 移动互联网
领域仍然强力驱动 人机交互
、设备协同
、智能化
、安全性
等方向的创新,另一方面人工智能也同样驱动软件朝智能化、端边云协同等方向演进。新技术、新场景下应用软件的开发对 编程语言
提出了新的诉求和挑战。
仓颉[jié],是 华为 自研的一款面向全场景智能的** 新一代编程语言**,是华为为 鸿蒙 量身打造的全场景智能应用编程语言,作为 鸿蒙生态 中的重要组成部分,旨在支持鸿蒙系统下的全场景应用开发,主打“原生智能化、天生全场景、高性能,强安全。
仓颉编程语言官网:https://cangjie-lang.cn/
二、功能特点
仓颉编程语言 是一款面向 全场景
智能的 新一代
编程语言,主打原生智能化、天生全场景、高性能、强安全。主要应用于鸿蒙原生应用及服务应用等场景中,为开发者提供良好的编程体验。
2.1 高效编程
仓颉支持面向对象、函数式、命令式等多种编程范式的融合,既支持面向对象编程范式的模块化和灵活性,又支持函数式编程范式的简洁性和高抽象级表达,使得开发者能够根据业务需求,选择最合适的表达方式,简洁高效地开发业务代码。
除此以外,仓颉还借鉴了现代语言中的各种优秀语言特性,包括各种声明式语法和语法糖,除了能让通用场景的编程更加简洁,还可以针对特定场景快速设计领域特定语言 (DSL)
,以提升领域易用性。
2.2 安全可靠
编程语言的设计和实现,以及相应工具支持,对于程序质量和安全性有重要影响。 仓颉通过静态类型系统、动静态检查、自动内存管理、以及工具链来提升程序的安全性。
2.3 轻松并发
仓颉语言为并发编程提供了一种简单灵活的方式,通过轻量化线程模型和高效易用的无锁并发对象让并发编程变得轻松,将高效并发处理的能力直接置于开发者的手中。这一节将详细介绍仓颉并发编程两大关键技术的核心思想、设计、以及带来的显著优势,揭示仓颉语言如何实现“轻松并发”。
2.4 卓越性能
仓颉语言通过值类型、多层级静态分析优化和超轻量运行时,在计算机语言基准测试 Benchmarks Game
上,相比业界同类语言取得了较为明显的性能优势。
2.5 敏捷扩展
现代软件开发中,领域特定语言 DSL
由于其贴近领域问题,可以降低软件开发和维护的复杂度,因而承担了重要的作用。从 DSL
实现角度,内部 DSL(embedded DSL,简称 eDSL
)是将一种现有的通用编程语言作为宿主语言,使用宿主语言提供的语言特性来扩展面向领域的语法,其相比完全独立构建 DSL
的实现方式(专门的语法解析、编译优化及配套工具等)具备以下优势:
- 可复用宿主语言的语言特性,表达力强。
- 可复用宿主语言配套设施(库生态,编译工具,开发环境等),构建门槛低。
- 无缝嵌入到宿主语言工程中,可以高效的穿越“领域”进行数据交互。
因而eDSL
被广泛应用于各个领域,比如UI
布局、数据库访问、云基础设施部署、编译脚本等场景。相应的,仓颉编程语言通过提供丰富的语言扩展能力,来支持面向领域的eDSL
构建。
本章以下内容首先着重介绍仓颉提供语言扩展能力,包括基于原生语法的扩展能力,以及允许开发者构建新语法的元编程能力,最后以声明式 UI
为例介绍如何使用以上能力以及带来的效果。
2.6 工具支持
仓颉开发者工具 聚焦用户开发体验,围绕编译构建、调试、性能分析与 LLT
验证等开发流程,提供包管理器、调试器、原生测试框架、IDE
等常用的开发工具,帮助开发者提升开发与问题定位效率。开发者工具从以下几方面显著提升开发效率,降低开发负担:
- 包管理器:支持自动依赖管理和用户自定义构建,提供一站式编译构建能力。
- 调试器:支持跨语言调试和多线程调试,提升调试体验。
- 测试框架:包括单元测试框架、
Mocking
测试框架和基准测试框架。 - IDE:开发者在
VSCode
底座以及Huawei DevEco Studio
底座安装仓颉插件后,实现开箱即用。
2.7 未来工作规划
仓颉将始终坚持高效编程、安全可靠、轻松并发、卓越性能的设计理念,给开发者带来友好的编程体验以及高性能的运行体验。同时思考在大模型浪潮下 AI for PL、PL for AI 的形态。以下介绍一些已经在我们规划中的、令人兴奋的语言能力。
三、 开发工具
3.1 仓颉语言 IDE 插件使用指南
仓颉语言提供了 Visual Studio Code(简称 VSCode) 插件,通过在 VSCode
中安装仓颉插件和仓颉 SDK
,可以为开发者提供语言服务、工程管理、编译构建、调试服务、格式化、代码覆盖率统计的功能。本文档介绍如何在 VSCode 中安装仓颉插件,以及如何使用插件提供的功能。
代码静态检查能力正在构建中,不建议单击仓颉 CodeCheck 相关操作,否则可能提示没有
cjlint
。
3.2 各平台 IDE 插件下载安装
-
Windows 平台
- 在
VSCode
官网下载Windows
版本VSCode
安装包。 - 按照安装包导引,将
VSCode
安装在自定义路径中,然后启动。
- 在
-
Linux 平台
在VSCode
官网下载Linux
版本 VSCode 安装包。 -
macOS 平台
在VSCode
官网下载macOS
版本 VSCode 安装包。
3.3 仓颉语言命令行工具使用指南
- 包管理工具
CJPM
(Cangjie Package Manager) 是仓颉语言的 官方包管理工具
,用于管理、维护仓颉项目的模块系统,并且提供简易统一的编译入口,支持自定义编译命令。
- 调试工具
cjdb
是一款基于 lldb
开发的仓颉程序命令行调试工具,为仓颉开发者提供程序调试的能力,特性列表如下:
- 调试器启动被调程序(launch,attach)
- 源码断点/函数断点/条件断点(breakpoint)
- 观察点(watchpoint)
- 程序运行(s,n, finish, continue)
- 变量查看/变量修改(print,set)
- 表达式计算(expr)
- 仓颉线程查看(cjthread)
- 格式化工具
CJFMT
(Cangjie Formatter)仓颉 格式化工具
是仓颉语言提供的代码自动格式化工具。
- 覆盖率工具
cjcov
(Cangjie Coverage)是仓颉语言的官方覆盖率统计工具,用于生成仓颉语言程序的覆盖率报告。
- 性能分析工具
cjprof
(Cangjie Profile)是仓颉语言的性能分析工具,支持以下功能:
- 对仓颉语言程序进行
CPU
热点函数采样,导出采样数据。 - 对热点函数采样数据进行分析,生成
CPU
热点函数统计报告或火焰图。 - 导出仓颉语言应用程序堆内存,并对其进行分析生成分析报告。
🎯注意:目前 cjprof
仅支持 Linux
系统。
四、入门指南
4.1 总体流程
使用仓颉开发 HarmonyOS
应用的总体流程如下:
- 报名公测,获取
DevEco Studio
和仓颉插件。 - 准备开发环境:安装
DevEco Studio
和 仓颉插件。 - 创建仓颉工程。
- 运行应用/服务。
4.2 报名公测
当前,仓颉在公开测试阶段,体验 ·HarmonyOS· 应用开发的仓颉插件,需要申请公测权限。进入仓颉开发者预览版招募报名页面,单击 ”立刻报名“ 进入报名页面,并填写报名信息。报名成功后,一般一个工作日内审核通过。报名成功和审核通过,都会收到邮件提示。
4.3 下载软件
公测申请审核通过后,请前往下载中心下载对应版本的 DevEco Studio
和仓颉插件。
4.4 安装 DevEco Studio
安装仓颉插件前,请先安装 DevEco Studio,并创建和运行Hello World验证 DevEco Studio 开发环境正常。
4.5 安装仓颉插件
🤖说明:
安装仓颉插件后,需要重新启动 DevEco Studio
。初始化工程时,会自动配置仓颉 SDK
,仓颉 SDK
存放的路径在 macOS 系统下默认为 $HOME/.cangjie-sdk
,Windows 下默认为 %USERPROFILE%/.cangjie-sdk
。如需指定 .cangjie-sdk
的存放路径,请在安装插件前配置系统环境变量,变量名为 DEVECO_CANGJIE_PATH
,变量值为要存放的路径。
配置系统环境变量后,请重启 DevEco Studio
,使环境变量生效。
4.6 创建仓颉工程
在开发一个仓颉应用/服务时,首先需要根据工程创建向导,创建一个新的仓颉工程,工具会自动生成对应的代码和资源模板。
🎯在运行 DevEco Studio 工程时,建议每一个运行窗口有
2GB
以上的可用内存空间。
4.7 使用模拟器运行应用/服务
仓颉语言编写的 HarmonyOS
应用/服务,支持在 Phone
中运行,可以采用 USB
连接方式或者无线调试的连接方式,具体的运行操作请参见使用本地真机运行应用/服务。
如果没有连接开发设备,DecEco Studio
右上角设备栏会显示 ”No Devices“`,此时无法运行应用/服务,可以通过使用模拟器运行应用/服务。
五、学习资源
5.1 视频课程
学习地址:https://cangjie-lang.cn/learn-resource
5.2 示例代码
学习地址:https://cangjie-lang.cn/learn-resource
5.3 相关书籍
学习地址:https://cangjie-lang.cn/learn-resource
5.4 技术文章
学习地址:https://cangjie-lang.cn/learn-resource
六、总结
新的语言出来大家都是从零开始,同一起跑线出发,你会选择学习跟进吗?