The Birth of Zig 101

2025/12/28

As the (main) writer of Go 101 series of books and during the phase of migirating my main language from Go to Zig, I received many requests to write a "Zig 101" book.

I accepted the requests and decided to write the book about two years ago.

Two years later, in December 2025, the book is finally coming, a bit later than I had initially anticipated.

There are two main reasons for this delay.

First, I needed time to become comfortable with the Zig programming language. To achieve that, over the past two years, my primary focus has been developing a new markup language called TapirMD. TapirMD is implemented entirely in Zig, and through this project. Building this project from the ground up gave me deep, hands-on experience with the language. (Originally, I planned to implement TapirMD in Go, but a change introduced in Go 1.22 led me to switch. Since then, Go is no longer my favorite language.)

Second, I’ve decided to write all my future books (including Zig 101) using TapirMD. This meant I had to wait until TapirMD reached a sufficiently stable state.

For years, my older books were written in either raw HTML or Markdown. HTML is fully featured, but it is verbose, error-prone, and offers poor readability as source text. Markdown is simple and readable, but its limited features make it unsuitable for complex books. I considered several more powerful markup languages, but ultimately rejected them because I found they are cluttered or complex (just my personal opinion).

Eventually, I decided to develop a new markup language (TapirMD) from scratch: one that would be powerful enough for complex books yet remain highly readable and syntactically simple.

Since then, TapirMD has gone through several design iterations and improvements. Now, in December 2025, it is approaching its v0.1.0 release. It’s finally time to start writing the Zig 101 book.

More precisely, Zig 101 is not just a book, it is also a website. The site will document my learning experiences and insights into the Zig programming language. If you’re interested in working with Zig, stay tuned!