EA Async implements async-await methods in Java

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.

/r/programming Thread Link - github.com