SCALA Stands Over JAVA Scala is a language that mix functional and object oriented programming. It allow you to use both declarative and programmatic style of programming. Scala does two things extremely well which Java currently does not. Solve functional problems At the most basic level, Scala has fully fledged closures with collections support. This means you no longer have to write boiler plate code such as public ListltItemgt boughtUser user ListltItemgt result new ArrayList for Item item currentItems if user.boughtitem result.additem return result But instead write something like def boughtuser User items.filteruser bought Solve concurrency in a safer way http//www.adesrala.blogspot.com Scala has an actors model some other goodness which is inheritly safer than Java39s mutable data locks on Thread model .