Rust 之后,为何还需要Zig语言?

1,394 阅读4分钟

本文首发,公众号:码农渔夫

我是渔夫,现在在国内某某云程序员,业余独立开发者,探索副业,生活、技术、非科班转码经验等相关文章,欢迎关注,和渔夫一起成长。

大家好,我是渔夫。

最近,许多新语言层出不穷,有一个特点就是,不管是谁,出来号称就是要吊打 C 或 C++语言,都称自己很牛逼,安全、可靠、性能强悍等。

在这些新语言的出现,尤其在近代编程语言中,最值得关注的是 Rust 和 Zig 语言,当然了,C 和 C++ 有时间也是值得花时间去了解的,有要考研啥的 C 还是得熟悉。

Zig

首先,来看看 Zig 语言有那些特点,维基百科说 Zig 是一种快速,高性能,静态类型、命令式、且通用编译的系统编程语言。也声称自己比C更快,性能更高。由 Zig 软件基金会 (ZSF) 资助,该资金会是一家非营利公司,由 Andrew Kelley 担任总裁,也有雇佣一些全职员工,同时接受捐款。

Rust

而 Rust 是静态编译、强类型、多范式的通用编程语言,旨在构建底层内存安全应用程序,在设计上 Rust 速度惊人且内存利用率极高。

因为 Rust 不像比如 Golang 、Java 等带有运行时和垃圾回收的,,所以在底层开发性能上肯定不如没 GC 语言的好。Rust 没有 GC ,它能够胜任对性能要求特别高的服务,如能轻松在嵌入式设备上运行,还能轻松和其他语言集成。

Rust 的第一个稳定版本 1.0 ,于2015年5月15日发布的,随后也逐渐开始流行。

我们应该如何选择一门语言作为长期学习呢?

可以比较这两种语言的特点:

  • 内存管理
  • 安全性
  • 学习难度
  • 社区流行
  • 成熟项目

内存管理

  • Rust:Rust 是出了名的是,使用检查器(Borrow Checker)来处理内存,它能够让程序员在编码时,能够自由的控制内存的生命周期,与其还有使用所有权(ownership)、借用(borrowing)和生命周期(lifetimes)来确保内存安全性,减少了内存泄漏和悬垂指针等,在 C++ 中常犯的问题,有人说,写 Rust 就是与编辑器作斗争,因为它开始就帮忙检查大部分程序员可能犯的问题。

  • Zig 同样也是声称取代C语言,也是着力于内存安全,但是与Rust不同的是,它采用更直接的方法,鼓励显式内存管理,让程序员能够手动管理内存分配和释放,同时提供内置的错误检测来防止常见的内存错误。

安全性

  • Rust:Rust 的安全性建立在类型系统和借用检查器之上,确保在编译时捕获潜在的安全漏洞。

  • Zig也追求安全性,但更注重显式性和可预测性。能够让程序员有更多的控制权,但也需要更多的责任来确保代码的安全性。

学习难度

  • Rust 的学习曲线相对比较陡峭一些,尤其是对于初学者来说,你需要不间断的去学习,否则很容易忘记的。还有一些相关概念,也是需要记住,不过好在官网的文章比较全,而且社区比较活跃,学习资料也很丰富,一旦你掌握了 Rust 会容易写出更加安全和高性能的代码的。

  • Zig 在语法和概念上相对简单,初学者更容易上手一些。

社区流行

  • Rust 社区可以说是真的活跃,在开源社区中也拥有强大的社区支持,现在也有大量的第三方库和框架,被广泛用于Web开发、操作系统底层等领域,很多工业操作系统都是 Rust 来开发的。

  • 而 Zig 的话,相对于 Rust 是个比较年轻的语言,现在社区规模还是比较小,但也在不断增长。它的设计理念也吸引了很多的开发者,特别是对系统级编程和低级控制有兴趣的程序员。

成熟项目

  • Rust 出道早一些,现在已经被广泛用于生产环境中,比如被 Linux 社区正式采用构建、云原生底层部分组件也出现了许多身影,web3等领域也大规模采用 Rust。还有国内字节跳动的飞书也是 Rust 构建的。

  • Zig 现在还处于早期阶段,还未在大规模生产项目中得到广泛应用,不过未来可期。

如果你想学习 Rust 可以参加到开源社区,及清华举办的开发操作系统训练营等活动,都是可以提高对 Rust 学习和巩固的。