Most mainstream languages started out with support for multithreading. Threads were considered lightweight but that term is relative. Threads were not ideal from the point of view of resource utilization and they often lead to higher cost of deployment. There has been a greater emphasis on asynchronous programming in recent times, due to the nature of applications and the architectural patterns they tend to favor. In this presentation we will discuss how this shift is transforming both the programming languages, the ecosystems, and how we develop applications.