Async programming in C# is easy to use if you do not look under the cover (the generated state machine stuff is ugly and hard to reason about). But I find it tiring to repeat all these await and async keywords in almost every line of code. I wonder if someone already designed a language which is async be default, with some extra constructs to support running multiple operations in parallel.