By: Philipp Haller and Jason Zaugg
This is a proposal to add constructs that simplify asynchronous and concurrent programming in Scala. The main constructs, async and await, are inspired by similar constructs introduced in C# 5.0. The main purpose of async/await is to make it possible to express efficient asynchronous code in a familiar direct style (where suspending operations look as if they were blocking). As a result, non-blocking code using Scala’s futures API  can be expressed without using higher-order functions, such as map and flatMap, or low-level callbacks.
This is a companion discussion topic for the original entry at http://docs.scala-lang.org/sips/pending/async.html