oose
Komm am 21.06. auf unseren oose.campus zum perspectives.festival 🥳
DeutschDeutsch

Scala und Play2

Blog offline

Dieser Artikel stammt aus unserem Blog, der nicht mehr betreut wird. Für Neuigkeiten zu oose und interessante Inhalte zu unseren Themen, folgt uns gerne auf LinkedIn.

Ab Januar biete ich bei oose ein neues Seminar zum Thema Scala und Play2 an. Die Teilnehmer bekommen einen Überblick über die Sprache Scala und lernen gleichzeitig das exzellente Webentwicklungsframework Play2 kennen.

Scala

Scala kombiniert Ansätze der funktionalen Programmierung mit Konzepten aus der Objektorientierung. Die Sprache lässt sich exzellent in bestehende Java Projekte einbinden, verwendet bestehende Opensource Java Bibliotheken und verfügt selbst über eine eigene hervorragende Infrastruktur an Bibliotheken. Dadurch fällt der Umstieg auf Scala besonders leicht. Scala selbst besticht durch eine sehr elegante Syntax, wobei viel Lärm in Javacode durch sinnvolle Defaultwerte ersetzt wird.


package democase

case class Person(name: String, firstName: String, hobbies: List[Hobby])
case class Hobby(name:String, skillLevel: Int)

Dabei beinhalten diese Zeilen bereits alles, was man zur Definition einer Klasse benötigt. Konstruktor, hashCode() und equals() Methode, sinnvolle Implementierung von toString(), sowie getter für die Attribute. In Java benötigen diese 4 Zeilen stolze 117 Zeilen, wobei man sich - das soll nicht verschwiegen werden - einen Grossteil davon generieren lassen kann. Und sich so merkwürdigen Fehlern schon Tür und Tor öffnet, denn das muss bei jeder Änderung der Klassen halt wieder neu durchdacht werden.

Neben diesen syntaktischen Zucker lernt man durch das Programmieren in Scala ebenso Probleme anders zu durchdenken. Und das bedeutet insbesondere auf Seiteneffekte in Programmen zu verzichten, damit diese besser verständlich und einfacher zu analysieren sind.

Play2

Play (mit einer API für Scala und Java) ist ein konsequent zu Ende gedachtest Webframework, welches sich sehr nah am HTTP Standard orientiert und diesen nicht mit unnötigen Abstraktionen überfrachtet. Play in einigen grossen Webseiten zum Einsatz gebracht, darunter Klout, Linkedin und The Guardian. Play liegt der asynchrone Webserver netty zu Grunde, und dieser Gedanken wird vom Framework sehr gut unterstützt, so dass sich sehr einfach horizontal skalierende Webapplikationen bauen lassen, die die Concurrency/Synchronisation- und Threadpoolprobleme sehr elegant umschiffen. So lassen sich Applikationen schreiben, die den Credo der Reactive Applications gehorchen.

Seminar

Das Seminar behandelt diese Technologien für Einsteiger und bietet so einen guten Überblick über die relevanten Technologien und Sprachkonstrukte. Der erste Termin findet im Januar vom 13.1. - 15.1.2014 bei oose in Hamburg statt.