https://zenn.dev/mattn/articles/3b01651b7a42b3

og-base_z4sxah.png

はじめに

最近あたらしいプログラミング言語を覚えてないなと思ったので、Zig を触ってみる事にした。

と言っても随分前から気になっていて ziglings もやっていたんだけど、ちょっと飽きてしまった。

JSON パーサ

昔から新しいプログラミング言語で遊ぶ時には JSON パーサか Lisp インタプリタを書く様にしているけど、今回は JSON パーサにした。

https://github.com/mattn/zig-json ※ 実用的な物ではありません

といっても単純にパースして Value 構造体に納めるまでしか実装してないし、シリアライザも無い。気が向いたら続きを作る。

触感

ziglings を触っていたのである程度、触感はあったのだけど JSON パーサを実装してみて Zig がだいたいどんな言語なのか分かってきた。一言で言うなれば

「Rust ぽいC言語」

別の言い回しをするなら

「Result と Optional のあるC言語」

といった所だと思う。

個人的な Zig のオススメどころ

何がすごいって、ReleaseSmall だと思う。fizzbuzz をC言語と Rust、それと Zig でビルドしてみた。

ちょっとビックリする。サイズだけの話でもないが、個人的な感想で間違いを恐れずに言ってしまうと、Linux に組み込むなら正直 Rust より Zig の方が向いてると思ってる。(個人的な感想)

また LLVM で最適化されたコードを吐くのでケースによっては Rust より速い事もある。