|If you've been meaning to learn Scala, but haven't had the time to get around to it, you really should invest in this book. Well structured, with chapters aimed at all levels and at both application programmers and library designers, the book is a joy to read. Probably the most concise reference for Scala available on the market, this deserves to be on every programmers bookshelf.|
With one of the most appealing titles I've ever seen in a programming book, I could not recommend Scala for the Impatient highly enough. The author, Cay Horstmann, has written many books about Java, and here he does a great job of explaining Scala, starting at the very basics. Keeping things concise and relevant at all stages, this is a book that respects your own limited time.
The structure of the book is excellent - each chapter is tagged with a difficulty level (Beginner to Expert) and whether it is more focussed on application programmers or library writers. Straight away, this approach sets the book apart.
The first chapters focus on entry level stuff, from using the interpreter, to getting to know your away around the language control structures and functions. By the time you've read the first 8 chapters, you'll have hit how Scala deals with the concepts you're already familiar with from Java - objects, classes, inheritance and packages are all given their own focussed chapters.
The fact that Scala is about functional programming makes some people nervous of the language, but you won't need to worry about that until over halfway through the book at Chapter 12 (Higher-Order Functions). The fact that time is taken to establish the basics first, before moving onto functional programming is one of the most accessible parts of the book.Reasons for interest in Scala will vary - for some it's curiosity, but for others it's as serious as making a decision on whether to adopt the language for their project. Whatever your reasons, taking the time to read this book, and follow through on the examples - the reward is a great insight into Scala. As a Java developer, Cay does a fantastic job of explaining the differences between Java and Scala.