Introduction to
WHO AM I?
 •   Consultant

 •   JVM/Java - 7 years

 •   Scala - 1 year
So...

what is
•   Alternative lang. on the JVM


•   ”scalable language”


•   Statically typed


•   Hybrid language: OO _and_ functional


•   Java compatible
Nifty

Language features
 •   Pure OO

 •   Concise syntax

 •   Type inference

 •   Pattern matching

 •   Structural types

 •   Lambdas and Higher order API:s
We’re developers!

Show us some
code already!
Pure OOis an object
  everything
SCALA Syntax
Semicolon inference
Uniform Access Principle
Every statement is an expression
One line class declarations
One line class declarations++
Type Inference
   The compiler ”— I know your type”
Pattern Matching          Switch on stereoids




  •   Match on types

  •   Deep matching to extract values
Lambdas
 Functions are objects
                         type: Hat => String
Lambdas   Shortify!
Higher order APIS
           Super-sweet collections




           Express what is done, not how!
Everything
      Is Nestable
Structural types
             ”I want something that quacks like a duck”




       ck?
  - qua
Interactive REPL




              Exploratory development
I wanna try it!!!

 HOW do i get My           hands on it?

   You need:
     A recent JDK - google JDK
     Scala: http://www.scala-lang.org


You may also want an IDE:
www.scala-ide.org or http://www.jetbrains.com/idea/
Questions?
Slides:
 topconf.com / the program page


mail:   johan.andren@mejsla.se


twitter: @apnylle

Introduction to Scala