In computer science, a future (also known as a promise in the E programming language and Alice programming languages) is a proxy for a result that is not yet known, usually because the computation of its value has not yet completed. Carl Hewitt has argued that the term future is to be preferred over promise on two grounds. First, promises can be about any time not just the future so the term promise is more vague than future. Second, a promise is just a linguistic expression whereas a future, as in the commodities market, is an actual claim and proxy for the goods.
The future construct was introduced in 1977 in a paper by Henry Baker and Carl Hewitt. The use of futures (promises) can dramatically reduce latency in distributed systems. E.g., it enables pipelining of messages, called promise pipelining [http://c2.com/cgi/wiki?PromisePipelining.
The pipelining technique (using promises/futures to overcome latency) was invented independently twice in the 1980s. It was invented at Project Xanadu (circa 1989) and by Barbara Liskov in 1988.
Languages supporting "promises/futures/concurrent logic variables/I-vars" include:
Languages supporting promise pipelining include:
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Future (programming)".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world