ZigのI/Oインターフェース全面刷新「Writergate」、ジェネリック汚染を根絶
Writergate: Zig I/O Interface Overhaul

ZigのI/Oインターフェースが2025年8月に大規模刷新され、`GenericWriter`や`AnyWriter`などが削除された。旧APIはジェネリック型が構造体全体に感染し、コードベースを汚染する問題があった。新APIでは具象型とvtableを採用し、バッファリングを呼び出し側が管理。さらにZig 0.16では`Io`インスタンスを`Allocator`のように依存注入し、非同期I/Oや正確なエラー処理を実現する。
旧インターフェースは、それらを含む構造体を汚染する。
HNでの議論
22- bayesnet
Zigを書かない者として、コード例にライターの型注釈があれば、古いジェネリックAPIと新しい`std.Io`インターフェースの違いが分かるのに、と思いました。
- sarreph
Zigを書かない(しかし近いうちに書き始めたいと思っている)者として、この記事を読んで、新しいインターフェースは古いインターフェースよりもかなり冗長に見えることに気づきました。つまり、以前の実装の3行に対して6行です。Zigは冗長さを減らそうとしているという印象を持っていましたが、これは言語の他のアップデートを象徴するものではないかもしれませんね?
- Jowsey
一つの投稿にClaudeらしさが多すぎる。やめてください。