個人的には、それはすごく間違ってると思う。Zigの言語は劇的に変わるわけじゃなくて、新しい、非常に強力なAPIを追加してるんだ。ほとんどのZigの要素がアロケーターを関数のパラメータとして受け取るのと同じように、IOを行いたい関数は、望ましい抽象を提供するオブジェクトを受け入れるようになるから、呼び出し元が理想的な実装を定義できるようになるんだ。つまり、コードをアップグレードしたり改善したりするのが嫌なら、Zigを使わない理由はないよ。今日書いたコードは明日も動くし、明日書くコードは新しいIOインターフェースを持つ可能性が高いけど、それはその標準の抽象を使いたいから。使いたくないなら、既存のコードはそのまま動くよ。今日のように、アロケートしたいけどAllocatorを渡したくないなら、どこからでもstd.heap.page_allocator.allocを呼び出せるしね。でも、その抽象がすごく便利だから、Zigはそれをすごく使いやすくサポートしてるから、みんなその改善されたAPIを提供するコードを書くんだ。ちなみに、0.15.2でほぼ安定している新しいReader/Writer APIに合わせて、すべてのコードをアップグレードするのが心配だったけど、既存のプロジェクトに数行追加するだけで済んだ。新しいAPIのおかげで、すごく良いコードになるから、たくさんの関数をリファクタリングすることを選んでるよ。可読性もパフォーマンスも両方良くなるしね。リファクタリングしなきゃいけないわけじゃないけど、古いAPIは問題なく動くし、新しいAPIは単に使いやすくて、パフォーマンスも良くて、読みやすくて理解しやすい。やりたいからやってるだけで、やらなきゃいけないわけじゃないよ。赤いdiffが一番良いってみんな知ってるし、新しいstd.Io APIは物事をやるのが簡単な方法を提供してる。でも、Zigのすべてのように、自分が書きたいコードを書くこともできるし、それを自分でやりたいなら、それも完全にサポートされてるよ!