THE READING ROOM / BOOK GUIDE
Programming in Scala
A guide to Scala by its principal designer, Martin Odersky, with Lex Spoon and Bill Venners, written for programmers who want the language's design rationale alongside its syntax.
About the book
Programming in Scala carries an unusual advantage: one of its authors, Martin Odersky, led the design of Scala itself. That shapes the book's approach. It explains why the language combines object-oriented and functional programming in one system, and how those two traditions fit together in practice. Lex Spoon and Bill Venners join Odersky to carry that explanation into worked examples and extended discussion.
The book addresses working programmers, not beginners learning to code. It assumes familiarity with classes, methods, and types, then builds toward Scala's own idioms: traits, pattern matching, higher-order functions, and a type system that rewards careful study. The material is dense and cumulative. Early chapters establish syntax and object-oriented structure. Later ones press into functional abstractions and the type system, where the pace slows and the demands on the reader rise.
The book documents an early stage of Scala. The core ideas about combining functional and object-oriented design remain relevant, but specific library details and language features reflect the version available at the time. Treat it as a guide to Scala's design philosophy and foundational mechanics rather than a current reference manual.
How to read it
Read sequentially the first time. The authors build vocabulary and expectations chapter by chapter, and skipping ahead to advanced type features without the earlier groundwork makes the later material harder than it needs to be. Keep a compiler open and type in the examples. The book rewards active reading far more than passive skimming.
Expect a serious time commitment. Prose sections alternate with code-heavy explanations, and some chapters require rereading. When a section on the type system or functional abstractions feels opaque, continue to the next worked example before deciding the concept is beyond you. The examples often clarify what the prose states abstractly.
Who it suits
This suits programmers with experience in another language, especially Java or a similar object-oriented language, who want to understand Scala's design rationale and its functional side. Readers curious about how object-oriented and functional ideas can coexist in one language will find the authors' perspective valuable, since it comes from the language's own designer. Those seeking a quick syntax primer or a current API reference should look elsewhere.
Reading considerations
Scala has changed since the book was written, so verify language details against current documentation before relying on them in production code. The book's length and density also make it a poor fit for readers wanting a fast introduction. It teaches how Scala thinks more than how to finish a project quickly, and that focus will suit some readers better than others.
Follow the HN conversation
35 different recommenders are recorded in the upstream dataset. These are AI-classified source counts, not an independent rating.
Search HN comments about this book ↗
Explore videos on the same subject ↗
Book notes prepared with DeepSeek, using catalogue records and Open Library subject information. They are reading guidance, not a personal review or a verified chapter-by-chapter account. Book details can vary by edition. HN data methodology · Book metadata and covers.
