Interest in the Scala programming language continues to grow for many reasons. Scala embraces the functional programming style without abandoning the object-oriented paradigm, and it allows you to write programs more concisely than in Java. Because Scala runs on the JVM, it can access any Java library and is interoperable with familiar Java frameworks. Scala also makes it easier to leverage the full power of concurrency.
Written for experienced Java, C++, or C# programmers who are new to Scala or functional programming, Scala for the Impatient, Second Edition, introduces the key Scala concepts and techniques you need in order to be productive quickly. It is the perfect introduction to the language, particularly for impatient readers who want to learn the fundamentals of Scala so they can start coding quickly. It doesn’t attempt to exhaustively list all the features of the language or make you suffer through long and contrived examples. Instead, carefully crafted examples and hands-on activities guide you through well-defined stages of competency, from basic to expert.
This revised edition has been thoroughly updated for Scala 2.12 and reflects current Scala usage. It includes added coverage of recent Scala features, including string interpolation, dynamic invocation, implicit classes, and futures. Scala is a big language, but you can use it effectively without knowing all of its details intimately. This title provides precisely the information that you need to get started in compact, easy-to-understand chunks.
- Get started quickly with Scala’s interpreter, syntax, tools, and unique idioms
- Master core language features: functions, arrays, maps, tuples, packages, imports, exception handling, and more
- Become familiar with object-oriented programming in Scala: classes, inheritance, and traits
- Use Scala for real-world programming tasks: working with files, regular expressions, and XML
- Work with higher-order functions and the powerful Scala collections library
- Leverage Scala’s powerful pattern matching and case classes
- Create concurrent programs with Scala futures
- Implement domain-specific languages
- Understand the Scala type system
- Apply advanced “power tools,” such as annotations, implicits, and type classes