promises | Communicating Event-Loop Concurrency and Distribution
Mark S. Miller
erights at google.com
Fri Jan 28 19:43:09 PST 2011
On Fri, Jan 28, 2011 at 6:05 AM, Kris Zyp <kris at sitepen.com> wrote:
> Exactly. On the NodeJS mailing list there is constant, never-ending stream
> of messages from (generally new users) who are complaining about the pain of
> callbacks (not from typing some API, I have yet to ever get a request for
> shorter syntax for node-promise, which is one of the commonly used helper
> libraries). In fact I think someone recently created another continuation
> library (in the same vein as Narrative, generators, etc.), continuing to add
> to our collective experience in this area. I could look up the address if
Please do. More collective experience is good.
However, I think your comparisons show your missing the point of this
strawman. AFAIK, all the systems you cite, including node-promise which
implements CommonJS promises/A and your proposed use of shallow
continuations, are all only for helping express asynchrony within a single
vat. None of these are about supporting communication to objects in separate
or remote vats. So none of these should be taken as competitors for this
strawman. This strawman includes means for spawning new vats, talking
between the spawner and the spawned, and an underspecified-at-the-moment
(but see qcomm's Q.makePromise()) pluggable extension point for extending
this semantics over networks.
I expect this is mostly my own fault by giving the strawman the title
"concurrency", which emphasizes the wrong first point.
Vat's, are asynchronously coupled to each other by remote references that
can fail. This helps vats be units of transparent distribution as well as
concurrency, partial failure, partition, and preemptive termination. With
appropriate support, they can also become the unit of migration, separate
persistence, and resource control.
I have received much helpful private correspondence suggesting many other
needed clarifications and improvements to that strawman page (thanks).
Having announced "ready for discussion" before I'd intended, please everyone
indulge me while I temporarily withdraw this page in order to make these
suggested improvements and shifts of emphasis. I will re-declare this
"ready" soon. I promise ;).
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the es-discuss