Neo Tech Blog

NEO TECH LBLOG - Praxis-Techblog für IT, Web und Mobile
ScalaDays 2014 Logo

Scala gewinnt an Bedeutung – Rückblick ScalaDays 2014 in Berlin

Keine Kommentare


Im Juni fanden zum fünften Mal die Scala Days statt. Veranstaltungsort war dieses Jahr Berlin. Nachdem letztes Jahr ca. 500 Teilnehmer die Veranstaltung in New York besuchten, waren es dieses Jahr bereits über 800 Besucher. Hauptveranstalter ist die Firma Typesafe, die maßgeblich an der Weiterentwicklung und dem kommerziellen Einsatz der Programmiersprache Scala und dem Akka-Framework beteiligt ist.

Was macht Scala eigentlich aus?

Der Begründer Martin Odersky gibt in seiner Keynote selbst eine Antwort darauf. Mit der Programmiersprache Scala lässt sich einerseits mit nur wenigen Codezeilen eine Funktionalität ausprobieren und kompakter Code schreiben. Die interaktive Shell (REPL) bietet einen schnellen Einstieg für prototypische Tests und für die Erledigung einmaliger Aufgaben. Andererseits ist Scala bestens für umfangreiche Softwaresysteme gerüstet und spielt insbesondere bei der Entwicklung verteilter Anwendungen seine Trümpfe aus. Der Name Scala, von scalable abgeleitet, ist hier also Programm: Die Sprache wächst mit den Anforderungen des Nutzers.
Wer einen imperativen Programmierstil gewohnt ist, sollte sich Zeit nehmen, die Paradigmen einer funktionalen Programmiersprache wie Scala zu verinnerlichen, der Einarbeitungsaufwand sollte nicht unterschätzt werden. Anstelle einer Schleife empfiehlt Odersky die Verwendung rekursiver Funktionen, Variablen sind in der Regel unveränderlich (immutable) und Funktionen können genau wie andere Objekte als Parameter anderen Funktionen übergeben werden.
Themen der ScalaDaysAuf der 3-tägigen ScalaDays-Konferenz gab es ca. 80 Vorträge mit einem breiten Themenspektrum. Den Schwerpunkt bildeten Frameworks in den Bereichen Webentwicklung und Datenprozessierung. Vor allem Streaminglösungen und Techniken für eine verteilte Prozessierung sind für die Forschungsabteilung der Neofonie von besonderem Interesse.
Was die Vorträge mit direktem Bezug zu Scala betrifft, waren die modernsten Sprachkonstrukte der Scala-Sprache bereits voll integriert. Buzzwords der diskutierten Themen waren z.B. Dependency Injection, Makroprogrammierung zur Compilezeit oder Metaprogrammierung zur Laufzeit. Makros ermöglichen dem Entwickler in stärkerem Umfang generischen Code zu bilden. Durch das Hinzufügen von Quasiquotes wird die Entwicklung mit Makros noch wesentlich vereinfacht, da sie die Möglichkeit bieten, komplexe abstrakte Syntax-Bäume zu entwickeln, die nicht der strengen Typisierung von Scala unterworfen sind. Weiterhin waren Konstrukte wie Monaden und dazu alternative Pattern der Softwareentwicklung prominent auf der Tagung vertreten.

Frameworks

Neben den Features der Sprache standen auf der Konferenz verschiedene Frameworks, in denen komplexe Funktionalitäten gebündelt werden, im Fokus.

Akka

Eines der zentralen Themen auf den Scala Days war natürlich der zentrale Baustein Akka. Akka ist ein unabhängiges und vollständig in Scala implementiertes Paket. Es realisiert das Aktoren-Modell und ermöglicht es, auf einfache Weise nebenläufige Applikationen zu entwickeln. Insbesondere in reaktiven Web-Applikationen kommen schnelle und leichtgewichtige Aktoren zum Einsatz, die mittels Messaging kommunizieren. Ein fehlertolerantes Aktoren-System, das in der Lage ist, seinen Zustand auch nach Ausnahmefällen wiederherzustellen, war genauso Thema wie die Möglichkeit, Monitoring auf dem Aktorensystem durchzuführen oder per akka-http RESTful mit der Welt zu kommunizieren.

Play

Mit dem Play-Framework erstellt man auf einfache Art und Weise Web-Applikationen in Java und / oder Scala. Play ist in Scala implementiert und benutzt Akka zum Entwickeln hochskalierbarer Anfrageszenarien. Es besitzt einen integrierten, eigenen Webserver und eignet sich z.B. für Inkubator-Lösungen und Applikationen mit vielen Micro-Services, in denen schnelle und einfach zu entwickelnde Lösungen gefragt sind, die aber bei Erfolg und wachsendem Bedarf trotzdem skalierbar bleiben und mitwachsen können.
Das Entwicklerteam von Play stellte die neueste Version 2.3 vor. Im Ausblick auf die nächste Version 3.0 wird die bereits erfolgte Kompatibilität zu Java 8 um die Closures erweitert werden. Die Integration von Reactive Streams zur Handhabung schneller Streaming-Lösungen wird dafür ebenso angestrebt. Dem Thema Reactive Streams wurde mit eigenen Vorträgen besondere Aufmerksamkeit eingeräumt.
Zur “spielend” leichten Einarbeitung in Play wurde in der aktuellsten Version 2.3 der Typesafe-Activator integriert. Der Activator ermöglicht die Auswahl einer Vorlage aus vordefinierten Beispielen. Es wird damit konkret aufgezeigt, wie Play mit anderen Komponenten verbunden werden kann. So gibt es beispielsweise Vorlagen, die Spark in Play integrieren oder die Verbindung mit gängigen Datenquellen demonstrieren. In den von Typesafe bereitgestellten Vorlagen sind Tutorien integriert (zum Beispiel Tweetmap-Application mit Akka, Angular JS und WebSockets), die den Benutzer Schritt für Schritt an die Entwicklung und die Integration heranführen sollen. Der Typesafe-Activator ist ideal für ein erstes Hands-On zur Entwicklung mit Play.

Big Data Prozessierung

Wie lassen sich sehr große Datenmengen wie beispielsweise Webdaten oder die Logfiles hoch frequentierter Webseiten mit Scala auswerten? Der Buchautor Dean Wampler gibt in seinem Vortrag Why Scala is Taking over the Big Data World einen guten Überblick über verschiedene Techniken des Distributed Processings: Hadoop, MapReduce und Batch- vs. Stream-Processing.
Ein neues, sehr vielversprechendes Cluster Computing Framework bildet Apache Spark. Das hauptsächlich in Scala entwickelte System verspricht eine hohe Effizienz durch die Nutzung von In-Memory-Operationen. Des Weiteren bietet Spark neben der klassischen Batchverarbeitung auch eine Streamingkomponente an. Der Entwickler Michael Ambrust stellt in seinem Vortrag sowohl Spark als auch als neu entwickelte Modul Spark SQL vor. Im Rahmen des Forschungsprojekts MIA entwickelt die Neofonie an ähnlichen Technologien. Innerhalb einer Datenanalyse-Plattform können Anfragen per SQL auf riesigen unstrukturierten und strukturierten Datenmengen ausgeführt werden.
Die ScalaDays beeindruckten durch ihre Vielzahl an Talks auf hohem Niveau. Die Speaker sind vorrangig selbst aktiv an der Entwicklung der vorgestellten Frameworks beteiligt und konnten einen kompetenten und authentischen Einblick in die neuen Technologien geben. Kenntnisse in Scala und den vorgestellten Technologien werden von den Teilnehmern allerdings vorausgesetzt. Der Termin der nächsten Konferenz ist bei uns bereits fest geblockt!

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.