https://zenn.dev/mattn/articles/3b01651b7a42b3
最近あたらしいプログラミング言語を覚えてないなと思ったので、Zig を触ってみる事にした。
と言っても随分前から気になっていて ziglings もやっていたんだけど、ちょっと飽きてしまった。
昔から新しいプログラミング言語で遊ぶ時には JSON パーサか Lisp インタプリタを書く様にしているけど、今回は JSON パーサにした。
https://github.com/mattn/zig-json ※ 実用的な物ではありません
といっても単純にパースして Value 構造体に納めるまでしか実装してないし、シリアライザも無い。気が向いたら続きを作る。
ziglings を触っていたのである程度、触感はあったのだけど JSON パーサを実装してみて Zig がだいたいどんな言語なのか分かってきた。一言で言うなれば
「Rust ぽいC言語」
別の言い回しをするなら
「Result と Optional のあるC言語」
といった所だと思う。
何がすごいって、ReleaseSmall だと思う。fizzbuzz をC言語と Rust、それと Zig でビルドしてみた。
ちょっとビックリする。サイズだけの話でもないが、個人的な感想で間違いを恐れずに言ってしまうと、Linux に組み込むなら正直 Rust より Zig の方が向いてると思ってる。(個人的な感想)
また LLVM で最適化されたコードを吐くのでケースによっては Rust より速い事もある。