HeadlinesBriefing favicon HeadlinesBriefing.com

RustからZigへ: JSONPathライブラリ移植記

Hacker News •
×

7年間Rust開発者として活動した後、自分のJSONPathライブラリ(jsonpath-rust)をzig-jsonpathとして再実装することでZigを探求しました。最初の驚きはIDEサポートでした: Zigは構文ハイライト以外ほとんど提供しておらず、CLIツールに戻ることを強いられました。これはかえって新鮮でした; build.zigは`zig build test`や`zig build compliance`といったコマンドでテストとコンプライアンススイートをエレガントに処理します。この経験が、フルIDEからhelix + alacritty + zellijのセットアップへの移行を促しました。

Zigのフラットな構造哲学は、Rustのネストされた階層と対照的です。Rustがファイルの断片化を奨励するのに対し、Zigは`model_<companion>`のようなシンプルな命名規則で、より大きくフラットなファイルへと導きます。これは本格的な階層が必要になる前に、予想以上にスケールします。ネストによるインポートの摩擦が深いフォルダを敬遠させ、単一ファイル内でのセクションスライスによるナビゲーションが驚くほど効果的です。

Rustの関数的スタイルと表現力豊かな型システムから来た私は、クロスランゲージの直感に頼り、自分のZigでの判断が深いZigイディオムではなくRustの習慣によって形作られたことを認めました。RFC 9535のJSONPath仕様を使った比較は公平に感じられました — おもちゃではなく、実際に使えるプロジェクトだからです。Cの後継としてのZigの低レベルで軽量なアプローチは魅力的ですが、学習曲線にはRustのパターンを忘れることが含まれます。

主要エンティティ: 企業: Jet Brains