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