6月15日、Pekka Enberg氏が「Why I am not yet ready to switch to Zig from Rust」と題した記事を公開した。この記事では、ZigからRustに移行しない理由について詳しく紹介されている。
以下に、その内容を簡潔にまとめて紹介する。
C言語への愛着とその問題点
Enberg氏は、C言語のプログラミングに対する愛着を述べつつ、C言語が安全でないことや低レベルな言語であることに言及している。多くのコードを手作業で書かなければならない点や、デバッグに多くの時間を費やす必要がある点が問題とされている。
Rustのメモリ安全性と複雑性
Rustが登場した際、Enberg氏はそのメモリ安全性に魅力を感じたが、ツールの変化やborrow checker(借用チェッカー)の理解に苦労し、一度は諦めた。しかし、2021年にRustをプロフェッショナルに使用し始めた際、次第にRustの複雑さに慣れ、生産性が向上したと述べている。
Zigへの興味とその限界
Zigに興味を持ったきっかけとして、BunやTigerBeetleというプロジェクトが挙げられている。ZigはCに近い感触があり、初期の探索では好感を持ったが、ツールの変化やエコシステムの未成熟さから、最終的にはRustに戻った。
Zigを選ばなかった理由
- comptimeの感触:Enberg氏は、comptime(コンパイル時の実行)に対して懐疑的であり、プリプロセッサマクロの方が好ましいと述べている。
- SIGSEGVの追跡:Zigでプログラムを作成する際にセグメンテーションフォルト(SIGSEGV)を追跡する必要が多かったことを問題視している。
- メモリリーク:Zigではメモリリークが発生しやすいと感じたが、Rustではborrow checkerによりこれが防がれていると述べている。
- 書籍の不足:Zigに関する技術書がほとんどなく、学習が難しいと感じている。
- エコシステムの未成熟:Zigのエコシステムが未成熟であり、ツールチェーンもまだ不安定だと述べている。
- 業界の投資の不足:RustはMicrosoftやLinuxカーネルで採用されており、長期的に支持される見込みがあるが、Zigはまだそのレベルに達していないと述べている。
結論
Enberg氏はZigを非常に気に入っているが、現時点ではRustに留まる決断をした。Zigが成長し、より安定したエコシステムやツールが整うまで待つと述べている。
詳細はWhat Are CSS Container Style Queries Good For?を参照していただきたい。
記事の紹介ありがとうございます。
細かいことですが、一段落目に"ZigからRustに移行しない理由"という間違いがあります。(正しくはRustからZig)
Pekka Enberg 氏の Zig と Rust の間の旅と検討について聞くのは興味深いです。プログラミング言語を選択する際の意思決定プロセスがいかに微妙であるかがわかります。
geometry dash
Zigに移行する旨みがないって話だろうなぁ