Most Helpful Customer Reviews
25 of 26 people found the following review helpful:
5.0 out of 5 stars
Book Structure is Everything...., July 6, 2009
This review is from: Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine (Pragmatic Programmers) (Paperback)
Last year, I decided to go through what I thought was to be an easy undertaking and that was to learn Scala. The only book at the time was Artima's 'Programming In Scala' (note the 'In' in the title, it's a different book), and the book was OK at first, but became a very difficult read as the chapters progressed. The reason for the hardship is because that book does what a tremendous amount of programming books do erroneously, they provide long examples and even longer explanations for those examples over the course of many pages. The problem with that is that you often are flipping too much to reference back to the code and back again to the explanation, and you end up at the inevitable point that you realize that you didn't really learn that much.
This book, 'Programming Scala', does it right. It gives you a code snippet on the average of 12-15 lines and provides a quick and clear explanation. Venkat Subramaniam repeats that recipe throughout the book and it really increases your chances of retaining this information, which is exactly what you need. The structure of this book is a winning formula.
'Programming Scala' covers generics, collections, and pattern matching better than any book on the market. You will appreciate that it offers more Scala/Java translations and gets into programming classes and objects a lot sooner than other Scala titles
If you want to learn Scala quickly and you want to be able to retain what you read, and if you need a reference long after you read the book initially, this is a great title to have in your library.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
23 of 27 people found the following review helpful:
5.0 out of 5 stars
Great book that hits the spot, July 10, 2009
This review is from: Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine (Pragmatic Programmers) (Paperback)
The reviews that say the title is misleading completely miss the point. Scala is a great language for current programming, but not because it's packed with libraries for managing concurrency. Lea's book and Goetz's excellent Java concurrency books do a good job of taking this approach, but that's because Java's concurrency model demands such an approach to the problem. Functional languages that are constructed like Scala can effectively sidestep many of the concurrency pitfalls precisely because they take a different, simpler approach to the core programming problem, addressing concurrency where other languages fail: mutable state.
This book does an excellent job of building foundations for building applications in the right way, using the functional paradigms. With a hybrid object-oriented/functional language, this is the strongest approach to the problem.
600 page reference tomes are dead. They're obsolete before they hit the shelves. Modern languages just move too fast. The best books get you relevant information quickly, in a form that can let you digest a complicated topic in a reasonable amount of time. Google will always be a better reference.
This is a great book for a good price.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
17 of 20 people found the following review helpful:
5.0 out of 5 stars
Do complex problems require complex solutions?, July 14, 2009
This review is from: Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine (Pragmatic Programmers) (Paperback)
In Programming Scala, author Venkat Subramaniam answers this question with a definitive, "No." He says, "The benefits [of Scala] have removed a huge burden from your shoulders. With Scala, you can focus on your application logic instead of worrying about the low-level threading concerns."
As a Groovy/Java developer, I found much to like about Scala. Scala classes compile down to java.lang.Objects, so interoperability with Java is baked-in. The syntactic sugar shared with Groovy (triple quotes, optional semicolons/parentheses/exception handling, sensible defaults for class/method accessibility, etc.) makes me feel right at home. This allowed me to focus on the semantic differences that Scala brings to the party -- tuples, companion objects, and the ever-present val (an immutable variable).
You see, the complexity of multithreading on the JVM largely evaporates once everything is immutable. As he says, "In functional programming, functions are pure. The output they produce is based solely on the input they receive, and they are not affected by or affect any state, global or local." The book starts with that basic premise, and then proceeds to walk you through simple examples that reinforce that notion. Each chapter builds on the next until finally you have a finished application at the end of the book, complete with XML handling, calls to RESTful web services, and GUI to boot.
Does Venkat supply the complex problems for you to solve? No -- you probably already have them at work. Does he supply a clearly written, easy to follow introduction to Scala that gives you the skills to solve them yourself? Absolutely. But he says it best: "If your objective is to learn everything that there is to learn about Scala, you will not find that in this book...What you will see in this book are essential concepts that you need to know to start using Scala." I'm ready to start using Scala, and I can't think of an easier (or more enjoyable) way to get up and running quickly in a promising new language.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
|