Zehn Jahre Scala – gelingt der Sprung in den Mainstream?

Wenn schon Scala, denn schon Scala: Ein W-JAX Special Day rund um die JVM-Sprache

Diana Kupfer

Die JVM-Sprache Scala feiert dieses Jahr ihren zehnten Geburtstag. Anlass genug, ihr auf der diesjährigen W-JAX einen Special Day zu widmen. Beleuchtet wurden gestern nicht nur verschiedene Sprachfeatures und Komponenten aus dem Scala-Ökosystem, sondern auch ihr Einsatz in Unternehmen.

Die schicksalshafte Begegnung ereignete sich vor etwa fünf Jahren auf der JAX, und scheinbar war es Liebe auf den ersten Blick: Wie sich Heiko Seeberger, der Moderator des gestrigen Scala Days auf der W-JAX in einem dort geführten Interview (s. unten) erinnert, entfachte ein Talk von Scala-Schöpfer Martin Odersky sein Interesse an der Programmiersprache. Damals war Scala erst fünf Jahre alt und weit weniger populär. Sie stand sogar noch in dem Ruf, zu akademisch zu sein, zu schwer zu erlernen.

Fünf Jahre später: Die Sprache feiert ihren zehnten Geburtstag und bekommt ein ganztägiges Panel auf einer großen Java-Konferenz gewidmet. Sie hat bewiesen, dass sie weit mehr ist als eine Kopfgeburt des Professors aus Lausanne: reif für den Einsatz in unterschiedlichsten Unternehmen zum Beispiel – sei es bei einer Tageszeitung wie der Süddeutschen, bei einem Software-Testing-Unternehmen wie der imbus AG oder beim Mobilfunkhersteller Nokia.

Der Erfolg Scalas ist nicht nur auf die Sprache selbst zurückzuführen, sondern – genau wie bei Java – auch auf das expandierende Scala-Ökosystem. Dazu gehören das Aktoren-Framework Akka, das Web-Framework Play – zu beiden wurden Vorträge auf der W-JAX gehalten –, das REST-/HTTP-Toolkit Spray oder auch das etwas weniger populäre Web-Framework Lift (zu dem es gerade eine zweiteilige Serie im Eclipse Magazin gibt). Nicht zuletzt die Gründung des Unternehmens Typesafe durch Odersky und Jonas Bonér im Mai 2011, vom Investor Greylock Partners großzügig bezuschusst, verlieh Scala Schubkraft.

Die JVM-Sprache ist vieles gleichzeitig: statisch getypt, funktional, objektorientiert, imperativ und zur Nebenläufigkeit geeignet, wie Viktor Klang in seiner Nachmittagssession zeigte. „Scala vereint verschiedene Welten“, schwärmt Seeberger in seinem Talk, der den Scala Day einläutet. Ein Yin-Yang-Symbol auf der entsprechenden Vortragsfolie soll diese Synthese aus unterschiedlichen Sprachelementen und Programmierparadigmen versinnbildlichen. Die „Sieben Gründe, sich Scala einmal genauer anzuschauen“, die der Moderator präsentierte, waren die folgenden:

  1. Höhere Produktivität durch weniger Code
  2. Ausdrucksstarke Tests
  3. Traits (Seeberger:„eine abstrakte Klasse, die keine Constructor-Parameter haben kann“) statt Mehrfachvererbung
  4. Funktionale Programmierung – d. h. Funktionen als First-Class Citizens – mit allen Vorteilen
  5. Der Datenbank-Zugriff in Scala mit Slick (Scala Language-Integrated Connection Kit).
  6. Die Vereinfachung von Nebenläufigkeit: Immutable Objects, Parallel Collections, Futures, Aktoren
  7. Einfache Installation

Einen Videomitschnitt des gesamten Vortrags von Seeberger steht seit gestern hier auf JAXenter zur Verfügung.

Exkurs mit Neal Ford

Den Aspekt der funktionalen Programmierung machte auch der Keynoter des Tages, Neal Ford (Thoughtworks), zum Thema seines Vortrags. Ford hält die alten Dichotomien – schwache versus starke, statische versus dynamische Typisierung – für überholt, genauso wie die polyglotte Pyramide von Ola Bini. Bini hatte sich 2008 für ein Architekturmodell stark gemacht, nach dem die unteren Schichten einer Anwendung in statischen, die mittleren Schichten in dynamischen und die oberen in domänenspezifischen Sprachen (DSLs) implementiert sind. Fords neues Pyramidenmodell sieht vor, dass die unteren Architekturschichten funktional, die mittleren imperativ und die oberen mithilfe von DSLs programmiert werden. Funktional oder imperativ, das ist heute also die Frage. Die Immutability funktionaler Sprachen sei eine unabkömmlich stabile Basis für Applikationen und vereinfache den Code erheblich, so Ford.

Glaubt man dem langjährigen JAX- und W-JAX-Speaker, so führt längst kein Weg mehr am funktionalen Paradigma vorbei. „All major languages are adding functional elements at a very fast pace.“ Recht hat er – man braucht sich nur die Neuerungen in Java 8 zu vergegenwärtigen, um zu sehen, dass alle Zeichen auf funktionale Programmierung stehen. In einem Interview mit JAXenter-Redakteur Hartmut Schlosser fasste Ford noch einmal die wesentlichen Aussgen seiner Keynote zusammen.

Scala im Unternehmenseinsatz

Zurück zu Scala: Im zweiten Talk, bei den Ausführungen der Entwickler aus den verschiedenen Unternehmen, die Scala im Einsatz haben – manche erst seit Kurzem –, fällt manch eine Gemeinsamkeit auf – sowohl, was die Schokoladenseiten der Sprache betrifft, als auch in Bezug auf ihre Mankos: Die hohe Einstiegsbarriere ist offensichtlich noch immer einigen Scala-Newbies ein Dorn im Auge, genauso wie die lange Kompilationszeit.

Joachim Hofer, Entwickler bei der imbus AG, sieht zahlreiche Bugs als „Stolpersteine“. Die Eclipse-Scala-IDE sei schlicht „nicht verwendbar“ (IntelliJ IDEA allerdings „auch blöd“), die unpassende Slick-Lizenzierung habe enorm Zeit gekostet, fehlende SBT-Plug-ins die Entwicklung gebremst. Aus seinem Referat ging außerdem hervor, dass vielerorts das User-Netzwerk noch nicht ausgeprägt ist, der Austausch fehlt. Hofer handelte pragmatisch und gründete kurzerhand Scala-Enthusiasten Metropolregion Nürnberg. Zur individuellen Fortbildung empfahl er das Coursera-Kursangebot.

Aber auch Lob wurde von den jüngeren Scala-Nutzern unisono geäußert. So berichteten alle Entwickler von einem Tempo- und Produktivitätsgewinn seit dem Umstieg auf Scala, bedingt durch konzisen Code. „Wir können unglaublich dicht programmieren, und das ist ein großer Vorteil für uns“, so Hofer. Als besonders positive Features hebt Felix Leipold (Nokia) Case Classes, Options, Multi-line Strings und XML-Literale, die Testing-Bibliothek ScalaCheck und Futures hervor.

Auch die subjektiven Beweggründe, sich mit Scala zu beschäftigen, waren bei allen ähnlich: Der Spaßfaktor und die hohe Motivation, die besonders Markus Walbrun und David Albrecht von der Süddeutschen Zeitung betonen, halten die Entwickler trotz manch einer Unzulänglichkeit bei der Stange.

Auffällig ist, dass alle der Anwesenden nicht nur Scala, sondern eine Vielzahl an Typesafe-Technologien einsetzen, ob Akka, Play, Slick. Ist die noch immer hohe Einstiegshürde erst einmal genommen, scheint die Begeisterung mit der Zahl der Tools und Frameworks aus dem Scala-Dunstkreis geradezu exponentiell zu steigen, nach der Devise: Wenn schon Scala, denn schon Scala.

Geschrieben von
Diana Kupfer
Diana Kupfer
Diana Kupfer war Redakteurin bei S&S Media für die Zeitschriften Java Magazin, Eclipse Magazin und das Portal JAXenter. 
Kommentare
  1. Joachim Hofer2013-11-08 21:54:47

    Ein paar Korrekturen zu den Eindrücken aus meinem Erfahrungsbericht-Talk...

    Die Probleme mit den IDEs sind arg aus dem Kontext gerissen. IDEA schlägt sich selbst bei mehreren 100k LOC wacker und ist absolut verwendbar. Die Scala-IDE ist in vielen Fällen ebenfalls durchaus gut verwendbar, nur im Kontext unseres Projekts leider nicht.

    Die Slick-Lizensierung hat uns nicht "enorm Zeit" gekostet, sondern - dank der guten Treiber-Testsuite von Slick - gerade mal etwa eine Personenwoche (was ich im Talk auch erwähnt habe, wenn ich mich nicht sehr irre). Das ist ziemlich wenig, wenn man bedenkt, dass es um eine Datenbanktreiber-Implementierung geht...

    Die (damals) fehlenden SBT-Plug-ins haben unsere Entwicklung ebenfalls nicht "gebremst" (und das habe ich so auch nicht gesagt). Im Gegenteil: Das Beschäftigen mit und Erweitern von SBT hat schnell zu einem tieferen Verständnis von SBT im Team geführt, welches unseren Build deutlich verbessert hat.

    Dass unter Scala-Usern der "Austausch fehlt", habe ich ebenfalls nicht gesagt. Ich bin da der entgegengesetzten Meinung: Die Scala-Community pflegt einen sehr regen und anregenden Austausch. Sonst könnte bei der Nutzerzahl so etwas wie unsere kleine regionale Gruppe gar nicht erst zustande kommen.

    Insgesamt waren die "Stolpersteine" sowieso nur ein kleiner Teil meines Talks. - Aber egal. - Der Einsatz von Scala ist für uns ein starker Wettbewerbsvorteil. Ich muss niemanden dazu überreden, uns den wegzunehmen...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.