+ All Categories
Home > Technology > RheinJUG 2010 - Sprechen Sie Scala?

RheinJUG 2010 - Sprechen Sie Scala?

Date post: 08-Jun-2015
Category:
Upload: heiko-seeberger
View: 615 times
Download: 0 times
Share this document with a friend
Description:
Einführung in Scala mit vielen Live-Demos.
Popular Tags:
27
SPRECHEN SIE SCALA? Heiko Seeberger, WeigleWilczek rheinjug Düsseldorf, 18.03.2010
Transcript
Page 1: RheinJUG 2010 - Sprechen Sie Scala?

SPRECHEN SIE SCALA?Heiko Seeberger, WeigleWilczekrheinjug Düsseldorf, 18.03.2010

Page 2: RheinJUG 2010 - Sprechen Sie Scala?

WARUM SCALA?

Page 3: RheinJUG 2010 - Sprechen Sie Scala?

WARUM SCALA?

Which Programming Language would you usenow on top of JVM, except Java? - Scala.

James Gosling

Page 4: RheinJUG 2010 - Sprechen Sie Scala?

WARUM SCALA?

Scala, it must be stated, is the currentheir apparent to the Java throne.

Charles Nutter

Page 5: RheinJUG 2010 - Sprechen Sie Scala?

WARUM SCALA?

I can honestly say if someone had shown me ... Scala ... back in 2003 I'd probably have never created Groovy.

James Strachan

Page 6: RheinJUG 2010 - Sprechen Sie Scala?

WAS IST SCALA?

ausgereiftobjekt-funktional statisch typisiert

leichtgewichtig

knapp und präzise

ausdrucksstark

pragmatischinteroperabel mit Java

Page 7: RheinJUG 2010 - Sprechen Sie Scala?

AUSGEREIFT

Seit 2003

Version 2.8

Page 8: RheinJUG 2010 - Sprechen Sie Scala?

OBJEKT-FUNKTIONAL

Page 9: RheinJUG 2010 - Sprechen Sie Scala?

Any

AnyVal AnyRef

ScalaObject

java.* refscala.* ref

Int

Long

Unit

scala.* val

Null

Nothing

ALLES IST EIN OBJEKT

Page 10: RheinJUG 2010 - Sprechen Sie Scala?

1, 2, 3 a, b, cf

FUNKTIONALE PROGRAMMIERUNG

Keine Seiteneffekte

Funktionen höherer Ordnung

Page 11: RheinJUG 2010 - Sprechen Sie Scala?

STATISCH TYPISIERT

Page 12: RheinJUG 2010 - Sprechen Sie Scala?

LEICHTGEWICHTIG

Semicolon Inference Type Inference

Implicit ConversionsInfix Operator Notation

Page 13: RheinJUG 2010 - Sprechen Sie Scala?

AUSDRUCKSSTARK

"Calling Person.toString" when { "first and last name are not-empty" should { "return first name blank last name" in { val person = new Person("John", "Doe") person.toString should be ("John Doe") } }}

Page 14: RheinJUG 2010 - Sprechen Sie Scala?

KNAPP UND PRÄZISE

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 15: RheinJUG 2010 - Sprechen Sie Scala?

PRAGMATISCH

Page 16: RheinJUG 2010 - Sprechen Sie Scala?

INTEROPERABEL MIT JAVA

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

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

Wichtig!

Page 17: RheinJUG 2010 - Sprechen Sie Scala?

LIVE DEMO: HELLO WORLD

Page 18: RheinJUG 2010 - Sprechen Sie Scala?

LIVE DEMO: OO-GRUNDLAGEN

KlassenKlassen-Parameter Methoden

Default-ArgumenteFelder

Companion Objects

Page 19: RheinJUG 2010 - Sprechen Sie Scala?

LIVE DEMO: SCALATEST

Test-Werkzeug

DSL-Beispiel

Page 20: RheinJUG 2010 - Sprechen Sie Scala?

LIVE DEMO: IMPLICIT CONVERSIONS

Für Library-Entwicklung

Skalierbare Sprache

Page 21: RheinJUG 2010 - Sprechen Sie Scala?

LIVE DEMO: FUNKTIONALE LISTE

Type Inference OperatorenUnveränderlicheObjekte

Funktionen

höherer OrdnungFunktionsliterale Funktionen

Page 22: RheinJUG 2010 - Sprechen Sie Scala?

LIVE DEMO: TRAITS

Mehrfachvererbung richtig gemacht

Stackabe Modifications

Page 23: RheinJUG 2010 - Sprechen Sie Scala?

LIVE DEMO: TYP-PARAMETER

Generics richtig gemacht

KovarianzInvarianz

Kontravarianz

Upper Bounds

Lower Bounds

Page 24: RheinJUG 2010 - Sprechen Sie Scala?

LIVE DEMO: PATTERN MATCHING

Switch richtig gemacht

Constructor PatternVariable Pattern

Sequence Pattern

Wildcard Pattern

Constant Pattern

Page 25: RheinJUG 2010 - Sprechen Sie Scala?

LIVE DEMO: XML-SUPPORT

Literale in der Sprache

XPath-Abfragen

Page 26: RheinJUG 2010 - Sprechen Sie Scala?

FRAGEN / DISKUSSION


Recommended