Sorry, I had a little fun with the subject... :)
Now that I'm using the latest jQuery, which includes Deferred support, I'm finding that it is hard to justify including FuturesJS anymore. And there are already several other implementations in the CommonJS world, I'm not sure how much traction FuturesJS will be able to get anymore.
Of course it will still be useful to non-jquery users or those who want a more robust solution than jquery provides. But I for one don't want to have different promise objects to deal with. If I do an XHR command in jquery, I'm working with their promises, which are incompatible with FuturesJS. Since I can't drop jquery, I'm more apt to drop FutureJS.
Unfortunately, there are a few things in FuturesJS that are missing in jQuery Deferreds, which I'm really missing. So I'd like to make a suggestion/proposal that could turn FuturesJS into a very valuable project. I suggest you make it more jquery specific, or create a different project that is exclusively for jquery.
This would involve rewriting it to rely on jQuery Deferred objects instead of the FuturesJS custom deferred/promises. A lot of the codebase could be removed since it wouldn't need to implement any of the features that jQuery already provides. In this way it would become a jQuery specific library, but I don't see this as a bad thing, and it could significantly increase the appeal with the hordes of jquery users out there. One drawback is that it wouldn't be as easy to support SSJS, but if it was split to a separate jquery-only project that wouldn't matter.
So FuturesJS (or maybe FuturesJQ?) would become a jquery "enhancer". I don't really want to call it a plugin because it would be enhancing the actual jquery object, not just adding a new namespace to the jquery object. These enhancements would add support for missing features in jquery.
For instance, there is no easy way to do sequences with jQuery deferreds. To make sure that one command finishes before the next one begins, I'm having to nest $.when()/$.then() calls in success handlers. This defeats the beauty of using promises. Maybe there's a better way, but I haven't found it yet.
Also, the $.when() function doesn't guarantee that all methods are run. If any method fails, others may not have run. I think it would be nice to have a "finally" method, so that after all methods have either been resolve()ed or reject()ed, a function is run.
This SO question has some ideas that could provide useful:
Anyway, I haven't really looked into how much work this would involve, and I'm just shooting from the hip at the moment. I got frustrated with jQuery's implementation after being spoiled by FuturesJS and saw a niche that would be nice to fill.
Thanks for listening, I'd like to hear any feedback.
Tauren
-- By the way, I'm now heavily invested in Backbone, Underscore, jQuery, and jQuery.tmpl for my single-page javascript apps. It's an awesome combination that I highly recommend. Now if I could just find the time to start working with Node on the server side. I might switch to a different templating solution that works both server and client side. I'm wavering back and forth on wether to give Coffeescript a try.