なぜ Pin は使いにくいのか
Pin<Ptr>は「単なる」標準ライブラリで定義された型です- これは、コア言語を拡張することなく、元々の対象読者であった async ランタイムの作成者のニーズを満たしていました
- その読者層は、その使い勝手の面での欠点をある程度受け入れられました。
asyncのユーザーがPinを直接扱うことはめったになかったからです
“なぜ Pin はこれほど扱いづらいのかと疑問に思うかもしれません。その答えは主に 歴史的な経緯によるものです。”
“Pin<Ptr> は、代替案よりも Rust プロジェクトにとって実装が簡単でした。”
“Pin は、主に世界で async ランタイムを書くおよそ 100 人のために設計されました。 Rust チームは、より単純ではあるものの(コンパイラにとって)、使い勝手に劣る 設計を選びました。”
“より使いやすい提案も存在しましたが、主要な対象読者にとっては複雑すぎるとして 却下されました。しかし、その読者層はその複雑さに対処できました。”