Programming Scala (Book for review).
Scala is relatively new programming language which merges object-oriented and functional programming worlds. Both of them have many fascinating aspects and if I also mention it does run on Java Virtual Machine, you should have no doubt it is worth learning. As the name implies, Scala is abbreviation of „Scalable”, which means it allows you to write simple scripts for daily usage and really big projects as well. In both cases it performs very well.
Programming Scala from O’Reilly is the point you should begin your journey from. It will guide you through all the aspects of the language, but former programming experience is highly recommended. Written by two well-known guys – Alex Payne from twitter and Dean Wampler – owner of Aspect Research Associates (Software Development Consultancy), so you should have no worries about quality of the material.
Book starts with fast comparison with other modern languages like Ruby, Python, etc. and reasons why you should choose it over any others. Next chapters give a nice explanation of object-oriented programming in Scala, traits, functions and multithreading with Actors (message-driven, Erlang-like threads). One chapter covers language built-in XML support and another one for DSLs. I was very surprised how easy it was to build my own DSLs. The last chapters give a nice overview of Scala tools and libraries for daily usage and some examples of interoperability with Java and its frameworks.
Programming Scala from O’Reilly is my second book about language. Together with Artima’s “Programming in Scala” it makes a truly complementary duo. Artima’s one is a more detailed language reference though it covers only 2.7 version of the language, on the other hand the O’Reilly’s one gives you the feeling of recently released 2.8 version. Buy both if you can! ;)