Diese Webseite verwendet Cookies. Wenn Sie diese Webseite nutzen, akzeptieren Sie die Verwendung von Cookies. Zur Datenschutzerklärung
Am 16. und 17. dieses Monats war ich in Berlin, um dort an den Scala Days teilzunehmen.
Die internationale Konferenz, die in den vergangenen Jahren auch schon in New York, San Francisco und Amsterdam stattfand, richtet sich in erster Linie an Softwareentwickler. Sie bietet ihren Teilnehmern einen hervorragenden Rahmen, sich über Scala und verwandte Technologien wie z. B. die Frameworks Akka und Play auszutauschen und vielen interessanten Talks zu lauschen.
Über unseren Cap3-Slack-Chat ließ ich meine Kollegen an den interessantesten Aspekten aus den Vorträgen live teilhaben. Es kamen auch direkt fleißig Rückfragen aus dem Chat und das Interesse an den Neuigkeiten war groß. Wie viele andere auch setzen wir bei Cap3 seit 2015 in immer mehr Projekten auf Scala. Warum wir das machen, versuche ich in den folgenden Absätzen zu erklären.
Scala ist eine funktionale und objektorientierte Sprache. Neben statischer Typisierung bietet sie u. a. eine vollständige Integration mit Java, d. h. Scala-Code ist auf der weit verbreiteten Java Virtual Machine (JVM) ausführbar. Entwickelt wurde die Sprache von Martin Odersky, der mit seiner Firma Lightbend (ehemals Typesafe) das Ökosystem rund um Scala vorantreibt. Damit die Sprache weiterhin unabhängig bleibt, wurde vor Kurzem das "non-profit" Scala Center an der Technischen Universität von Lausanne gegründet, das sich dem Slogan "For open source. For education." verschrieben hat. Ein großer Pluspunkt von anderen Technologien wie z. B. Node.js ist das umfassende Ökosystem und die Möglichkeit, Libraries sehr einfach zu veröffentlichen und zu finden. Für Scala gab es in der Vergangenheit noch kein vergleichbares Angebot, was sich nun aber ändert mit Scaladex, einem Index für Scala Libraries. Die Libraries können mittels Scaladex einfach gefunden werden und anschließend (wie schon lange möglich) als Abhängigkeiten über ein Buildtool wie sbt, Maven oder Gradle bequem zu einem Projekt hinzugefügt werden.
Scala ist vielleicht etwas schwieriger zu erlernen als andere Sprachen, aber aus unserer Sicht lohnt sich der Invest. Denn Scala macht es leicht, kurzen eleganten Code zu schreiben. Mit dem Aktormodell (Akka-Framework) ist es außerdem einfach möglich, verteilte Anwendungen zu entwickeln, um Daten parallel zu verarbeiten. Gerade in Zeiten des Cloud Computing bietet dieses Konzept große Möglichkeiten, um extrem performante und effiziente Anwendungen zu entwickeln. Daher waren viele der internationalen Teilnehmer der Scala Days auch Datenanalysten, die täglich mit sehr großen Mengen an Daten hantieren, und dabei immer mehr auf Scala, Akka und Apache Spark setzen.
Für uns sind eher Themen mit Bezug auf moderne Web-Applikationen von größerem Interesse: Mit Scala und dem Akka-Framework lassen sich höchst skalierbare Server-Anwendungen effizient umsetzen. Dies liegt insbesondere daran, dass mit geringem Aufwand einzelne Teile (Aktoren) der Applikation auf einer separaten Hardware ausgeführt oder parallel laufende Instanzen zum System hinzugefügt werden können. Das sind aus meiner Sicht zusammengefasst die Hauptargumente, welche für die Technologie sprechen. Es gibt aber natürlich noch viele weitere und mit Sicherheit lassen sich auch Gegenargumente finden. Klar ist aber auch, dass mittlerweile immer mehr große Firmen auf Scala setzen, u. a. Zalando und AutoScout24, Siemens, The Guardian und LinkedIn.
Um noch einmal auf die Konferenz zurückzukommen: Was waren für mich wesentliche und interessante Aussagen oder Aspekte, die ich herausstellen möchte? Da wären zum einen die interessanten Vorträge über Scala.js, die deutlich gemacht haben, dass Scala.js produktiv einsetzbar ist. Ebenso hat sich das Scala Center zu diesem Projekt bekannt und verpflichtet sich, es fortzuführen. Mit Scala.js kann man Scala Code nach JavaScript kompilieren. Damit gewinnt man neben den Vorteilen von Scala auch die Möglichkeit, Code (z. B. Datenmodelle, Validierungsfunktionen, etc.) zwischen einer Single-Page-Application und dem Server zu teilen und eine typisierte API zu nutzen (d. h. Compile-Time-Fehler bei fehlerhafter Verwendung der Server-API durch den Client). Folglich steigert die Verwendung von Scala.js in vielerlei Hinsicht die Effizienz bei der Umsetzung von Web-Applikationen.
Des Weiteren wurde die neue Version des Test-Frameworks ScalaTest vorgestellt. Eine wesentliche Neuerung ist auch hier die Unterstützung von Scala.js. Zum anderen waren die Erfahrungsberichte zur Umsetzung von CQRS und Event Sourcing mit Scala extrem interessant. So hat Atlassian mit Eventsrc eine eigene Library entwickelt, mit der in Kombination mit AWS DynamoDB, Lambda und Kinesis erfolgreich ein Projekt umgesetzt wurde. Außerdem wurde über die Verwendung von Akka-Persistence (eine Library speziell für die Umsetzung von Event Sourcing) sowie von Problemen während der Umsetzung und den jeweiligen Lösungen berichtet.
Insgesamt war das Niveau der Vorträge auf der Konferenz erfreulicherweise sehr hoch und ich habe vieles für meine Arbeit und die Kollegen in Kiel mitnehmen können. Es hat sich mal wieder gelohnt, dafür nach Berlin zu fahren.
* Pflichtfeld