It doesn't take too much effort for somebody who is a Java programmer to learn Scala. Like I said in the beginning the hardest part for me was getting started but after that I became excited about what I could do with this language and I became motivated to learn more. Scala compiles to Java byte code and runs on the Java VM. You can reference existing Java libraries in your code and make full use of their classes. Scala pretty much does everything Java does but on top of that it offers a whole lot more. I am also enjoying learning other programming concepts and techniques. Scala is an object-oriented and functional programming language. I am learning a lot about functional programming and I have started thinking differently about how I can use these techniques and concepts to produce better code.
So if you are interested in learning Scala and come from a Java programming background like me than I would recommend the following links:
- Daniel Spiewak (Roundup Scala for Java Refugees) - A six part tutorial and nice place to start
- Programming in Scala - A Comprehensive Step-by-step Guide by Martin Odersky the founder of Scala. If you can afford this book I would highly recommend it. Below you can download the first two chapters:
- Learning Scala - a reference page to all sorts of papers and tutorials.
There are also a number of open source projects written in Scala and I would recommend anyone getting started to download the projects and take a look at the source code. Below are a few I have come across and learnt from:
- Lift - Scala web framework
- TalkingPuffin - Twitter client
- Scalaffinity - library containing core functionality used by any social networking web site