Scala Programming Language

Object-Oriented Meets Functional. Have the best of both worlds. Construct elegant class hierarchies for maximum code reuse and extensibility, implement their behavior using higher-order functions. Or anything in-between.

1. Programming in Scala: A Comprehensive Step-by-Step Guide, Third Edition

Artima is very pleased to publish a new edition of the best-selling book on Scala, written by the designer of the language, Martin Odersky. Co-authored by Lex Spoon and Bill Venners, this book takes a step-by-step tutorial approach to teaching you Scala. Starting with the fundamental elements of the language, Programming in Scala introduces functional programming from the practitioner’s perspective, and describes advanced language features that can make you a better, more productive developer.

Programming in Scala: A Comprehensive Step-by-Step Guide, Third Edition
Scala source code is intended to be compiled to Java bytecode, so that the resulting executable code runs on a Java virtual machine.

2. Functional Programming in Scala

Functional Programming in Scala is a serious tutorial for programmers looking to learn FP and apply it to their everyday work. The book guides readers from basic techniques to advanced topics in a logical, concise, and clear progression. In it, you’ll find concrete examples and exercises that open up the world of functional programming.

What’s Inside

  • Functional programming concepts
  • The whys and hows of FP
  • How to write multicore programs
  • Exercises and checks for understanding
Functional Programming in Scala

3. Scala for the Impatient (2nd Edition)

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
Scala for the Impatient (2nd Edition)

4. Learning Scala: Practical Functional Programming for the JVM

Author Jason Swartz demonstrates why Scala’s concise and expressive syntax make it an ideal language for Ruby or Python developers who want to improve their craft, while its type safety and performance ensures that it’s stable and fast enough for any application.

  • Learn about the core data types, literals, values, and variables
  • Discover how to think and write in expressions, the foundation for Scala’s syntax
  • Write higher-order functions that accept or return other functions
  • Become familiar with immutable data structures and easily transform them with type-safe and declarative operations
  • Create custom infix operators to simplify existing operations or even to start your own domain-specific language
  • Build classes that compose one or more traits for full reusability, or create new functionality by mixing them in at instantiation
Learning Scala: Practical Functional Programming for the JVM

5. Programming Scala: Scalability = Functional Programming + Objects

This second edition covers recent language features, with new chapters on pattern matching, comprehensions, and advanced functional programming. You’ll also learn about Scala’s command-line tools, third-party tools, libraries, and language-aware plugins for editors and IDEs. This book is ideal for beginning and advanced Scala developers alike.

  • Program faster with Scala’s succinct and flexible syntax
  • Dive into basic and advanced functional programming (FP) techniques
  • Build killer big-data apps, using Scala’s functional combinators
  • Use traits for mixin composition and pattern matching for data extraction
  • Learn the sophisticated type system that combines FP and object-oriented programming concepts
  • Explore Scala-specific concurrency tools, including Akka
  • Understand how to develop rich domain-specific languages
  • Learn good design techniques for building scalable and robust Scala applications
Programming Scala: Scalability = Functional Programming + Objects

6. Scala Cookbook: Recipes for Object-Oriented and Functional Programming

Author Alvin Alexander (creator of provides solutions based on his experience using Scala for highly scalable, component-based applications that support concurrency and distribution. Packed with real-world scenarios, this book provides recipes for:

  • Strings, numeric types, and control structures
  • Classes, methods, objects, traits, and packaging
  • Functional programming in a variety of situations
  • Collections covering Scala’s wealth of classes and methods
  • Concurrency, using the Akka Actors library
  • Using the Scala REPL and the Simple Build Tool (SBT)
  • Web services on both the client and server sides
  • Interacting with SQL and NoSQL databases
  • Best practices in Scala development
Scala Cookbook: Recipes for Object-Oriented and Functional Programming

7. Scala for Data Science

Leverage the power of Scala with different tools to build scalable, robust data science applications

If you are a Scala developer or data scientist, or if you want to enter the field of data science, then this book will give you all the tools you need to implement data science solutions.

  • Transform and filter tabular data to extract features for machine learning
  • Implement your own algorithms or take advantage of MLLib’s extensive suite of models to build distributed machine learning pipelines
  • Read, transform, and write data to both SQL and NoSQL databases in a functional manner
  • Write robust routines to query web APIs
  • Read data from web APIs such as the GitHub or Twitter API
  • Use Scala to interact with MongoDB, which offers high performance and helps to store large data sets with uncertain query requirements
  • Create Scala web applications that couple with JavaScript libraries such as D3 to create compelling interactive visualizations
  • Deploy scalable parallel applications using Apache Spark, loading data from HDFS or Hive
Scala for Data Science

8. Scala High Performance Programming

Get the first book to explore Scala performance techniques in depth with real-world inspired use cases illustrate and support the techniques studied and the language features.

  • Analyze the performance of JVM applications by developing JMH benchmarks and profiling with Flight Recorder
  • Discover use cases and performance tradeoffs of Scala language features, and eager and lazy collections
  • Explore event sourcing to improve performance while working with stream processing pipelines
  • Dive into asynchronous programming to extract performance on multicore systems using Scala Future and Scalaz Task
  • Design distributed systems with conflict-free replicated data types (CRDTs) to take advantage of eventual consistency without synchronization
  • Understand the impact of queues on system performance and apply the Free monad to build systems robust to high levels of throughput
Scala High Performance Programming