To paraphase Rich -- "promises are the one-night stand of asynchronous programming, core.async is aiming for a longer term relationship."
The big win isn't that you have the ability to await and fulfill messages, but rather that you have first class entities that can be used to send and receive discrete and coordinated messages.
What's better than simply having these communication channels (think event emitters) is having the ability through clear syntax to synchronize not only the receipt of these messages, but also to coordinate message sending through the same uniform style.
To me, this seems just about as related to promises as promises are related to callbacks, in that they are all patterns for asynchronous programming.
To drive the point home:
"I grant that promises are a superset of callbacks kind of functionality, but to me they are definitely part of the same family. And you can definitely implement promises in terms of them."
I don't think that it's true that promises are a superset of callbacks. Although, again, owing to the particular nature of javascript the implementations may be. A promise is like a go channel that can only be sent to once. A callback has utterly arbitrary behaviour: it can be called many times with many values in many contexts.
Promises and channels are synchronization primitives. Callbacks are not.
The big win isn't that you have the ability to await and fulfill messages, but rather that you have first class entities that can be used to send and receive discrete and coordinated messages.
What's better than simply having these communication channels (think event emitters) is having the ability through clear syntax to synchronize not only the receipt of these messages, but also to coordinate message sending through the same uniform style.
To me, this seems just about as related to promises as promises are related to callbacks, in that they are all patterns for asynchronous programming.
To drive the point home: "I grant that promises are a superset of callbacks kind of functionality, but to me they are definitely part of the same family. And you can definitely implement promises in terms of them."