Rust本身是很不错的语言,带来了现代语言的不少新特性。让C++ 11这样的语言相形见绌,从而使得后续的C++标准有了更多的现代语言的特性加入,演化速度也加快了。另外,在数据库、浏览器核心、互联网的基础组件等领域有多个重量级的应用,特别是异步运行时tokio的普及,使得Rust被越来越多的人接受,所以其热度高。
Zig则是在Rust之后出现的语言,其定位比Rust更底层,目标是替代C语言,定位明确清晰。也因此,其有一套自己的设计理念,以高性能、生成精炼的代码、简洁清晰、容易学习和使用为主要目标,有如下的设计禅学(使用zig zen命令就可以看到):
* Communicate intent precisely.
* Edge cases matter.
* Favor reading code over writing code.
* Only one obvious way to do things.
* Runtime crashes are better than bugs.
* Compile errors are better than runtime crashes.
* Incremental improvements.
* Avoid local maximums.
* Reduce the amount one must remember.
* Focus on code rather than style.
* Resource allocation may fail; resource deallocation must succeed.
* Memory is a resource.
* Together we serve the users.
现在使用Zig的大型项目主要有金融交易数据库tigerbeetle、js运行时node.js的替代品bun、游戏引擎mach。和Rust比起来还是少了不少。但这些项目的代码都是非常优秀的,从这里能够学到很多软件设计的非常好的理念,大型软件是如何组织和设计的,学到Zig语言的各种使用方式和技巧。
我在自己使用Zig语言写了几千行代码,看了Zig的编译器和标准库的代码,一些Zig的优秀项目的代码后,深切的感受到Zig是一个优秀的语言。有下面这些感受(来自国外的网友ludwig)
- insane comptime features
- inline/unroll at comptime out of the box
- vectorization / simd support out the box
- no C gotchas
- you can dynamically link to it from any C ABI compatible language
- amazing error management
- the build system is 10000* better than cmake (and you can/should use it in c
and cpp projects regardless of zig)
- zig's compiler is also a C and C++ compiler
- simpler than C
数学联邦政治世界观提示您:看后求收藏(同人小说网http://tongren.me),接着再看更方便。