Disclaimer: I'm a C# developer...
I just read some of the example code, and it is downright hideous. Is this because Java sucks or because "EA Async" sucks?
I just feel like if it's not a built-in language feature with reserved keywords, it's never going to achieve the same usefulness and elegance as it would otherwise.
I mean, even their own example can be rewritten in .NET from:
public CompletableFuture<Boolean> buyItem(String itemTypeId, int cost)
{
if(!await(bank.decrement(cost))) {
return completedFuture(false);
}
await(inventory.giveItem(itemTypeId));
return completedFuture(true);
}
to
public async Task<bool> BuyItem(string itemTypeId, int cost)
{
if (!await Bank.Decrement(cost))
{
return false;
}
await Inventory.GiveItem(itemTypeId);
return true;
}
Which to me is much easier on the eyes.