なぜ Pin は使いにくいのか

  • Pin<Ptr> は「単なる」標準ライブラリで定義された型です
  • これは、コア言語を拡張することなく、元々の対象読者であった async ランタイムの作成者のニーズを満たしていました
  • その読者層は、その使い勝手の面での欠点をある程度受け入れられました。async のユーザーが Pin を直接扱うことはめったになかったからです

“なぜ Pin はこれほど扱いづらいのかと疑問に思うかもしれません。その答えは主に 歴史的な経緯によるものです。”

Pin<Ptr> は、代替案よりも Rust プロジェクトにとって実装が簡単でした。”

“Pin は、主に世界で async ランタイムを書くおよそ 100 人のために設計されました。 Rust チームは、より単純ではあるものの(コンパイラにとって)、使い勝手に劣る 設計を選びました。”

“より使いやすい提案も存在しましたが、主要な対象読者にとっては複雑すぎるとして 却下されました。しかし、その読者層はその複雑さに対処できました。”