Suche
Dossier Scala

Scala im Experten-Check: Was erwartet uns in den nächsten Scala-Releases?

Redaktion JAXenter
scala check

Im Experten-Check vermitteln uns sechs erfahrene Scala-Entwickler ihre Sichtweise auf das Scala-Ökosystem. Im vierten und letzten Teil geht es um die Frage, was das kommende Scala 2.12 zu bieten hat und welche Features in einer zukünftigen Scala-Version wünschenswert wären.

Was findest du spannend am kommenden Scala 2.12?

Die Scala-Experten

heiko seeberger

Heiko Seeberger: Fellow bei codecentric. Autor des Buches “Durchstarten mit Scala.” @hseeberger

Julian Tournay: CTO at @mfg_labs und Autor von jto/validation

Julian Tournay: CTO at @mfg_labs und Autor von jto/validation

daniela sfregola

Daniela Sfregola: Bloggerin und Tech Leader bei PayTouch. @DanielaSfregola

ivan

Ivan Kusalic: Software Engineer bei HERE. Organisator des Berliner Software Craftsmanship meetup, SoCraTes. @ikusalic

Daniel Westheide

Daniel Westheide: Consultant bei innoQ. Autor von “The Neophyte’s Guide to Scala.” @kaffeecoder

markus Hauck

Markus Hauck: IT Consultant und Scala Trainer bei codecentric.

Daniel Westheide: Viele neue Sprach-Features wird es in Scala 2.12 nicht geben. Spannend finde ich vor allem, dass Scala 2.12 Java 8 voraussetzt und dadurch auch die Interoperabilität zwischen Scala und Java 8 verbessert wird. Zum einen werden einige Scala-Konstrukte sich nun die Java-8-Bytecode-Erweiterungen zunutze machen, zum anderen heißt das, dass man Scala-Funktionen ohne weiteres aus Java 8 heraus aufrufen können wird.

Ivan Kusalic: Ich interessiere mich am meisten für den Style Checker. Scala-Syntax ist sehr flexibel, was eigentlich großartig ist. Doch als Folge davon sind zusätzliche Anstrengungen nötig, um größere Codebasen konsistent zu halten. In meinem Team kümmern wir uns um diesen Aspekt in den Code-Reviews, aber es dauert eine Weile, bis Team-Mitglieder hier Geschwindigkeit aufnehmen.

Markus Hauck: Auch wenn sich von außen betrachtet weniger ändert als in vorherigen Releases, so hat sich doch einiges “unter der Haube” getan. Durch die Einführung neuer Features in Java 8 hat es Scala einfacher, viele der Features der Sprache nach Java zu übersetzen.  Außerdem gibt es viele kleinere Änderungen in der Standardbibliothek, so ist z.B. Either endlich “right-biased” und auch Futures haben einige nützliche neue Methoden bekommen. Ein lang erwarteter Fix für das berüchtigte SI-2712 hat es auch geschafft, was besonders erfreulich ist.

Daniela Sfregola: In diesem Release gibt es eine Menge spannender Features. Das interessanteste ist für mich die Einführung parametrisierter Traits: Dadurch kann ein Trait verschiedene Parameter mitführen, mit denen sie sich noch flexibler und einfacher einsetzen lassen. Wir können somit abstrakte Klassen umgehen und stattdessen Traits mit Parametern verwenden 🙂

Heiko Seeberger: Scala 2.12 hat eigentlich fast nur ein Ziel, und zwar die Integration mit Java 8. Als Anwender können wir nun die neuen Java Streams aus Scala heraus aufrufen, indem wir Scala Lamdas übergeben; umgekehrt funktioniert das natürlich analog. Unter der Haube sorgt die Verwendung von neuen JVM Features dazu, dass der Compiler viel weniger Bytecode erzeugen muss.

Julien Tournay: Scala 2.12 sollte bald veröffentlicht werden. Der verbesserte Support für Java 8 ist wirklich schön. Dadurch sollte die Runtime Performance, Bytecode-Größe und Komplilierungsgeschwindigkeit signifikant verbessert werden. Eine Sache, über die ich mich besonders freue, ist, dass der SI-2712 endlich bearbeitet wurde. Dieser Bug hat Scala-Entwicklern jahrelang Probleme verursacht, insbesondere Autoren von Bibliotheken. Durch diesen Fix wurde auch bereits die Community aufgerüttelt, sodass wir in Zukunft hoffentlich mehr Leute haben werden, die sich an Bugfixes beteiligen. Ich sollte wahrscheinlich selbst mehr Fixes beitragen 🙂

Was fehlt dir noch in Scala, das man in den kommenden Releases umsetzen sollte?

Daniel Westheide: Im Großen und Ganzen bin ich ziemlich zufrieden. Schön wäre es, eine kanonische HList-Implementierung in der Standard-Library zu bekommen sowie ein stabiles Makro-API. Ansonsten darf man gespannt sein, was aus Dotty wird, wo versucht wird, die Basis von Scala zu vereinfachen und einige aktuell vorhandene Stolpersteine zu beseitigen.

Daniela Sfregola: Mir fällt eigentlich kein Feature ein, das mir fehlen würde!

Heiko Seeberger: Scala hat inzwischen ja schon einige Jahre auf dem Buckel, und da hat sich doch schon ein wenig Ballast angesammelt. Der Scala-Erfinder Martin Odersky arbeitet gerade am der nächsten epochalen Version von Scala, also an Scala 3. Da werden dann einige der alten Zöpfe abgeschnitten.

Julien Tournay: Das ist eine schwierige Frage! Manche Leute würden jetzt antworten, dass Scala schon zu viele Features hat 😉 Aber vielleicht sollte etwas wie Shapeless’ Generics – und damit HLists – Teil der Sprache sein.

Ivan Kusalic: Nichts Kritisches. Eine bessere Interoperabilität zwischen Java und Scala wäre wünschenswert. Eine bessere Typen-Inferenz wie beim Hindley-Milner Typensystem von Haskell wäre wahrtscheinlich zu viel des Guten. Glücklicherweise muss Scala nicht danach streben, eine Art Haskell für die JVM zu werden, da wir ja schon Frege haben.

Markus Hauck: Einige der Features, die es im Rahmen der Forschungsarbeit in die Sprache geschafft haben, passen nicht 100%-ig zusammen. Das führt in der Praxis zwar nicht oft zu Problemen, aber hier und da gibt es doch Randbedingungen, bei denen man sich am Kopf kratzen muss. Zum Glück laufen aber auch hier schon die Arbeiten, und die Dotty-Plattform hat bereits einige sehr interessante Neuerungen.

scala-iconDossier Scala
Im Themen-Dossier “Scala” dreht sich alles um die JVM-Sprache Scala.

 

Durchstarten-mit-Scala_Auflage2_2400x_rgb-220x315Und Sie? Kommentieren und gewinnen!

Weshalb freuen Sie sich auf Scala 2.12? Was steht bei Ihnen auf der Wunschliste für eine kommende Scala-Version?

Kommentieren Sie hier!

Unter allen konstruktiven Kommentaren zum Experten-Check Scala verlosen wir drei Exemplare des Buches “Durchstarten mit Scala” von Heiko Seeberger. (Vergessen Sie hierfür nicht, Ihre E-Mail-Adresse anzugeben).

Ihre Meinung zählt!

Geschrieben von
Kommentare

Hinterlasse eine Antwort

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