Scala is a hybrid Object Oriented & Functional programming language, which means you can program in OO style or you can program in a purely Functional style.The Scala website has a A Scala Tutorial for Java Programmers.
Start with the excellent free Coursera mooc Functional Programming Principles In Scala & Principles of Reactive Programming by Scala creator Martin Odersky. This course runs every year and is a great place to get started with FP in Scala, also see Functional programming for more on functional programming.
- Scala Standard Library API
- Reference Docs
- Scala School!: A Scala tutorial by Twitter
- A Tour of Scala: Tutorial introducing the main concepts of Scala
- Scala Overview on StackOverflow: A list of useful questions sorted by topic
- Programming in Scala. Martin Odersky, Lex Spoon and Bill Venners 2010 code examples here. also [Full text of 1st edition available online]
- Martin’s talk at OSCON 2011: Working Hard to Keep it Simple (slides)
- Scala for the Impatient. Cay Horstmann. Addison-Wesley 2012. – [First part available for download.]
- Also check scalapuzzlers
- Glossary of Scala and FP terms
- Scala By Example
- Scala Cheatsheet
Java is far more widely used than Scala, and probably always will be. But in the emerging world of Big Data, distributed processing and scalability. Tools like Kafka (messaging), Spark (distributed analytics) and Akka (actor-based concurrency) are all written in Scala. There are Java APIs for all of these but the Scala API for Spark is much easier to use than the Java API. A lot of this stuff is increasingly based on ideas from the Reactive Manifesto, and Typesafe (the company behind Scala).