Introduction

Glad to see your interest in Scala. Thank you for choosing this book to learn and exercise the combined power of two programming paradigms—object-oriented and functional—fused together in one language.

The Java ecosystem is one of the most powerful platforms to develop and deploy enterprise applications. It’s ubiquitous and versatile; it has a rich set of libraries and runs on multiple types of hardware; and there are well over 200 languages to program on it.

I’ve had the privilege to learn and work with a dozen languages and have written books on a few. Languages are like vehicles—they come with different capabilities and help us navigate the platform. It’s quite heartwarming to see that programmers today have the liberty to choose from, and also intermix, multiple languages to program their applications.

Typical enterprise applications suffer from multiple issues—verbose code is hard to maintain, mutability increases bugs, and shared mutability turns the pleasurable task of programming concurrency into hell. We’ve repeatedly fallen prey to accidental complexities that arise from poor abstractions offered by mainstream languages.

Scala is one of the most powerful languages that compiles down to bytecode. It’s statically typed, concise, and expressive, and it’s being used to develop performant, scalable, responsive, and resilient applications by many organizations.

The right set of features have come together in this language to remove a number of traps. The Scala language and its libraries let us focus on the problem domain rather than being bogged down by low-level infrastructure details like threads and synchronization.

Scala has been designed to create applications that require high performance, faster response, and greater resilience. It’s a language created to meet the high frequency and volume of data processing that large corporations and social media demand.

Scala has been used to build applications in various domains, including telecommunications, social networking, semantic web, and digital asset management. Apache Camel uses Scala for its DSL to create routing rules. Play and Lift are powerful web development frameworks built using Scala. Akka, built using Scala, is a prominent library for creating highly responsive concurrent and reactive applications. These libraries and frameworks take full advantage of Scala features such as conciseness, expressiveness, pattern matching, and concurrency.

Scala is a powerful language, but to get productive with it we need to focus on the essential parts of the language that provide the most value. This book will help you learn the essentials of Scala, so you can quickly get productive, get your work done, and create practical applications.

And, to help you create practical applications, Scala offers two different styles of programming.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.17.167.114