[Python-Dev] [PEP 3148] futures - execute computations asynchronously
jyasskin at gmail.com
Sat Mar 6 08:14:36 CET 2010
On Fri, Mar 5, 2010 at 9:47 PM, Stephen J. Turnbull <stephen at xemacs.org> wrote:
> Guido van Rossum writes:
> > "Future" is a pretty standard CS term for this concept (as noted
> > "promise" is another),
> I like the term "promise" better. "Future" is very generic ("not now,
> but later"), whereas a "promise" is something I don't get from you
> now, but you will give me later.
> The wikipedia article is not very helpful on the implicit vs. explicit
> distinction. As far as I can tell from it, that distinction isn't
> really attached to "future" vs "promise." The only distinction the
> article described was in the context of the Alice language, where a
> future = promise (read-only) plus resolver (mutator). IMO that's not
> a compelling reason for adopting "future" in Python.
It seems like a good idea to follow the choice other languages have
used for the name (if they tend to agree) regardless of whether the
evil Java followed it too. So let's take a poll:
Io: Uses "future" to refer to the implicit kind
Alice ML: Uses "future" to refer to the implicit kind, and "promise"
to refer to a handle that can fill in the future
Java: Uses "future" to refer to the explicit kind.
AmbientTalk: Uses "future" to refer to something more like a deferred:
you register callbacks to run when the future is resolved.
C++0x: Uses "future" to refer to the explicit kind; "promise"
similarly to AliceML, and "packaged_task" to get a future from a
E: Uses "promise" to refer to the implicit kind, and "resolver" to
refer to a handle that can fill in the promise.
Oz: A "future" is a read-only logic variable. I'm not entirely sure
what that means.
PLT Scheme: Uses "future" to refer to the explicit kind.
C#: Uses "Task<TResult>" to refer to the explicit kind.
Id, from 1991: Used "I-structure" to refer to the implicit kind.
Scala: Uses "Future" to refer to the explicit kind.
What languages did I miss? From this list, "future" seems to be the
most popular choice, and it doesn't seem to distinguish between the
implicit and explicit kinds.
More information about the Python-Dev