In computer programming, a '''promise''' (also known as a '''future''' in some languages) is a placeholder for a result that is not yet known, usually because a computation has not yet finished or a message from a remote party has not yet arrived. The use of promises can dramatically reduce latency in distributed systems because it enables [http://www.erights.org/elib/distrib/pipeline.html|message pipelining].
This technique was invented independently twice in the 1980s. It was invented at [[Project Xanadu]] as the "promise" and also invented in [[MultiLisp programming language|MultiLisp]] as the "future", though the implications for latency reduction do not appear to have been recognized in MultiLisp.
Languages containing "promises" include [[Joule programming language|Joule]] and [[E programming language|E]].
Languages containing "futures" include [[Alice programming language|Alice]] and [[MultiLisp programming language|MultiLisp]].