69 Best Scala Books of All Time

We've ranked the best scala books using expert recommendations, sales data, and millions of reader ratings. At Shortform, we know books. Our book guides are the best in the world. Learn why.

1

Programming in Scala: Updated for Scala 2.12

Martin Odersky, Lex Spoon, Bill Venners

5.0
Programming in Scala
2

Functional Programming in Scala

Paul Chiusano, Rúnar Bjarnason

5.0
Functional programming (FP) is a programming style emphasizing functions that return consistent and predictable results regardless of a program's state. As a result, functional code is easier to test and reuse, simpler to parallelize, and less prone to bugs. Scala is an emerging JVM language that offers strong support for FP. Its familiar syntax and transparent interoperability with existing Java
3

Scala for the Impatient

Cay S. Horstmann

4.8
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 fu
4

Scala Cookbook

Alvin Alexander

4.8
Save time and trouble when using Scala to build object-oriented, functional, and concurrent applications. With more than 250 ready-to-use recipes and 700 code examples, this comprehensive cookbook covers the most common problems you’ll encounter when using the Scala language, libraries, and tools. It’s ideal not only for experienced Scala developers, but also for programmers learning to use this J
5

Scala in Depth

Joshua D. Suereth and Martin Odersky

4.8
Summary

Scala in Depth is a unique new book designed to help you integrate Scala effectively into your development process. By presenting the emerging best practices and designs from the Scala community, it guides you through dozens of powerful techniques example by example.

About the BookScala is a powerful JVM language that blends the functional and OO programming models. You'll have no trouble ge
6

Programming Scala: Scalability = Functional Programming + Objects

Dean Wampler, Alex Payne

4.7
Learn how to be more productive with Scala, a new multi-paradigm language for the Java Virtual Machine (JVM) that integrates features of both object-oriented and functional programming. With this book, you'll discover why Scala is ideal for highly scalable, component-based applications that support concurrency and distribution.

Programming Scala clearly explains the advantages of Scala as a JVM lan
Designing with Type: The Essential Guide to Typography book cover7

Designing with Type: The Essential Guide to Typography

James Craig and Irene Korol Scala

4.7
The classic Designing with Type has been completely redesigned, with an updated format and full color throughout. New information and new images make this perennial best-seller an even more valuable tool for anyone interested in learning about typography. The fifth edition has been integrated with a convenient website, www.designingwithtype.com, where students and teachers can examine hundreds of
8

Functional Programming, Simplified: (Scala Edition)

Alvin Alexander

4.7
If you've had trouble trying to learn Functional Programming (FP), you're not alone. In this book, Alvin Alexander -- author of the Scala Cookbook and former teacher of Java and Object-Oriented Programming (OOP) classes -- writes about his own problems in trying to understand FP, and how he finally conquered it.

What he originally learned is that experienced FP developers are driven by two goals: t
9

Learning Concurrent Programming in Scala, Second Edition

Aleksandar Prokopec

4.7
This book is a must-have tutorial for software developers aiming to write concurrent programs in Scala, or broaden their existing knowledge of concurrency. This book is intended for Scala programmers that have no prior knowledge about concurrent programming, as well as those seeking to broaden their existing knowledge about concurrency. Basic knowledge of the Scala programming language will be hel
Designing Data-Intensive Applications book cover10

Designing Data-Intensive Applications

Martin Kleppmann

4.7
Many forces affect software today: larger datasets, geographical disparities, complex company structures, and the growing need to be fast and nimble in the face of change.

Proven approaches such as service-oriented and event-driven architectures are joined by newer techniques such as microservices, reactive architectures, DevOps, and stream processing. Many of these patterns are successful by thems
11

Advanced Scala with Cats

Jesus Labarta

4.7
The main goal of this book is to teach system architecture and design using the techniques of modern functional programming. This means designing systems as small composable units, expressing constraints and interactions via the type system, and using composition to guide the construction of large systems in a way that maintains the original architectural vision.

The book also serves as an introduc
12

Learning Scala: Practical Functional Programming for the JVM

Jason Swartz

4.7
Learning Scala is an introduction and a guide to getting started with functional programming (FP) development. Written for programmers who are already familiar with object-oriented (OO) development, the book introduces the reader to the core Scala syntax and its OO models with examples and solutions that build familiarity, experience and confidence with the language.

The more challenging topics of
13

Modern Systems Programming with Scala Native: Write Lean, High-Performance Code without the JVM

Richard Whaling

4.7
14

Scala in Action: Covers Scala 2.10

Nilanjan Raychaudhuri and Chad Fowler

4.7
Summary

Scala in Action is a comprehensive tutorial that introduces Scala through clear explanations and numerous hands-on examples. Because Scala is a rich and deep language, it can be daunting to absorb all the new concepts at once. This book takes a "how-to" approach, explaining language concepts as you explore familiar programming challenges that you face in your day-to-day work.

About the Techn
15

The Type Astronaut's Guide to Shapeless

Dave Gurnell

4.7
The Type Astronaut’s Guide is aimed at experienced Scala hitch hikers with an interest in generic programming and boilerplate elimination. The book walks you through one of the main use cases for shapeless – automatic, boilerplate-free derivation of type class instances.

The book is divided into two parts. Part I introduces the general mechanisms for type class derivation in shapeless. It introduce
16

Seven Languages in Seven Weeks

Bruce Tate

4.7
You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is good, how about Seven Languages in Seven Weeks? In this book you'll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Whether or not your favorite language is on that list, you'll broaden your perspective of programming by examining these languages side
17

Meb For Mortals: Harness the Training Methods of a Champion Marathoner to Achieve Peak Running Performance

Meb Keflezighi, Scott Douglas

4.7
With his historic win at the 2014 Boston Marathon, Meb Keflezighi cemented his legacy as one of the great champions of long-distance running. Runners everywhere wanted to know how someone two weeks away from his 39th birthday, who had only the 15th best time going into the race, could defeat the best field in Boston Marathon history and become the first American man to win the race in 31 years.Meb
18

The Neophyte's Guide to Scala

Harold D. Underdown

4.7
The Neophyte's Guide to Scala is a book for intermediate Scala developers. If you have made your first steps with Scala and functional programming, for example by participating in Martin Odersky's Coursera course Functional Programming Principles in Scala, and you don't know how to continue, this book is for you.

Originally published as a blog series from November 2012 to April 2013, the Neophyte's
19

Scala for Java Developers

Thomas Alexandre

4.6
This step-by-step guide is full of easy-to-follow code taken from real-world examples explaining the migration and integration of Scala in a Java project. If you are a Java developer or a Java architect, working in Java EE-based solutions and want to start using Scala in your daily programming, this book is ideal for you. This book will get you up and running quickly by adopting a pragmatic approa
20

Akka in Action

Raymond Roestenburg, Rob Bakker, Rob Williams

4.6
Akka is a Scala-based toolkit that simplifies developing concurrent distributed applications. Akka uses Actors-independently executing processes that communicate via message passing—as the foundation for fault-tolerant applications where individual actors can fail without crashing everything. Perfect for high-volume applications that need to scale rapidly, Akka is an efficient foundation for event
21

Scala Puzzlers

Andrew Phillips and Nermin Serifovic

4.6
22

Introduction to the Art of Programming Using Scala

Mark C. Lewis

4.6
This text is the first to teach programming with Scala, one of a new generation of languages that combine the best from the procedural, functional, and object-oriented paradigms of programming. The first part of the book covers basic logic and problem decomposition and explains how to use GUIs and graphics in programs. The second part incorporates the core topics of object-orientation with a heavy
23

Pragmatic Scala: Create Expressive, Concise, and Scalable Applications

Venkat Subramaniam

4.6
Our industry is moving toward functional programming, but your object-oriented experience is still valuable. Scala combines the power of OO and functional programming, and Pragmatic Scala shows you how to work effectively with both. Updated to Scala 2.11, with in-depth coverage of new features such as Akka actors, parallel collections, and tail call optimization, this book will show you how to cre
24

Functional and Reactive Domain Modeling

Debasish Ghosh

4.6
Perhaps the biggest challenge a developer faces is understanding the problems that a software system needs to solve. Domain modeling is a technique for creating a conceptual map of a problem space such as a business system or a scientific application, so that the developer can write the software more efficiently. The domain model doesn't present a solution to the problem, but instead describes the
25

Frick Collection: Handbook of Paintings

Scala Publishers

4.6
The Frick Collection in New York ranks among the world's most prestigious private art collections. It was founded by Henry Clay Frick, the Pittsburgh industrialist, who bequeathed his New York residence and the most outstanding of his many artworks to establish a public gallery.
26

Essential Slick

Denise F. Polit PhDFAAN and Cheryl Tatano Beck DNScCNMFAAN

4.6
Essential Slick is a guide to building application using the Slick database library. It is aimed at Scala developers who need to become productive with Slick quickly.
27

Play for Scala

Peter Hilton, Erik Bakker, Francisco Canedo

4.6
Summary

Play for Scala shows you how to build Scala-based web applications using the Play 2 framework. This book starts by introducing Play through a comprehensive overview example. Then, you'll look at each facet of a typical Play application both by exploring simple code snippets and by adding to a larger running example. Along the way, you'll deepen your knowledge of Scala as a programming langu
28

Drakin: The Scala Series Book 1

Noah Hawkes

4.6
Spark: The Definitive Guide: Big Data Processing Made Simple book cover29

Spark: The Definitive Guide: Big Data Processing Made Simple

Bill Chambers

4.6
Learn how to use, deploy, and maintain Apache Spark with this comprehensive guide, written by the creators of the open-source cluster-computing framework. With an emphasis on improvements and new features in Spark 2.0, authors Bill Chambers and Matei Zaharia break down Spark topics into distinct sections, each with unique goals.

You'll explore the basic operations and common functions of Spark's st
30

Learning Spark: Lightning-Fast Big Data Analysis

Holden Karau, Andy Konwinski, et al

4.6
31

An Invitation to Applied Category Theory: Seven Sketches in Compositionality

Brendan Fong

4.6
Category theory is unmatched in its ability to organize and layer abstractions and to find commonalities between structures of all sorts. No longer the exclusive preserve of pure mathematicians, it is now proving itself to be a powerful tool in science, informatics, and industry. By facilitating communication between communities and building rigorous bridges between disparate worlds, applied categ
32

Stop Nurse Burnout: What to Do When Working Harder Isn't Working

Elizabeth Scala and Dike Drummond

4.6
33

Testing in Scala

Daniel Hinojosa

4.6
If you build your Scala application through Test-Driven Development, you’ll quickly see the advantages of testing before you write production code. This hands-on book shows you how to create tests with ScalaTest and the Specs2—two of the best testing frameworks available—and how to run your tests in the Simple Build Tool (SBT) designed specifically for Scala projects.

By building a sample digital j
34

Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM

Michael Bevilacqua-Linn

4.6
Functional languages have their own patterns that enable you to solve problems with less code than object-oriented programming alone. This book introduces you, the experienced Java programmer, to Scala and Clojure: practical, production-quality languages that run on the JVM and interoperate with existing Java. By using both the statically typed, type-inferred Scala and the dynamically typed, moder
35

Lift Application Development Cookbook

Gilberto T. Garcia Jr

4.6
Lift Application Development Cookbook contains practical recipes on everything you will need to create secure web applications using this amazing framework.The book first teaches you basic topics such as starting a new application and gradually moves on to teach you advanced topics to achieve a certain task. Then, it explains every step in detail so that you can build your knowledge about how thin
36

Programming Scala

Venkat Subramaniam

4.6
Scala is an exciting, modern, multi-paradigm language for the JVM. You can use it to write traditional, imperative, object-oriented code. But you can also leverage its higher level of abstraction to take full advantage of modern, multicore systems. Programming Scala will show you how to use this powerful functional programming language to create highly scalable, highly concurrent applications on t
37

Reactive Application Development

Duncan DeVore, Sean Walsh, Brian Hanafee

4.6
Modern distributed applications run in environments that may include thousands of processors, web and mobile clients, hybrid cloud deployments, and petabytes of data. The traditional patterns and practices for enterprise application development simply can't deliver the millisecond response times and near-perfect reliability these systems require. Reactive applications meet these demands by employi
38

DSLs in Action

Debasish Ghosh

4.6
Your success—and sanity—are closer at hand when you work at a higher level of abstraction, allowing your attention to be on the business problem rather than the details of the programming platform. Domain Specific Languages—"little languages" implemented on top of conventional programming languages—give you a way to do this because they model the domain of your business problem.

DSLs in Action intr
39

Eating Right for a Bad Gut

James Scala

4.6
"Straightforward recommendations for healthy eating that easy on the gut... Hopeful and helpful."-- Publishers Weekly

In this completely revised and updated edition of his classic book on treating "bad gut" diseases, Dr. James Scala presents a new dietary plan that has been proven to help inflammatory bowel disease go into remission. Scala firmly believes that nutrition is preventative medicine an
40

Reactive Web Applications: Covers Play, Akka, and Reactive Streams

Manuel Bernhardt

4.6
Summary

Reactive Web Applications teaches web developers how to benefit from the reactive application architecture and presents hands-on examples using the Play framework.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the Technology

Reactive applications build on top of components that communicate asynchronously as they react to user
41

Akka Concurrency

Derek Wyat

4.6
Writing truly concurrent software on the Java Virtual Machine just got a whole lot easier. The Akka Toolkit takes the sting out of coding for multiple cores, multiple processors, and even multiple machines.

Akka Concurrency will show you what it means to design and write software in the paradigm of Akka. You'll learn how to think about your software in new and exciting ways that will allow you to e
42

Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka

Vaughn Vernon

4.6
USE THE ACTOR MODEL TO BUILD SIMPLER SYSTEMS WITH BETTER PERFORMANCE AND SCALABILITY Enterprise software development has been much more difficult and failure-prone than it needs to be. Now, veteran software engineer and author Vaughn Vernon offers an easier and more rewarding method to succeeding with Actor model. Reactive Messaging Patterns with the Actor Model shows how the reactive enterprise
43

Practical Apache Spark: Using the Scala API

Subhashini Chellappan and Dharanitharan Ganesan

4.6
Work with Apache Spark using Scala to deploy and set up single-node, multi-node, and high-availability clusters. This book discusses various components of Spark such as Spark Core, DataFrames, Datasets and SQL, Spark Streaming, Spark MLib, and R on Spark with the help of practical code snippets for each topic. Practical Apache Spark also covers the integration of Apache Spark with Kafka with examp
44

Baroque: The Visual Encyclopedia of Art

The Scala Group

4.6
The definition of the Baroque age is still subject to debate among critics and historians. In one of its most commonly accepted meanings, Baroque describes some aspects of 17th-century art, with sumptuous Roma at the center, that upset the proportions and static harmony of the Renaissance already undermined by Mannerism during the previous century through the use of curves, strange movements of fo
45

Functional Thinking

Neal Ford

4.6
Learning the syntax of a new language is easy, but learning to think under a different paradigm is difficult. This practical guide from renowned software architect Neal Ford helps you transition from a Java-writing imperative programmer to a functional programmer, using Java, Clojure, and Scala as examples.

Rather than focus on specific language features, Functional Thinking looks at a variety of c
46

Scala Design Patterns: Design modular, clean, and scalable applications by applying proven design patterns in Scala, 2nd Edition

Ivan Nikolov

4.5
47

Creative Scala

Edward Horswell

4.5
Creative Scala is aimed at developers who have no prior experience in Scala. It is designed to give you a fun introduction to functional programming. We assume you have some familiarity with another programming language but little or no experience with Scala or other functional languages.

Our goal is to demonstrate the building blocks that Scala developers use to create programs in a clear, succinc
48

The Colmar Treasure: A Medieval Jewish Legacy

Barbara Drake Boehm

4.5
During a 19th century renovation of a confectioner's shop in the town of Colmar, France, workers chanced upon a previous hoard of medieval jewelry and coins hidden in a wall. The cache – known as the Colmar Treasure – is thought to have been concealed by a Jewish family prior to the outbreak of the Plague in 1348, when Jews across the region were tragically scapegoated and put to violent death. Th
49

Pergamon Museum, Berlin 66 Masterpieces (Scala's Masterpieces)

Scala Publishers

4.5
One of the world's great museums, the Pergamon Museum, lies on Berlin's Museumsinsel (Museum Island) complex, which is located between the Rivers Spree and Kupfergraben. Five museums were built on this site between 1824 and 1930 to house archaeological treasures and art collections. The last of the five to be built was the Pergamon Museum, which was designed by Alfred Messel and houses spectacular
50

Effective Akka

Jamie Alle

4.5
This book will explain how to create Akka applications using best practices based on several years of experience with Actors. The content will be general enough that it would apply to actor-based and asynchronous applications on the whole, but the examples are shown in Akka using the Scala programming interface. The ideal audience are developers who are building systems with Akka and are looking f
51

Practical FP in Scala: A hands-on approach

Andrew Johnso

4.5
52

Beginning Scala

David Pollak

4.5
A curious attribute of the Scala programming language is that it expends a lot of expressive power in order to make the life of casual programmers simpler. For instance, Scala provides sophisticated type parametrization and traits so that more advanced programmers can design libraries which are at the same time general and easy to use. Casual users can profit from these libraries long before they
53

Applied Akka Patterns: A Hands-On Guide to Designing Distributed Applications

Michael Nash, Wade Waldron

4.5
When it comes to big data processing, we can no longer ignore concurrency or try to add it in after the fact. Fortunately, the solution is not a new paradigm of development, but rather an old one. With this hands-on guide, Java and Scala developers will learn how to embrace concurrent and distributed applications with the open source Akka toolkit. You'll learn how to put the actor model and its as
54

Scala for Machine Learning

Patrick R. Nicola

4.5
55

Reactive Design Patterns

Roland Kuhn Dr., Brian Hanafee, Jamie Allen

4.5
Modern applications present incredible design challenges: we expect near-realtime performance while managing petabyte-scale data and distribution across environments ranging from traditional servers to cloud systems to mobile devices. The Reactive Application model addresses these demands through new patterns designed to "react" effectively to user and system events, changes in load, competition f
56

Scala Programming for Big Data Analytics: Get Started with Big Data Analytics Using Apache Spark

Irfan Elahi

4.5
Gain the key language concepts and programming techniques of Scala in the context of big data analytics and Apache Spark. The book begins by introducing you to Scala and establishes a firm contextual understanding of why you should learn this language, how it stands in comparison to Java, and how Scala is related to Apache Spark for big data analytics. Next, you'll set up the Scala environment rea
57

Scala Programming Projects: Build real world projects using popular Scala frameworks like Play, Akka, and Spark

Mikael Valot and Nicolas Jorand

4.5
Scala is a type-safe JVM language that incorporates object-oriented and functional programming (OOP and FP) aspects. This book gets you started with essentials of software development by guiding you through various aspects of Scala programming, helping you bridge the gap between learning and implementing. You will learn about the unique features of Scala through diverse applications and experience
58

Machine Learning Systems: Designs that scale

Jeff Smith

4.5
Machine learning applications autonomously reason about data at massive scale. It's important that they remain responsive in the face of failure and changes in load. But machine learning systems are different than other applications when it comes to testing, building, deploying, and monitoring.

Reactive Machine Learning Systems teaches readers how to implement reactive design solutions in their mac
59

Atomic Scala

Dianne Marsh Bruce Eckel

4.5
60

Steps in Scala: An Introduction to Object-Functional Programming

Christos K. K. Loverdos

4.5
Scala is a highly expressive, concise and scalable language. It is also the most prominent method of the new and exciting methodology known as object-functional programming. In this book, the authors show how Scala grows to the needs of the programmer, whether professional or hobbyist. They teach Scala with a step-by-step approach and explain how to exploit the full power of the industry-proven JV
61

Learning Akka

Jason Goodwin

4.5
62

Actors in Scala

Philipp Haller, Frank Sommers

4.5
63

Inkscape 0.48 Illustrator's Cookbook

Mihaela Jurkovic and Rigel Di Scala

4.5
Each recipe comprises step-by-step instructions followed by an analysis of what was done in each task and other useful information. The book is designed so that you can read it chapter by chapter, or look at the list of recipes and refer to them in no particular order. It is packed with useful screenshots to make your learning even easier. This book is written for both beginners and developers who
64

SBT in Action

Josh Suereth and Matthew Farwell

4.5
Simple Build Tool: sbt. The idea of a high quality build tool for Scala is indeed simple, but sbt itself is richly-featured and powerful. Documentation for sbt is sparse, and the blogs, tutorials, and other bits scattered across the web leave you wanting a comprehensive, accurate picture of how to build Scala projects effectively and efficiently. This book will help you transform ugly, complex bui
65

Becoming Functional

Joshua Backfield

4.5
If you have an imperative (and probably object-oriented) programming background, Becoming Functional will help you through the sometimes alien world of functional programming. Many functional programming books begin by focusing on the more difficult concepts such as recursion and immutability. This book lets you dive right in to functional programming by teaching the most useful implementation con
66

Scala High Performance Programming

Vincent Theron and Michael Diaman

4.5
67

Getting Started with Sbt for Scala

Shiti Saxena

4.5
A practical and fast-paced guide, Getting Started with SBT for Scala walks you through the setup of Scala projects in SBT with sample code for common as well as critical scenarios.Getting Started with SBT for Scala is for developers working on Scala projects who are interested in learning and utilizing Simple Build Tool to manage the build process.
68

Mastering Play Framework for Scala

Shiti Saxena

4.5
69

Akka Essentials

Kumar Gupta Munish

4.5