Fluxは、あらゆる状況においてRustのエラー処理よりも優れていると主張しているわけではありませんResult。呼び出し元にすべてのエラーケースを静的に処理させたい大規模ライブラリの場合は、型付き戻り値の方が適しています。一方、try/throw/catchモデルは、結果型を20個の呼び出しフレームに渡して処理するのではなく、高レベルでエラーを捕捉したいシステムコードに適しています。
Fluxは、借用チェッカーの保証が多少の手間をかける価値があると考える組織において、Rustの代替となることを主張しているわけではありません。そのような組織は確かに存在し、彼らの選択は正当化されます。
Fluxが主張しているのは、「借用チェッカーと戦う」と「規律に完全に頼る」の間には、大きな、そして十分に満たされていない領域が存在するということだ。それは、自分が何をしているのかを理解しているプログラマーが、プログラム全体に対してオプトインしなければならないグローバルメモリモデルなしに、特定の型に対する所有権、関数に対する契約、インターフェースに対する特性の強制、テンプレートに対するコンパイル時の制約検証といった、真の安全ツールを求める領域だ。それは、16ビットアライメントとビッグエンディアンのバイト順序を持つ13ビット符号付き整数を、抽象化ではなく第一級の型として表現できるほど表現力豊かな型システムを持つu16領域だ。それは、ビット操作が読みやすく、制御フローが意味を明確に示し、言語があなたがプロフェッショナルであることを前提としている領域だ。
Fluxはまさにそのような領域のために設計されており、RustとZigの両社が未開拓のまま残していた領域でもある。