4 ms·
Ask HN: What’s the best book/way to learn Scala?
I intend to start hacking with Scala sometime in the near future.
Any pointers regarding how to best learn it? Any books you recommend I get and/or shy away from?
(Also note I have done almost no functional programming, so books that really teach how to think that way are also appreciated.)
- codeslinger 16y agoI have all the books currently out now on Scala and I think "Programming Scala" by Wampler and Payne is the best one for learning the language: http://www.amazon.com/Programming-Scala-Scalability-Functional-Objects/dp/0596155956/ref=sr_1_2?ie=UTF8&s=books&qid=1273795120&sr=8-2 http://www.amazon.com/Programming-Scala-Scalability-Function... Steer clear of the Artima book: its huge, out of date and not written particularly well.
- alanh 16y agoInteresting, considering the Artima book has so many 5-star reviews on Amazon.
- stephenjudkins 16y agoI agree about the Artima book; its organization follows the Scala specification (http://www.scala-lang.org/docu/files/ScalaReference.pdf http://www.scala-lang.org/docu/files/ScalaReference.pdf) very closely. I'd almost advise reading the specification instead, but it's a slog. The O'Reilly book is great. Also keep in mind that several important changes or additions to the language have been made with version 2.8, and many books aren't up to date.
- brl 16y agoI disagree with this to the point of saying that the Artima book is one of the most well written technical books I've ever read and the O'Reilly book is rather a mess. The Artima book is written by the creator of the language and while it is a couple of years old the information is still 95% relevant to the latest language changes. I would recommend getting a copy of both of them, but you might want to check out the online version of the O'Reilly book before buying it: http://programming-scala.labs.oreilly.com/ http://programming-scala.labs.oreilly.com/ The Pragmatic Programmers book is not bad either, but it's only a short introduction to the language compared to the other two books mentioned. All three books have nearly identical titles: Programming (in) Scala
- kashif 16y agoNo matter what book you read - the Scala syntax will be your biggest problem. I finally 'got it' when I realized or rather made room for the fact that Scala has two sets of syntax - one for OOP and another for functional programming. And it seamlessly mixes the two styles - this creates a lot of confusion for the first time scala programmer. It also makes it diffcult to maintain code within a team of programmers using Scala unless they come to some agreement on style. On a side note - Scala is not my fav. JVM language because, personally, its in the same class as Perl and C++. Where syntax is concerned Clojure is much cleaner.
- gtani 16y agoI've read most of the OReilly, Artima and Pragmatic books, and read Pollak's book a long time ago (you can read 1/2(?) on google books). The Pragmatic book is a very gentle intro which makes the type and object systems seem like a ruby- or python-learning exercise. It's not. The Oreilly has the most comprehensive info, and is also quite blunt about 2.7's shortcomings (the animal-trap icons). It's a very dense read but I think it's definitely on the path of least resistance (i.e. not reading it will make learning the language more difficult. Course there's no reason not to read it free, online. The Artima book, IMHO is really a nice introduction, explains clearly but keeps going at a good pace. It's just a lot to read. The Artima book is also one of the only well-indexed software books I've ever countered, kudo's to authors and production people for that, that's a huge time-saver.