Future
gpt-4.icon
由来
「Future」という言葉の起源は、1977年に Henry Baker と Carl Hewitt が発表した論文『Actors and Continuous Functionals』まで遡ります。
この論文で、非同期で計算される値を扱う抽象概念として「Future」が初めて提案されました。
その後、並行処理や非同期プログラミングの分野で広く採用され、他の多くの言語やライブラリにも取り入れられました。
意味
「Future」が「未来」という単語から派生している理由は以下の通りです:
Future は「未来的な時点で計算が完了する値」を表しています。
計算結果はまだ準備できていないが、いつかは得られる(=未来の値)というニュアンスです。
実行中のタスクや非同期的に進行する処理を抽象化した「予約票」のような役割を果たします。
たとえば、次のようなイメージです:
1. 非同期な計算を開始した時点で「Future」が返されます。
2. その時点では結果は未定ですが、処理が完了すると値が利用可能になります。
類似概念
Promise
PromiseはFutureに似た概念ですが、約束通り1度だけ値を解決(resolve)するという仕様があります。
Task(C#など):
Futureと似た役割を持つオブジェクトで、非同期操作の進行状況を追跡します。
Deferred(古い用語):
FutureやPromiseのようなものを操作可能な形で提供します。
使われる言語やフレームワーク
Futureという用語は以下のような場面で見られます:
Java: java.util.concurrent.Future
Scala: scala.concurrent.Future
Python: concurrent.futures.Future
Rust: std::future::Future
Flutter
これらはすべて、「非同期的な計算結果をラップし、後でアクセス可能にする」機能を提供しています。
https://en.wikipedia.org/wiki/Futures_and_promises
https://okapies.hateblo.jp/entry/2014/11/23/183047