The document discusses reasons for using the Scala programming language, including its support for functional programming concepts like map, filter, and fold; functions as first-class citizens; lambda functions and closures; and parallel collections. It also notes Scala's integration of object-oriented and functional paradigms, static typing with duck typing, interoperability with Java, and more concise code. Links are provided to Scala code examples and resources.
2. Why Scala?
ï§ Functional Programming (map, filter, foldLeft, foldRight, flatMap, etc..)
ï§ Functions as First Class Citizen
2001 - EPFL
ï§ Lambda/Closure
ï§ Higher Order Functions, Currying and monads
ï§ Parallel Collections (for multi-core processors)
ï§ Evolutionary OO (case class, object, trait, pattern matcher, with*)
ï§ You can use same jars/frameworks (Spring, Hibernate, Junit, etc..)
ï§ Solid Documentation, Books, websites, blogs, community, twitter, etcâŠ
ï§ Static Typing BUT Scala has Duck Typing
ï§ Runs on the JVM Java 1.3 - 2000
ï§ Awesome interoperability with Java NEW Javac 1/3
ï§ Same java tooling â Eclipse â Scala IDE (Not Perfect ï) smaller
ï§ Less noise, do more with less code than Java (LOC x2) Generics, Right?
2
Martin Odersky