or
Sign in to turn on 1-Click ordering
More Buying Choices
Have one to sell? Sell yours here
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine (Pragmatic Programmers) [Paperback]

Venkat Subramaniam
4.0 out of 5 stars  See all reviews (20 customer reviews)

List Price: $34.95
Price: $25.05 & FREE Shipping. Details
You Save: $9.90 (28%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 6 left in stock (more on the way).
Ships from and sold by Amazon.com. Gift-wrap available.
Want it tomorrow, June 20? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

August 4, 2009 193435631X 978-1934356319 1

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 the Java Platform.

The increasing popularity and availability of multicore processors is creating a whole new set of challenges--although you can enjoy true concurrency, you're now faced with higher contention and synchronization issues. Deploying an existing application on a multicore processor may bring out previously hidden concurrency issues. Java's multi-threading facility by itself isn't enough---it's a very low level abstraction. Instead, you need a paradigm that provides a higher level of abstraction to deal with concurrency. It's time to embrace Functional Programming.

Scala is a hybrid Object-Oriented/Functional Programming language on the JVM. Using Scala, you can create traditional imperative programs, intermix them with Java code, and at the same time take advantage of higher levels of abstraction. You can use features that lead to concise, highly expressive code that remove the pain of dealing with concurrency.

Programming Scala will show you the fundamentals of functional programming using Scala. Very quickly, you'll learn how this statically typed language can give you dynamic capabilities to create concise, scalable, highly capable concurrent code.

Pragmatic programmers always use the right tool for the job. For concurrent programming on the Java VM, Scala is the tool, and Programming Scala by award-winning author Venkat Subramaniam is your guide.


Frequently Bought Together

Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine (Pragmatic Programmers) + Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition + Scala in Depth
Price for all three: $90.42

Buy the selected items together


Editorial Reviews

About the Author

Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an adjunct faculty at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly invited speaker at several international conferences. He's (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer.


Product Details

  • Paperback: 250 pages
  • Publisher: Pragmatic Bookshelf; 1 edition (August 4, 2009)
  • Language: English
  • ISBN-10: 193435631X
  • ISBN-13: 978-1934356319
  • Product Dimensions: 7.6 x 9 inches
  • Shipping Weight: 14.4 ounces (View shipping rates and policies)
  • Average Customer Review: 4.0 out of 5 stars  See all reviews (20 customer reviews)
  • Amazon Best Sellers Rank: #706,231 in Books (See Top 100 in Books)

More About the Author

Dr. Venkat Subramaniam, founder of Agile Developer, Inc., has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia. Venkat helps his clients effectively apply and succeed with agile practices on their software projects. He is a frequent invited speaker at international software conferences and user groups. He's author of .NET Gotchas (O'Reilly), coauthor of the 2007 Jolt Productivity award-winning book Practices of an Agile Developer (Pragmatic Bookshelf),
and author of Programming Groovy (Pragmatic Bookshelf).

Customer Reviews

Most Helpful Customer Reviews
31 of 32 people found the following review helpful
5.0 out of 5 stars Book Structure is Everything.... July 6, 2009
Format: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.
Comment | 
Was this review helpful to you?
28 of 32 people found the following review helpful
5.0 out of 5 stars Great book that hits the spot July 10, 2009
Format: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.
Comment | 
Was this review helpful to you?
21 of 24 people found the following review helpful
5.0 out of 5 stars Do complex problems require complex solutions? July 14, 2009
Format: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...
... Read more ›
Comment | 
Was this review helpful to you?
8 of 9 people found the following review helpful
5.0 out of 5 stars Java is dead, Long live Java July 11, 2009
Format:Paperback
For several years it has been obvious that Java (the language) is in a crisis. In order to deal with modern software development problems, the complexity of the language has grown, made even more complex by the legacy of Java (the language) itself.

With the rise of JRuby, Erlang, Clojure, and Scala, Java (the platform) is vibrant with compelling languages that solve very specific kinds of problems. Best of all, its all Java (the bytecode and libraries), so it all interoperates.

Scala is a great example of the 'new thinking'. Once upon a time, the concurrency capabilities in Java were pretty revolutionary to have at the language level but still left the developer with a complex set of problems to solve (just look at the book Java Concurrency in Practice to see why). As core counts go up on our computers, this will only get more complex. Scala's concepts of enforced immutability, message passing and thread-based Actors reduces concurrency to a tractable problem... So much so that other reviewers seem upset the book doesn't cover it in more detail. I don't think it needs to... A "Scala Concurrency in Practice" book would be pretty small, and of pretty limited value. And thats the point - by reducing it to a tractable problem, you spend less time worrying about the mechanics and edge cases, and more time solving problems related to your core business.

"Managing multi-core complexity" is clearly a killer use case for Scala, and as a subtitle for this book gives a Java developer the reason why Scala should be in their developer's toolbox. You can't use Scala without knowing the language, its idioms and design motivations, and this book gives you all of that.
... Read more ›
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
3.0 out of 5 stars Title should be Intro to Scala for Java programmers
Concurrency is dealt with by explaining the actors model and showing several examples of how to do that. Read more
Published 11 months ago by Joe
4.0 out of 5 stars Excellent primer
As others have noted, the book's value goes beyond its topic and serves as a good model for how a nuts and bolts introduction to computer languages and frameworks should be... Read more
Published 13 months ago by Jon Torodash
4.0 out of 5 stars Good introduction for Java Developers
I just want to take this opportunity to say thanks to Dr. Venkat as i think this book is a good introduction for folks whom have learnt and used Java in their professional lives... Read more
Published on April 17, 2011 by Raymond Tay
4.0 out of 5 stars smooth introduction to Scala basics
Original review written by Gianfranco Tognana, JUG Lugano, [...]

This book is a fast paced and 'pragmatic' introduction to Scala, a new programming language that mixes... Read more
Published on October 4, 2010
4.0 out of 5 stars Getting started with Scala, for a Java programmer
As a few others have pointed out, the title is misleading, there is little in the book on the actual subject of "solving multi-core" complexity. Read more
Published on April 4, 2010 by Ilya Grigorik
5.0 out of 5 stars Great introduction to Scala for Java programmer
Courtesy of Pawel Stawicki from Szczecin Java User Group:

"Courtesy of The Pragmatic Bookshelf I was able to read "Programming Scala" by Venkat Subramaniam. Read more
Published on March 23, 2010
4.0 out of 5 stars Spectacular introduction
This is a great introduction to Scala. I do agree with other reviews here, that the title is misleading, BUT if what you're looking for is to get to know Scala and what is it... Read more
Published on January 24, 2010 by Leonardo F. Gomes
5.0 out of 5 stars Title is misleading, but it's a fantastic introduction to Scala
This book is a very fast, easy to read introduction to Scala aimed squarely at people familiar with Java but unused to functional language programming. Read more
Published on October 20, 2009 by M. Swierczek
5.0 out of 5 stars Libraries catering to software developers will find this packs in...
Developers facing issues in programming and working with different applications may have heard of the power of Scala in bringing disparate devices together - and PROGRAMMING SCALA... Read more
Published on October 12, 2009 by Midwest Book Review
5.0 out of 5 stars A valuable primer
Coming from a Java/Groovy background, I have looked for a good introduction into the language and scanned through various books. For my purpose, this one delivers best! Read more
Published on August 19, 2009 by Dierk Koenig
Search Customer Reviews
Only search this product's reviews

What Other Items Do Customers Buy After Viewing This Item?


Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Forums

There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Listmania!


So You'd Like to...


Create a guide


Look for Similar Items by Category