Blog
Scala kehrt zu seinen Ursprüngen zurück: Eine Geschichte in 4 Kapiteln

Dies ist mein persönlicher Bericht über einen Vortrag von Martin Odersky auf der Scalar Conf 2025. Wenn Sie sich den Vortrag von Martin ansehen möchten, können Sie das hier tun.

Scala weiterentwickeln von Martin Odersky
1. Die Retrospektive
Als Scala als neue Programmiersprache aufkam, bot sie zwei Hauptkomponenten in ihrem Nutzenversprechen. Zum einen bot sie ein einheitliches Paradigma, das objektorientierte und funktionale Programmierung harmonisch miteinander verband. Zum anderen war sie sowohl sicher als auch bequem. Diese Anziehungskraft zog viele talentierte Ingenieure und begabte Studenten an und führte zu Innovationen wie Twitter, Akka, Spark, Flink und Play, um nur einige zu nennen.
Die anfängliche Begeisterung, die die Sprache Mitte der 2010er Jahre ins Rampenlicht katapultierte, hat sich in den letzten 15 Jahren abgeschwächt. Verschiedene geschäftliche Entscheidungen haben die öffentliche Wahrnehmung der Sprache verändert. So haben beispielsweise Ereignisse wie die Umbenennung von Twitter in X und der Aufstieg von PySpark im Bereich der Datentechnik gegenüber Spark zu diesem Rückgang beigetragen.
Trotz dieser Herausforderungen sind die Sprache und ihr Ökosystem bemerkenswert gereift, mit einer Gemeinschaft, die ihre ursprüngliche Anziehungskraft wiederentdeckt hat - eine Multi-Paradigma-Sprache, die sowohl sicher als auch bequem ist. Trotz der starken Konkurrenz durch etablierte Sprachen wie Java (die Funktionen übernommen haben, die einst nur Scala besaß) und aufstrebende Sprachen wie Kotlin und Rust hat Scala seinen Wettbewerbsvorteil in den letzten zwei Jahrzehnten bewahrt.
2. Die lange Reise zurück zu den Ursprüngen
Seit 2020 hat sich die Gemeinschaft auf eine kühne Mission begeben, um die Sprache neu zu erfinden. Scala 2 war zwar immer sicher, aber es hatte sich zu etwas entwickelt, das viele als zunehmend unbequem empfanden. Ich habe viele Kritiker gelesen, die argumentierten, dass Scala Haskell zu sehr ähnelte, was es schwierig machte, genügend technische Talente anzuziehen und Neulinge vor Herausforderungen stellte - komplizierte Konzepte wie Kategorientheorie und Effektsysteme zu beherrschen ist keine kleine Leistung.
Meiner Meinung nach ist sbt (Simple Build Tool) ein perfektes Beispiel für diese Entwicklung. Ursprünglich ein sehr benutzerfreundliches und leicht zugängliches Build-Tool, hat sich sbt zu einem extrem leistungsfähigen Dienstprogramm entwickelt, das nicht mehr einfach ist. Aus tiefer Zuneigung zu dieser Sprache hat sich die Gemeinschaft das Ziel gesetzt, das, was mühsam geworden war, zu vereinfachen und das Engagement von Scala für Sicherheit und Benutzerfreundlichkeit zu bekräftigen.
In den letzten fünf Jahren sind die Debatten über die Programmierparadigmen von Scala - ob funktional, deklarativ, imperativ oder objektorientiert - allmählich einer kollektiven Konzentration auf die Kernidentität der Software gewichen. Solange Scala Sicherheit und Komfort bietet, ist das zugrunde liegende Paradigma zweitrangig. Diese klare Sichtweise gipfelte in der Geburt einer neuen Sprachvariante: dotty. Dann wurde eine Brücke zwischen dem Alten und dem Neuen geschlagen und vor vier Jahren Scala 3 eingeführt.
3. Zurückgewinnen, was nie hätte verloren gehen dürfen
Scala 3 konzentriert sich darauf, sowohl die Sicherheit als auch den Komfort zu verbessern. Es führt Funktionen wie undurchsichtige Typen für eine verbesserte Typsicherheit ein, zusammen mit Enums, benannten Tupeln und Erweiterungsmethoden, die die Benutzerfreundlichkeit erhöhen, ohne die Sicherheit zu beeinträchtigen. Während die Sprache weiterhin ausdrucksstark und mächtig ist, zielen diese Verfeinerungen darauf ab, Scala für Entwickler zugänglicher und handhabbarer zu machen.
Martin Odersky hat festgestellt, dass die Komplexität der Sprache neue Benutzer abschrecken kann und betont, dass einfachere Lernressourcen und Bibliotheken benötigt werden. Um neue Talente anzuziehen, hat die Gemeinschaft die Syntax von Scala 3 an die beliebter Sprachen wie Python angeglichen und unnötiges syntaktisches Durcheinander beseitigt, um Neulingen den Einstieg zu erleichtern.
Robuste Werkzeuge - wie Verbesserungen des Compilers, eine verfeinerte Befehlszeilenschnittstelle (ScalaCLI) und erweiterte IDE-Unterstützung - sind von grundlegender Bedeutung für die Weiterentwicklung von Scala 3. Kontinuierliche Verbesserungen der Zuverlässigkeit des Compilers und der IDE-Unterstützung haben Priorität, wobei das Feedback der Community eine entscheidende Rolle spielt. Der Scala Improvement Process (SIP) wurde sorgfältig ausgearbeitet, um ein Gleichgewicht zwischen der Einführung innovativer Funktionen und der kritischen Stabilität von Werkzeugen und Bibliotheken herzustellen.
4. Die Zukunft von Scala
Scala 3 sieht eine Zukunft vor, die sich auf Capabilities konzentriert, die eine sichere und bequeme Möglichkeit bieten, Seiteneffekte in der Programmierung zu verwalten. In seinen Vorträgen hebt Martin Odersky das Potenzial einer Capabilities-basierten Architektur hervor, die sowohl funktionale als auch imperative Programmierstile verbessern wird, ohne dass die Sicherheit oder der Komfort darunter leiden. Die Integration von Fähigkeiten in das Typensystem der Sprache ist ein wichtiger Meilenstein, der sicherstellt, dass die Sprache in einer sich schnell entwickelnden technologischen Landschaft vielseitig und relevant bleibt.
Meine persönliche Meinung
Ich habe Scala 3 in den letzten zwei Jahren beruflich genutzt und es gefällt mir sehr gut. Ich muss zugeben, dass es einige Zeit gedauert hat, bis die Werkzeuge aufgeholt haben, aber im Moment funktioniert es genau so, wie ich es brauche. Viele Aspekte, die Scala 2 zu einer Herausforderung machten - wie z.B. Implicits, Metaprogrammierung und Typklassen - wurden neu gestaltet. Um die Sprache ergonomischer zu gestalten, wurden neue reservierte Wörter eingeführt. Zum Beispiel wurde das Konzept 'implizit' in vier Schlüsselwörter aufgeteilt: 'given', 'using', 'extension' und 'Conversion'. Die Metaprogrammierung ist für Nachwuchsingenieure zugänglicher geworden, da Teile davon jetzt mit Schlüsselwörtern wie 'opaque' und 'inline' in die Sprache integriert sind. Eine weitere Funktion, die ich sehr schätze, sind benannte Tupel, die für die Handhabung von Zwischenschritten bei komplexen Datenmanipulationen äußerst praktisch sind. Für mich sind die Fähigkeiten das große Versprechen, das die Sprache von den Zwängen der Effektsysteme befreien wird.
Verfasst von
David A. Gil Méndez
Contact



