最近我尝试了一门新的编程语言——仓颉(Cangjie),它是一种面向全场景应用开发的通用编程语言,兼顾了开发效率和运行性能。作为一名Linux开发者,我对新语言的探索总是充满兴趣,今天就和大家分享一下我在Linux环境下安装仓颉工具链并运行第一个仓颉程序的实践经验。

为什么选择仓颉语言?

在正式开始之前,先简单聊聊我为什么对仓颉感兴趣。仓颉语言有几个非常吸引我的特点:

  • 多后端支持:仓颉支持CJNative和CJVM两种后端,CJNative可以直接编译为原生二进制代码,性能更高;CJVM则编译为字节码,跨平台性更好。
  • 多范式编程:仓颉融合了函数式、命令式和面向对象编程范式,开发者可以根据场景自由选择。
  • 类型安全与内存安全:静态强类型语言,编译时类型检查,自动内存管理,运行时数组越界检查,安全性高。
  • 高效并发:内置用户态轻量线程(协程),并发编程简单高效。
  • 生态兼容性强:支持与C语言互操作,便于复用现有生态。
  • 丰富的内置库:数据结构、算法、网络通信、文件操作、序列化、加解密等功能一应俱全。

这些特性让我觉得仓颉语言非常适合在Linux环境下进行系统级开发和应用开发。

Linux环境准备

我使用的是Ubuntu 18.04(x86_64架构),根据官方文档,仓颉工具链对Linux环境的要求如下:

架构 环境要求
x86_64 glibc 2.22,Linux Kernel 4.12或更高版本,libstdc++ 6.0.24或更高版本
aarch64 glibc 2.27,Linux Kernel 4.15或更高版本,libstdc++ 6.0.24或更高版本

在Ubuntu 18.04上,还需要安装一些额外的依赖:

sudo apt-get install binutils libc-dev libc++-dev libgcc-7-dev

此外,仓颉工具链还依赖OpenSSL 3组件,这个组件可能无法直接从默认软件源安装,需要手动安装(具体安装方法可参考官方附录)。

安装仓颉工具链

首先,从仓颉官网上下载适合自己平台的安装包,比如我使用的是x86_64架构的Linux系统,就下载:

Cangjie-x.y.z-linux_x64.tar.gz

下载完成后,解压安装包:

tar xvf Cangjie-x.y.z-linux_x64.tar.gz

解压后会得到一个名为cangjie的目录,进入该目录并执行环境配置脚本:

source cangjie/envsetup.sh

执行完毕后,验证一下安装是否成功:

cjc -v

如果看到类似下面的输出,说明安装成功:

Cangjie Compiler version x.y.z

注意:envsetup.sh脚本只在当前shell环境中生效,如果希望每次打开终端都能直接使用仓颉工具链,可以在~/.bashrc~/.zshrc文件末尾添加:

# 假设仓颉安装在/home/user/cangjie
source /home/user/cangjie/envsetup.sh

编写并运行第一个仓颉程序

环境准备好了,接下来我们写一个简单的仓颉程序,感受一下仓颉语言的魅力。

新建一个文件hello.cj,内容如下:

// hello.cj
main() {
    println("你好,仓颉")
}

仓颉语言的注释语法和C/C++类似,单行注释用//,多行注释用/* */

然后使用仓颉编译器cjc编译程序:

cjc hello.cj -o hello

编译成功后,会生成一个名为hello的可执行文件,运行它:

./hello

你会看到输出:

你好,仓颉

是不是很简单?从安装到运行第一个程序,整个过程非常顺畅,仓颉语言的工具链设计得很友好,基本上是开箱即用。

卸载与更新仓颉工具链

如果你想卸载仓颉工具链,只需要删除安装目录即可:

rm -rf /path/to/cangjie

同时,记得移除之前在.bashrc.zshrc中添加的环境变量配置。

如果需要更新仓颉工具链,先卸载旧版本,再按照上述步骤安装新版本即可。

总结与感受

通过这次实践,我对仓颉语言有了初步的了解。仓颉语言的设计非常现代化,语法简洁高效,类型安全和内存安全的特性让我在编写代码时更加放心。多范式编程的支持也让我在不同场景下有更多选择。

仓颉工具链在Linux上的安装和使用体验也非常不错,官方提供了详细的安装指导和环境配置脚本,基本上没有遇到什么坑点。

后续我会继续深入探索仓颉语言的高级特性,比如并发编程、元编程、与C语言的互操作等,期待能在实际项目中发挥仓颉语言的优势。

希望这篇文章能帮助你快速上手仓颉语言,欢迎大家一起交流学习!

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐