Prall gefüllte Abend-Keynote des Scala-Erfinders

„Scala is a unifier“: Martin Odersky auf der JAX

Redaktion JAXenter
© S&S Media

Besucher des Scala Days auf der diesjährigen JAX durften sich am Ende des Tages-Tracks über ein besonderes Highlight freuen: die Keynote von Martin Odersky, seines Zeichens Erfinder der JVM-Sprache. Der Informatik-Professor aus Lausanne hatte Scala schon mehrmals auf der JAX präsentiert, erstmals 2008. Vor sechs Jahren war die statisch typisierte Sprache noch relativ unbekannt – kaum noch vorstellbar.

Mittlerweile blickt Scala auf eine zehnjährige Geschichte zurück – und ist in dieser Zeit zu einer der wichtigsten Sprachen auf der JVM avanciert. Heute ist sie fester Bestandteil des Java-Ökosystems. 100.000 Scala-Entwickler gibt es weltweit, 200.000 Interessierte nehmen an Coursera-Onlinekursen teil. Die Entwicklung der Sprache wird von Oderskys Unternehmen Typesafe vorangetrieben.

Das Besondere und Exzentrische an Scala: Funktionale und objektorientierte Aspekte vereinen sich in dieser Sprache zu einem Programmiermodell für skalierbare, reaktive Anwendungen. Genau diese einzigartige Synthese war es auch, die im Fokus von Oderskys hervorragend besuchter Abendkeynote stand. Dazu nahm er die Anwesenden immer wieder mit auf kleine Exkurse in die Geschichte der Programmierung im Allgemeinen und seiner Sprache im Speziellen. Als Scala 2004 gegründet wurde, standen Aspekte wie abstrakte Typen, Pattern Matching, eine flexible Syntax und ein ebenso flexibles Typensystem im Fokus.

Heute bewältigt Scala jene schweren Aufgaben, die mit realen Anforderungen einhergehen – Deployments mit mehreren Millionen Zeilen Code sind schließlich kein Pappenstiel. Auch erfährt die Sprache hier und da heftigen Gegenwind: zu akademisch, zu wenig festgelegt: „everything and a kitchen sink“, wie Odersky die Kritik seiner Gegner vorwegnahm. Solchen Vorwürfen setzte der Keynote-Speaker ein simples Statement entgegen: „Scala is a unifier.“ Die Sprache zeichne sich durch eine leichtgewichtige Syntax aus, sei aber gleichzeitig für große Systeme geeignet. Der Name ist Programm: Scala skaliert.

Martin Odersky. Bild: S&S Media

„Skalierbar“ bedeutet aber nicht nur einen geschmeidigen Übergang von kleinen auf größere Systeme, sondern auch Erweiterbarkeit. Das alles lade zum Experimentieren ein, so Odersky, und bringe DSLs wie Spray, Akka, Slick oder Spark hervor, erfordere aber andererseits eine stringente, disziplinierte Anwendung. In seiner Ansprache thematisierte Odersky sieben einfache Bausteine, die Scala seiner Ansicht nach am besten charakterisieren:

1. Expressions

2. Scopes/Nesting

3. Patterns & Case Classes

4. Recursion

5. Function Values

6. Collections

7. Variables (vars)

Dass die Sprache sich einer festen Zuordnung zu den konventionellen Kategorien „funktional“ und „objektorientiert“ entzieht, macht es Anwendern nicht immer leicht: Ein harmonisches Miteinander ist für den konservativeren Teil der Entwicklerwelt, der sich in lediglich einem dieser Lager zuhause fühlt, kaum vorstellbar. „Zwischen diesen Stühlen ist es sehr unbequem“, so Odersky. Der Gegensatz löst sich erst auf, wenn man die Aufmerksamkeit auf das richtet, was Scala eigentlich ausmacht: seine Modularität. Schließlich hat Scala modulare Wurzeln: Modula-2, Modula-3, Haskell und Standard ML gehören zu ihren Ahnen. So kennzeichnen auch die JVM-Sprache einfache Komponenten, die sich verschiedenartig kombinieren lassen, um damit immer wieder neue Ergebnisse zu erzielen. „Langweilige Komponenten“, wie Odersky augenzwinkernd bemerkte – allerdings nicht, ohne hinzuzufügen: „Langweilig ist gut.“ Selbstironie war immer schon ein probates Mittel, humorlosen Gegnern den Wind aus den Segeln zu nehmen. 

Geschrieben von
Kommentare

Hinterlasse einen Kommentar

6 Kommentare auf "„Scala is a unifier“: Martin Odersky auf der JAX"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Landei
Gast

Scala ist statisch typisiert.

Landei
Gast

Scala ist statisch getypt.

Landei
Gast

Scala ist eine statisch typisierte Sprache.

Landei
Gast

Scala ist statisch typisiert. S-T-A-T-I-S-C-H. Das ist das Gegenteil von "dynamisch". Scala mag dank Typinferenz dynamisch "aussehen", es ist und bleibt aber statisch getypt. Bitte korrigiert den Artikel doch endlich, das tut einem beim Lesen weh…

dkupfer
Gast

Dummer Verschreiber. Asche auf mein Haupt. Ist – endlich – korrigiert.