Goodreads helps you keep track of books you want to read.
Start by marking “Programming in Scala” as Want to Read:
Programming in Scala
Enlarge cover
Rate this book
Clear rating
Open Preview

Programming in Scala

4.22  ·  Rating details ·  1,558 ratings  ·  95 reviews

Programming in Scala is the definitive book on Scala, the new language for the Java Platform that blends object-oriented and functional programming concepts into a unique and powerful tool for developers.

Coauthored by the designer of the Scala language, this authoritative book will teach you, one step at a time, the Scala language and the ideas behind it.

The book is

Hardcover, 736 pages
Published January 1st 2008 by Artima
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Community Reviews

Showing 1-30
Average rating 4.22  · 
Rating details
 ·  1,558 ratings  ·  95 reviews

More filters
Sort order
Start your review of Programming in Scala
Mar 25, 2009 rated it it was amazing
Shelves: software
Woah. Amazing! This is a great book. Excellently written. Of course it couldn't be a great book if it weren't for the fact that Scala is a totally awesome language. When I was teaching myself Perl, I had to read the book (*the* Perl book, _Programming Perl_), two times in order to get it. It was just so different from any programming language I had previously known, that I just couldn't get it the first time. I knew pretty early on into the Scala book that I would have to read it twice, for the ...more
Rod Hilton
Oct 11, 2011 rated it really liked it
Shelves: programming
I've heard a lot of people refer to Programming in Scala as "dry" or "boring". I think this description is not accurate, and a more accurate description is "thorough".

Programming in Scala is not a book to get you up and running in Scala quickly, writing good Scala code as soon as possible. This book is about UNDERSTANDING Scala, and not just how to use it, but how it works internally, what aspects of it are merely syntax sugar, and what that sugar is converted to under the hood. It covers aspect
Yamir Encarnacion
After completing about 40% of the book according to my Kindle for iPad this is what I have to say.

Things I love about the book:
(1) the Kindle for iPad edition was very well formatted (has a hyperlinked table of contents, hyperlinks throughout the book, chapters start on a new page, well formatted and easy to read code examples)

Things I like about the book:
(1) thorough (the book covers a lot of material)
(2) clearly written with no obvious typos/errors
(3) liked the way each chapter was organized.
Sep 11, 2011 rated it it was amazing
Shelves: tech
This is how a book about a programming language should be written. It gives you the basics, but also provides details that you should know to be effective and efficient using Scala. What makes the book really great is that it is useful even if you aren't planning on writing a line of Scala. There are a lot of good programming practices and patterns that are given in the book (both explicitly and implicitly).
Vitor Cavalcanti de Albuquerque
TL;DR: This is the book to go if you want to feel comfortable about Scala, but it takes time and patience from the reader. The examples in this book won't teach you how to build complex systems. The Kindle version is perfect.

This book will teach you all the magic behind Scala. I liked this book a lot because it's simple to understand and clearly explain why some things happen in Scala. If you want to feel comfortable working with Scala, then this is the book to go.

However, it requires some effo
Daniel Korzekwa
Nov 02, 2010 rated it really liked it

For those, who want to learn more about Scala, I'd like to recommend very good book, actually one of the best books I read this year. Despite the fact it's a technical book I would compare it to reading Harry Potter. Simple language, easy to understand, short chapters and can't stop reading it. Here is the link: Programming in Scala by Martin Odersky
Apr 16, 2016 rated it it was amazing
Pretty good fuckin' programming book, okay?!
May 26, 2017 rated it it was amazing
Shelves: nf-science-cs
Tips for learning Scala from someone who did it against their will and is now the senior most Scala engineer in their office somehow*:

1. Google around for Twitter's material on Scala (specifically this and this) and work through it.
2. Attempt some Scala. Be bad at it. Hate Scala. Swear it's the dumbest language ever invented and what on earth is functional programming doing.
3. Return to the Twitter material vaguely understanding better what Scala is and why it's the way it is.
4. Make peace with
Rahul Phulore
Oct 03, 2012 rated it really liked it
Still the best book to get into Scala. A few complaints:
1. A lot of it needs to updated to the current language version.
2. Some examples in the book are mentally taxing and drive attention away from the main topic.
3. Type classes deserve more attention.
4. Their should be a greater emphasis on language philosophy.
Imran Kazi
Nov 06, 2016 rated it it was amazing  ·  review of another edition
Odersky is a poet of computer language and Scala is his haiku.
Rutvik Patel
Aug 15, 2017 rated it it was amazing  ·  review of another edition
Shelves: programming
val book: String = "Programming in Scala"
s"one should keep it (${book}) around as long as he/she is doing ${book}"
May 04, 2015 rated it it was amazing
Ok, just finished reading this book, well, I agree with those majority of readers that this book is "must read" for every Scala dev. Even it is written by creator of Scala, the guy with pure and strong scientific and theoretical background, the book is read quite easy, trust me, I am a C++ dev, I've read corresponding C++ Stroustrup's bible, it is nightmare, this Scala book is just a teenage comics
comparatively to C++ sibling book.
Eric Casteleijn
May 21, 2014 rated it did not like it  ·  review of another edition
Scala is probably the worst programming language I've had the misfortune to use. The syntax and the way the compiler works make it feel like a rushed experiment. This book either flaunts the flaws of the language, or jokingly dismisses them. If you're forced to program in Scala, don't buy this book. I hear "Scala for the Impatient." is better, but best of all just try to avoid it altogether.
Jordan Howe
Jun 13, 2011 is currently reading it  ·  review of another edition
Great book. Peppered of dry jokes. Like "now you are *literally a Scala expert. Footnote: *figuratively speaking".
Mar 29, 2013 rated it it was amazing  ·  review of another edition
Not a lot to say here, other than: not optional if you're a Scala developer!
Jens Rantil
Feb 20, 2015 rated it did not like it
Shelves: computer-books
Too long. Must be a quicker way to learn Scala.
Trung Nguyen
Jul 11, 2015 rated it it was amazing
A very easy to understand book on Scala.
Harit Himanshu
Dec 28, 2016 rated it it was amazing  ·  review of another edition
This is best book on Scala. This serves as a good reference to re-read concepts about Scala
Mar 24, 2017 rated it it was amazing  ·  review of another edition
If you're going to be doing Scala every day, buy it now!
Arvind Balasubramaniam
Jun 12, 2017 rated it really liked it
Shelves: computers
Very detailed and thorough book. A bit verbose at times but it serves as a good reference for those who like to dive deep. Examples weren't trivial but weren't too complex either. Some example themes such as the circuit model were reused which is a good thing since it allows you to focus on the content more.

This was my first introduction to scala, and while it did seem imposing in the beginning, I was able to finish it (except the last 3 chapters on parsers, gui and spreadsheets) within 20 days.
Jan 25, 2020 rated it really liked it
An excellent book for learning Scala, with a good balance between depth and approachability. The examples and the issues raised are interesting and illustrative, and the organization is sound, interleaving chapters with an object-oriented and functional focus.

I would have liked to have some solved exercises so that I could test my understanding on the go.
It would have been enough with a more clear statement of what features the developed examples were going to have.

The edition I read (3rd) is a
Jun 11, 2017 rated it it was amazing
I highly recommend reading it. I have read this book after about a year of using Scala in my daily programming job and I have still learned a lot. What is funny more about the syntax in the first few chapters. This book is a tutorial but it gives you insight into decisions that need to be made while designing and implementing a programming language. You can also learn how some features were intended to be used, as seen by language authors. It is a long read but with click after a click you will ...more
Jul 31, 2017 rated it really liked it  ·  review of another edition
Comprehensive and complete, but personally I tend to prefer more in the way of hands on exercises to learn a new language, where this book provided more of an API / language architecture overview. I came out finding that I felt I knew the parts of the language, but not yet how to practically use them. I'd recommend it to anyone serious about Scala, but if you're like me, you'll also want some supporting additional reading to fill in the practical gaps.
Alvaro Tejada Galindo
Jul 20, 2017 rated it really liked it
Shelves: programming
Pretty nice book about Scala...well really didn't fit with me...I feel it kinda rigid and not casual...good reference but prefer a different writing style...

I's a programming book not a novel...but still...and yes...I was written by Scala's author...but still...not my first choice for a Scala book...
Mar 25, 2018 rated it really liked it
Shelves: cs, scala
Nice intro to Scala. Especially the discussion of case classes and pattern matching was better than most of the on-line materials. The coverage of concurrency could have been better (the examples didn't really show how to deal with threads in asynchronous scenarios). A nice bonus: this book improved my knowledge and understanding of Java.
Piotr Kalinowski
Very well structured and comprehensive guide

This a very well structured guide throughout basic and more advanced features of Scala, gradually introducing more and more complex topics.

I particularly liked the fact that many of the included examples were of somewhat higher complexity, for example, a 2D text layout library. I think it helps to engage with the material better.
Taha Metougui
Sep 04, 2020 rated it it was amazing
I'm 60% through the whole book, never coded in Scala coming from Java, and one thing I can say about it. It's perfect if you want to understand the very core of how Scala works, and how it libraries are shaped. I think it's worth if you're interested in understanding how the syntax sugar works and how the compiler parses the code.
May 10, 2017 rated it really liked it
From the scala creator itself, this book provides comprehensive details about scala and functional programming in general but this book is huge and should be consider more as reference book than go to guide. If you are starting with scala I will suggest scala for impatient or scala twitter school
Jul 25, 2017 rated it really liked it  ·  review of another edition
Very good overview of all of Scala, some of the later Chapters (20 onwards) are quite difficult and require a lot of thinking. Probably best to get a good grounding in the language and then come back and read those later but definitely got me up to speed with where I needed to be.
Yong Lai
Sep 08, 2017 rated it it was amazing
This is a very comprehensive introduction book on the Scala programming language. Not only it covers the basics, but also delves into advanced topics and inner workings of the Scala language. It is going to be on my reference shelf in days to come.
« previous 1 3 next »
topics  posts  views  last activity   
Java Programming: 2020 April/May Programming in Scala 1 2 Apr 03, 2020 07:29AM  

Readers also enjoyed

  • Functional Programming in Scala
  • Designing Data-Intensive Applications
  • The Pragmatic Programmer: From Journeyman to Master
  • Effective Java
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • Java Concurrency in Practice
  • The Mythical Man-Month: Essays on Software Engineering
  • Patterns of Enterprise Application Architecture
  • Spring in Action
  • JavaScript: The Good Parts
  • Learning Spark: Lightning-Fast Big Data Analysis
  • Kafka: The Definitive Guide: Real-Time Data and Stream Processing at Scale
  • Fluent Python: Clear, Concise, and Effective Programming
  • Cracking the Coding Interview: 150 Programming Questions and Solutions
  • Refactoring: Improving the Design of Existing Code
  • Domain-Driven Design: Tackling Complexity in the Heart of Software
  • Spark: The Definitive Guide: Big Data Processing Made Simple
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »

News & Interviews

Did you set an extremely ambitious Reading Challenge goal back in January? And has this, uh, unprecedented year gotten completely in the way of...
44 likes · 18 comments
“Inheriting from Application is shorter than writing an explicit main method, but it also has some shortcomings. First, you can't use this trait if you need to access command-line arguments, because the args array isn't available. For example, because the Summer application uses command-line arguments, it must be written with an explicit main method, as shown in Listing 4.3. Second, because of some restrictions in the JVM threading model, you need an explicit main method if your program is multi-threaded. Finally, some implementations of the JVM do not optimize the initialization code of an object which is executed by the Application trait. So you should inherit from Application only when your program is relatively simple and single-threaded.” 1 likes
“You may be wondering why you can't access the elements of a tuple like the elements of a list, for example, with "pair(0)". The reason is that a list's apply method always returns the same type, but each element of a tuple may be a different type: _1 can have one result type, _2 another, and so on.” 0 likes
More quotes…