Top Banner
SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31
13

Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

Aug 15, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

SCALA LIVEHeiko Seeberger, WeigleWilczek

Java User Group Darmstadt, 2011-03-31

Page 2: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

SCALA IS ...

mature concisestatically typed

lightweight

object-functional

expressive

interoperable with Java

Page 3: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

MATURE

Since 2003

Version 2.8

Page 4: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

OBJECT-FUNCTIONAL

Page 5: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

STATICALLY TYPED

Page 6: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

LIGHTWEIGHT

Semicolon Inference Type Inference

Implicit ConversionsInfix Operator Notation

Page 7: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

CONCISE

public class Person { // Java

private final String firstName; private final String lastName;

public Person(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; }

public String getFirstName() { return firstName; }

public String getLastName() { return lastName; }}

class Person(val firstName: String, val lastName: String)

Page 8: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

EXPRESSIVE

"Calling Person.toString" should { "return first name blank last name" in { val person = new Person("John", "Doe") person.toString mustEqual "John Doe" }}

Page 9: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

INTEROPERABLE WITH JAVA

scala> import org.apache.log4j._import org.apache.log4j._

scala> val testLogger = Logger getLogger "test"testLogger: org.apache.log4j.Logger = ...

Important!

Page 10: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

LET’S GET LIVE!

Page 11: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

DEVELOPMENT ENVIRONMENT

SBT

IDE

Page 12: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

AVAILABLE MAI 2011

Page 13: Heiko Seeberger, WeigleWilczek Java User Group Darmstadt ... · SCALA LIVE Heiko Seeberger, WeigleWilczek Java User Group Darmstadt, 2011-03-31

HAVE FUN WITH [email protected]

Twitter: hseeberger