编程语言学习系列

18 篇文章
Go 语言 6 篇文章
1
为什么是 Go:一门为工程而生的语言
· 8 分钟阅读

为什么是 Go?

你可能会问:为什么要学 Go?编程语言这么多,Python 简单易学、Java 生态成熟、C/C++ 性能无敌、JavaScript 无处不在。Go 有什么特别之处?

2
基础语法:变量、类型与控制流
· 9 分钟阅读

本文基于 Go 1.26。

上一篇我们聊了 Go 的设计理念和第一个 Hello World 程序。这一篇直接上手语法——变量、类型、控制流、函数、复合类型和指针。核心目标只有一个:让你能读懂和写出基本的 Go 代码

3
接口与泛型:Go 的核心抽象机制
· 8 分钟阅读

前两篇我们了解了 Go 的基础语法和并发模型,现在深入 Go 类型系统的两大核心——接口(interface)和泛型(generics)。这两者构成了 Go 抽象机制的基石:接口提供了基于行为的运行时多态,而泛型则带来了类型安全的编译时抽象。

4
错误处理:Go 的多返回值之道
· 6 分钟阅读

Go 的错误处理哲学是"简单、显式、可控"。每个可能出错的函数都可以返回一个错误值,调用方必须显式处理。没有异常、没有隐式传播,一切都在明面上。

5
并发:goroutine、channel 与 context 的艺术
· 19 分钟阅读

并发是 Go 语言区别于其他语言的核心特性。不同于 C++/Java 的线程模型,也不像 JavaScript 的单线程事件循环,Go 提供了一组并发原语——goroutine、channel 和 context,用相对直观的代码写出高性能并发程序。

6
标准库、测试与工具链:Go 工程化实践全景
· 14 分钟阅读

经过前三篇的旅程——为什么选择 Go、基础语法与并发、接口与泛型——现在到了 Go 篇章收官,该把工程化实践串起来了。

Go 的工程化能力同样体现在标准库、测试框架和工具链上。它们构成了 Go 开发者的日常工作环境,支撑快速构建可靠、可维护的软件。

Rust 语言 6 篇文章
7
为什么是 Rust:从 Go 视角认识一门追求零成本抽象的语言
· 7 分钟阅读

本文基于 Rust 1.82(2026-01-23 发布,当前最新稳定版)。Rust 是一门经过实战验证的现代系统编程语言,官方文档在 doc.rust-lang.org,安装指南在 rust-lang.org/tools/install/

为什么是 Rust?

如果你已经掌握了 Go,可能会问:为什么还要学 Rust?Rust 的存在是为了填补 Go 在性能和控制力上的空白。

8
基础语法:变量、类型与模式匹配
· 8 分钟阅读

上一篇我们聊了为什么 Rust 值得学,以及怎么跑通你的第一个 Hello World。这一篇直接上手语法——变量、类型、控制流、函数、模式匹配。核心目标只有一个:让你能读懂和写出 Rust 代码

9
所有权与借用:Rust 内存安全的核心
· 7 分钟阅读

本文基于 Rust 1.80+。

如果你有 Go 或 Java 背景,所有权系统可能是 Rust 中最让你困惑的概念。Go 有垃圾回收器(GC),你很少需要关心内存何时释放。Rust 选择了一条完全不同的路——编译期通过所有权规则保证内存安全,零运行时开销。

10
Trait 与泛型:Rust 的类型抽象系统
· 9 分钟阅读

前几篇我们了解了 Rust 的所有权系统、错误处理和模块管理,现在深入 Rust 类型系统的两大核心——trait(特征)和泛型(generics)。这两者构成了 Rust 抽象机制的基石:trait 提供了基于行为的编译期约束,而泛型则带来了类型安全的参数化编程。

11
错误处理与生命周期:Result、Option 与编译期借用检查
· 9 分钟阅读

如果你习惯了 Go 的 if err != nil,第一次接触 Rust 的错误处理可能会感到困惑。Go 的哲学是显式多返回值,错误只是普通的值。而 Rust 则将错误提升到了类型系统层面——一个可能出错的函数必须在返回类型中显式声明。这种设计带来了零成本抽象,但也引入了初学者最头疼的两个概念:Result<T, E> 枚举和生命周期标注。

12
标准库、并发与 async:Rust 篇章收官
· 8 分钟阅读

经过前四篇的旅程——所有权与借用、类型系统、错误处理、模式匹配——现在到了 Rust 篇章收官,该把零散的知识串起来了。

本篇聚焦 Rust 标准库的并发工具和 async/await 生态。这些是 Rust 与 Go 在并发领域最有趣的对标点:Go 通过 goroutine 和 channel 让并发看起来很简单,Rust 则通过严格的类型系统和所有权约束让并发变得安全可靠。

Zig 语言 6 篇文章
13
为什么是 Zig:从 Go/Rust 视角认识一门新系统语言
· 6 分钟阅读

本文基于 Zig 0.16(2026-04-13 发布,当前最新稳定版)。Zig 是一门仍在快速演进的现代系统编程语言,它的源码仓库已从 GitHub 迁移到 Codeberg,官方下载页在 ziglang.org/download/

为什么是 Zig?

如果你已经熟悉 Go 和 Rust,可能会问:为什么还要看第三门系统语言?Zig 的位置介于两者之间,试图兼顾 C 的轻量、Rust 的现代工具链和 Go 的低门槛。

14
基础语法:用 Go/Rust 经验快速上手 Zig
· 7 分钟阅读

本文基于 Zig 0.16。

上一篇我们聊了为什么 Zig 值得学,以及怎么跑通你的第一个 Hello World。这一篇直接上手语法——变量、类型、控制流、函数、泛型。核心目标只有一个:让你能读懂和写出 Zig 代码

15
错误处理:Go、Rust 之外的第三条路
· 6 分钟阅读

本文基于 Zig 0.16。

三种错误处理范式

错误处理是编程语言设计中最具争议的话题之一。Go 的多返回值、Rust 的 Result<T, E> 枚举、Zig 的错误联合类型——它们代表了三种截然不同的哲学。本文假设你已有 Go 或 Rust 经验,将以此为参照系来理解 Zig 的设计。

16
Zig 内存管理:显式分配器模式
· 6 分钟阅读

本文基于 Zig 0.16。

前几篇我们走过了 Zig 的基础语法和错误处理。现在进入 Zig 最与众不同的部分——内存管理

如果你有 Go 或 Rust 背景,Zig 的内存哲学会让你感到陌生:它既不提供垃圾回收,也不引入所有权系统,而是选择了一条完全不同的路——分配器模式(Allocator Pattern)。这个模式的核心约定极其简单,但影响深远:

17
结构体与 comptime:编译期计算的威力
· 7 分钟阅读

本文基于 Zig 0.16。

前几篇我们完成了基础语法、错误处理和内存分配器,现在进入 Zig 最核心的特性——编译期计算(comptime)。但在此之前,我们先花几分钟快速了解 Zig 的结构体与方法,它们是你理解 comptime 的基石。

18
Zig 标准库、I/O 接口与并发:把知识串起来
· 10 分钟阅读

本文基于 Zig 0.16。

经过前五篇的旅程——语法、错误处理、内存管理、编译期计算、构建系统——现在到了 Zig 篇章收官,该把知识串起来了。

0.16 是两个重要版本的交汇点:标准库容器完成了 Unmanaged 迁移,同时引入了新的 std.Io 接口。这两个变化深刻影响了 Zig 代码的写法。本篇将围绕它们展开,最后用三语言实战对比收束,并给出学习路线和资源。