www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Promises/A+ spec implementations?

reply "Alexander J. Vincent" <ajvincent gmail.com> writes:
Hi, folks.  Over ten years ago I had some interest in the D 
language.  I'm starting to think about it again...

I've been using Mozilla's Promises implementations for quite a 
while, now, and they're surprisingly nice to work with.  They are 
the next generation beyond the callback function patterns I 
learned in JavaScript.  I've been thinking that writing a 
Promises/A+ library for D would be a good task for a relatively 
inexperienced D programmer.  I didn't see any Promises/A+ 
implementations in the standard library or on code.dlang.org.

Now, whether I write that library or someone else beats me to it, 
I don't really care right now.  I'm interested in doing it, but 
my time is extremely limited.  I'm mainly posting this as a 
request to get a Promises/A+ library started, and for me to 
observe the process of crafting a library.  If someone wants to 
be a mentor for me on this, answering direct questions, that'd be 
great.

The spec for Promises/A+ is at https://promisesaplus.com/ . 
Mozilla's Bobby Holley recently wrote a good blog post about a 
"MozPromise" implementation which includes supporting 
multithreading (a concept I don't fully understand how to write 
for, yet) and cancelling a Promise (which isn't in the spec, but 
makes sense for Mozilla's purposes).  That blog post is at 
http://bholley.net/blog/2015/mozpromise.html .

Finally, I had an old login to this forum (kb7iuj), which I've 
long forgotten the password for.  I did see that there's no 
password recovery support, so could someone just terminate that 
login for good?
Aug 18 2015
parent reply "Alex Parrill" <initrd.gz gmail.com> writes:
On Wednesday, 19 August 2015 at 04:18:03 UTC, Alexander J. 
Vincent wrote:
 Hi, folks.  Over ten years ago I had some interest in the D 
 language.  I'm starting to think about it again...

 I've been using Mozilla's Promises implementations for quite a 
 while, now, and they're surprisingly nice to work with.  They 
 are the next generation beyond the callback function patterns I 
 learned in JavaScript.  I've been thinking that writing a 
 Promises/A+ library for D would be a good task for a relatively 
 inexperienced D programmer.  I didn't see any Promises/A+ 
 implementations in the standard library or on code.dlang.org.

 Now, whether I write that library or someone else beats me to 
 it, I don't really care right now.  I'm interested in doing it, 
 but my time is extremely limited.  I'm mainly posting this as a 
 request to get a Promises/A+ library started, and for me to 
 observe the process of crafting a library.  If someone wants to 
 be a mentor for me on this, answering direct questions, that'd 
 be great.

 The spec for Promises/A+ is at https://promisesaplus.com/ . 
 Mozilla's Bobby Holley recently wrote a good blog post about a 
 "MozPromise" implementation which includes supporting 
 multithreading (a concept I don't fully understand how to write 
 for, yet) and cancelling a Promise (which isn't in the spec, 
 but makes sense for Mozilla's purposes).  That blog post is at 
 http://bholley.net/blog/2015/mozpromise.html .

 Finally, I had an old login to this forum (kb7iuj), which I've 
 long forgotten the password for.  I did see that there's no 
 password recovery support, so could someone just terminate that 
 login for good?
IMO the 'next' generation of async is fibers/coroutines, not promises. Vibe.d is a great example; the code looks exactly like a normal synchronous function (including try/catch!), but is asynchronous behind the scenes. See also vibe.d's feature page [1] and examples [2] There's also C#'s async/await, but that's a syntax feature and I don't know how they work. [1]: http://vibed.org/features#fibers [2]: http://vibed.org/docs
Aug 19 2015
parent "Alexander J. Vincent" <ajvincent gmail.com> writes:
On Thursday, 20 August 2015 at 01:10:39 UTC, Alex Parrill wrote:

 IMO the 'next' generation of async is fibers/coroutines, not 
 promises. Vibe.d is a great example; the code looks exactly 
 like a normal synchronous function (including try/catch!), but 
 is asynchronous behind the scenes.

 See also vibe.d's feature page [1] and examples [2]
Ahhh. That's actually really close to what I had in mind _immediately after_ Promises. Mozilla does the same thing with microtasks and a yield statement in ECMAScript 6. So that's actually a good thing! Thanks for the links.
Aug 19 2015