scala fs 2012
DESCRIPTION
Scala FS 2012First Scala presentation at Functional SocietyTRANSCRIPT
@diego_pachecoSoftware Architect | Agile Coachabout.me/diegopacheco 1
Java 1.3 - 2000NEW Javac 1/3
smallerGenerics, Right?
Functional Programming (map, filter, foldLeft, foldRight, flatMap, etc..) Functions as First Class Citizen 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 Awesome interoperability with Java Same java tooling – Eclipse – Scala IDE (Not Perfect ) Less noise, do more with less code than Java (LOC x2)
2001 - EPFL
Why Scala?
Martin Odersky2
3
Scala Code: @Bean Property
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/basic/bean2short.scala
4
Scala Code: case classes
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/caseclass/CaseClass.scala
5
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/basic/loop/MoreAdvancedFunWithForExpression.scala
6
7
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/basic/oo/MathOverload.scala
Scala Code: Operator Overload
Scala Code: Functional Programming
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/basic/reduce.scala
8
Scala Code: Traits & Mixings
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/basic/oo/traits/SelectiveTraits.scala
9
Scala Code: Lambda/Closure
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/clojure/AnonymousFunction.scala
10
Scala Code: Currying
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/currying/CurryingFunctions.scala
11
Scala Code: Currying
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/currying/CurryingFunctions.scala
12
Scala Code: Specs2
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/specs2/Specs2.scala
13
Scala Code: Pattern Matcher
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/pattern/matching/PatternMatching.scala
14
Scala Code: DSL
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/blob/master/scripts/scala/scala-playground/src/com/github/diegopacheco/sandbox/scripts/scala/typesystem/implicits/ImplicitsConversions.scala
15
Resourceshttp://www.scala-lang.org/http://twitter.github.com/scala_school/http://scalatypes.com/http://akka.io/http://typesafe.com/
https://github.com/diegopacheco/Diego-Pacheco-Sandbox/tree/master/scripts/scala
16
https://github.com/diegopacheco/functional-society
http://www.twitter.com/funcsociety
More…
17
@diego_pachecoSoftware Architect | Agile Coachabout.me/diegopacheco
Thanks!Obrigado!
18