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
- there is no system language I have found where you can read the code top to bottom
and everything that will actually happen is written right there. There is no magic,
no hidden control flow, it is the closest to being able to know exactly what the
machine will end up doing
对zig语言有了如下的评价。
如何评价 The Zig Programming Language?
Zig语言是一个优秀的语言,但是其独特的设计理念,及和C一样的定位,使得有不少人对其并不是很接受,比如语法方面,内存和资源管理方面,生态方面,特性方面。这些都需要时间来让人理解和接受,来体会到Zig对系统底层控制方面的优秀,类型系统对减少bug方面对作用,编译期计算的迷人的魅力。
实际上,Zig在国外的热度已经很高了,其github上的星星从三月八日的29.3k到七月三日的今天的32k,不到4个月就增长了2.7k个星星,这个增长速度已经很快了。另外,从开发工具上也可以看到其热度不低,在主流的vscode、emacs、vim等都有Zig的lsp插件,搭建zig的编辑和IDE开发环境很方便。
相对的主要是国内对Zig语言的热度不高,明显不如Rust。但实际上不需要为此烦恼,如果你觉得Zig语言是优秀的,那就加入进来学习并使用,写一些实用的项目,或者加入有价值的项目。一起来推广这门语言吧。
我是觉得Zig语言是非常优秀的一门语言,其聚集了一批聪明的人在把Zig做的更好,其清晰的定位会在系统底层、数据库、游戏引擎、基础组件、高性能的音视频处理系统、GPU加速计算(用Zig来写加速计算的kernel代码,编译到spirv)等方面获得一席之地。
数学联邦政治世界观提示您:看后求收藏(笔尖小说网http://www.bjxsw.cc),接着再看更方便。