We are living in the era of cloud computing in which you can quickly provision virtual machines in high-powered servers. Although our modern computers evolved now have more CPU cores, we still cannot leverage the full power of modern servers when we run our applications. Sometimes our applications are running slow, but when we look at the CPU utilization, it might be underutilized. The problem is that we are still using some tools that were designed for the era of single-core machines. We can improve the performance of many of our applications by writing concurrent programs that let you write programs as a composition of several autonomous activities. Some of our existing programming languages provide support for concurrency by using a framework or a library, but not a built-in feature of the core language.