Scala, Akka und Play vereint

Was die Scala-Community im Jahr 2012 erwartet

Scala, Akka, Play, Scala IDE for Eclipse – die Bestandteile des Scala-Stacks nahmen im vergangenen Jahr 2011 deutliche Konturen an. Welche Entwicklungen es 2011 im Tooling-Bereich für Scala-Programmierer gab, und was die Community im Jahr 2012 erwarten darf, besprachen wir mit Typesafe Director Professional Services Heiko Seeberger.

JAXenter: Im Unternehmen Typesafe entsteht ja derzeit so etwas wie ein Technologie-Stack auf Basis von Scala. Kannst du beschreiben, welche Komponenten enthalten sind und wofür man sie einsetzen kann?

Heiko Seeberger: Wir werden im Frühjahr 2012 den Typesafe Stack 2.0 veröffentlichen, der aus den Open-Source-Komponenten Scala 2.9.1, Akka 2.0 und Play 2.0 bestehen wird sowie aus der kommerziellen Typesafe Console 2.0. Die eigentliche Basis ist die Java Virtual Machine und darauf aufsetzend die Programmiersprache Scala, die wir für die Implementierung sämtlicher Komponenten einsetzen. Allerdings besitzen sowohl Akka als auch Play ein Java API, sodass der Typesafe Stack einer breiten Nutzerbasis zur Verfügung steht. Akka zielt ganz klar darauf ab, die Entwicklung von skalierbaren, hochverfügbaren und verteilten Systemen radikal zu vereinfachen. Play dürfte in der Java-Welt bereits als genial einfaches Webframework bekannt sein, wobei es in der neuen Version dank Scala und Akka auch extrem leistungsfähig sein wird. Zusätzlich zu den erwähnten Komponenten enthält der Typesafe Stack auch Tools wie die Scala IDE for Eclipse, sbt (Simple Build Tool) und sbteclipse, ein Plug-in für die Integration von sbt, und Eclipse.

JAXenter: Vor einem Jahr hatten wir uns bereits über die Tooling-Umgebung für Scala unterhalten. Damals hattest du eine vernünftige Werkzeugunterstützung für sehr wichtig erachtet, damit eine Sprache wie Scala in der Praxis erfolgreich eingesetzt werden kann. Welche Entwicklungen gab es in diesem Tooling-Bereich im letzten Jahr?

Heiko Seeberger: Aus meiner Sicht am wichtigsten ist die Stabilität der IDEs. IntelliJ war ja schon seit einiger Zeit recht gut zu gebrauchen und wartet stets mit neuen Features auf, hat aber inzwischen durch die Scala IDE for Eclipse mit ihrem inkrementellen Compiler echte Konkurrenz bekommen. Ich verwende zum Beispiel seit einem halben Jahr ausschließlich Eclipse. Eine andere wichtige Entwicklung stellt die neue Version 0.11 des sbt dar. Meiner Meinung nach ist das ein großer Wurf, aber sbt wurde beinahe Opfer seines frühen Erfolges, denn leider hatten etliche Nutzer der alten Version 0.7 Schwierigkeiten mit den neuen Konzepten. Inzwischen gibt es aber einen guten Getting Started Guide und eine sehr aktive Community, die über mögliche Schwierigkeiten beim Umstieg hinweghelfen.

JAXenter: Kommen wir ein wenig näher auf die Scala IDE for Eclipse zu sprechen. Vor einem Jahr hattest du dem Plug-in ja eine geringe Zuverlässigkeit attestiert. Vor Kurzem ist nun Version 2.0 des Plug-ins erschienen, die jetzt stabiler laufen soll. Welche technischen Änderungen haben das ermöglicht?

Heiko Seeberger: In der Tat hielt ich die Scala IDE for Eclipse in der Vergangenheit für schlicht unbrauchbar. Allerdings bin ich inzwischen geläutert und behaupte, dass das Eclipse-Plug-in über den besten Compiler aller IDEs verfügt, und damit meine ich vor allem Korrektheit und Geschwindigkeit. Eigentlich ist das auch nicht verwunderlich, denn das Eclipse-Plug-in nutzt den „echten“ Scala Compiler, sodass ein angezeigter Fehler auch wirklich ein solcher ist. Bei IntelliJ zum Beispiel kann man sich da nicht sicher sein, da gibt es immer wieder Abweichungen. Aber nun zu deiner eigentlichen Frage nach den technischen Änderungen: Ich bin kein Core-Entwickler, aber soweit ich weiß, ist der so genannte Presentation Compiler, den maßgeblich Martin Odersky höchstpersönlich entwickelte, der entscheidende Faktor. Im Gegensatz zu einem Batch Compiler ermöglicht er Einblick in den Compiler-Zustand, zum Beispiel um jederzeit und schnell Typinformationen für die Autovervollständigung zur Verfügung zu stellen.

JAXenter: Was fehlt dir noch, damit das Scala-Plug-in zu seinem Java-Pendant JDT aufschließen kann?

Heiko Seeberger: Neben etlichen kleinen Helferlein, zum Beispiel weiteren Refactorings, benötigen wir ganz dringend einen Scala Debugger. Natürlich können wir einfach den Java Debugger verwenden, denn Scala kompiliert schließlich zu Java Bytecode. Aber was wir dann zu sehen bekommen, entspricht nur noch zum Teil unserem Scala Sourcecode. Zum Beispiel ist es ganz schwierig, mit dem Java Debugger Funktionen (Closures) zu debuggen. Wir bei Typesafe betrachten den Scala Debugger als Toppriorität und arbeiten schon seit geraumer Zeit daran.

JAXenter: Vor einem Jahr hattest du IntelliJ als IDE angegeben, die du selbst einsetzt. Wie sieht es jetzt aus?

Heiko Seeberger: Seit ich bei Typesafe begonnen habe, setze ich ausschließlich die Scala IDE for Eclipse ein. Um ehrlich zu sein, war der Hauptgrund natürlich „Eat your own dogfood!“, aber abgesehen von einigen anfänglichen Schwierigkeiten im Sommer 2011 habe ich den Umstieg in keiner Weise bereut. Die allermeisten unserer Kunden setzen Eclipse ein, sodass ich auch von dieser Seite her keinen Bedarf habe, eine andere Entwicklungsumgebung zu nutzen. Allerdings verfolge ich die Entwicklung von IntelliJ aufmerksam und bin sehr froh, dass wir heute mindestens zwei gute Scala IDEs haben.

JAXenter: Was darf die Scala-Community im Jahr 2012 erwarten?

Heiko Seeberger: Der bereits erwähnte Typesafe Stack 2.0 mit Akka 2.0 und Play 2.0 ist ganz sicher ein Highlight. Ein wenig später dann der Scala Debugger, der wohl Bestandteil der Scala IDE for Eclipse 2.1 sein wird. Natürlich ist auch Scala 2.10 „in der Mache“, das mit einigen spannenden Features wie zum Beispiel Scala Reflection aufwarten wird. Abgesehen von diesen technischen Aspekten finden bereits im März das Northeast Scala Symposium in Boston und im April die Scala Days 2012 in London statt, für die sich trotz gesteigerter Kapazitäten schon wieder abzeichnet, dass sie frühzeitig ausgebucht sein werden.

JAXenter: Vielen Dank für dieses Gespräch!

Heiko Seeberger ist als Director Professional Services für Typesafe tätig. Er ist Scala-Enthusiast, seit er diese wunderbare Sprache im Jahr 2008 kennenlernte. Er hat mehr als zehn Jahre Erfahrung in der Beratung und Softwareentwicklung auf der Java-Plattform, trägt aktiv zu Projekten aus der Scala-Community bei und gibt seine Expertise regelmäßig in Form von Artikeln und Vorträgen weiter.
Kommentare

Schreibe einen Kommentar

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