K77 (1744374) writes "Have you noticed all the excitement about Scala lately? It *is* a remarkable language, built in part on an audacious wager that a productive language can come from academia. Don't believe it? Well, the number of job postings for Scala programmers is rising and brining with it a tide of new books. "Scala for the Impatient" should be at the top of your list, especially if you're too busy to read programming books.
I don't read programming books. I read code. So I did my usual thing with Scala: I cut straight to the grammar. Scala is my first expereince with a language I could not effectively grok from just the grammar. I could see there's a *lot* going on with Scala, much of it subtle and beautiful. I knew I needed help.
First, let's give credit where due: there are plenty of fair to middling books on Scala now. Most of them are pretty similar, both to each other and to contemporary books for other languages. That's not too surprising: publishers have worked out a pretty reliable script for developing programming books which sell. "Scala for the Impatient" takes that script and folds, spindles, mutilates and generally does a host of other things better left unsaid. Good for us!
Cay Horstmann (of Core Java fame) does some things which surprise and delight in "Scala for the Impatient." First, he invites you to *experience* Scala as the first indispensible step to learning Scala. The first chapter sets tone by dragging you headfirst into the water, deliberately not explaining everything right away. Be assured, it gets explained later. Just swim. This sets the stage for the exploratory approach used thorughout the book. This is a refreshing contrast to the many books which take a dry, almost clinical approach to Scala.
Another thing Horstmann has done is think very deeply about what you need to learn and when. He tells you in plain English what you must understand right away, what you'll need soon, and what you can safely leave to the Scala gods. And he tells you *why*. The result is a bit unconventional but works perfectly. Consequently, functional programming does not come into full view until chapter 12. (Wow!) But there is not one flat stretch on this roller coaster. Chapters 2 through 10 are intense. They have to be, to prepare you. Along they way, precursors of functional programming are introduced so artfully you might not notice.
The last third of the book deals with cool stuff which is attracting so many users to Scala: actors for concurrency, parsing your own domain specific languages, and in particular making sushi out of XML.
Here are some general thoughts to close. Do the exercises. They're worth it! Bring your A-game; you'll need it. Kudos to the publisher for letting Horstmann take some risks. The result is a well edited, fast-faced and rewarding."
Link to Original Source