Ein gewichtiger Faktor für den Erfolg einer neuen Sprache ist sicherlich auch eine adäquate Landschaft aus Werkzeugen, die die effiziente Entwicklung großer, produktiver Projekte erst ermöglichen. Wie es beim Tooling-Support bei Scala derzeit aussieht, haben wir Heiko Seeberger im Rahmen des JAX-Countdown gefragt. Er gibt einen kleinen Vorgeschmack auf seine Session "Scala IDE for Eclipse: endlich erwachsen!", eines der Highlights des Eclipse Tools Day der JAX 2010, in der er den Scala-Support bei Eclipse ausführlich in Live-Demos vorstellen wird!
JAXenter: Hallo Heiko! Scala auf dem Vormarsch – doch was nützt uns die beste Sprache ohne geeignetes Tooling? Wie sieht es bei Scala zurzeit damit aus?
Heiko Seeberger: Lange Zeit war fortschrittliche Werkzeugunterstützung, also IDE Support, die Achillesferse von Scala. Auch für die zurzeit noch aktuelle Release-Version 2.7.7 sind die Scala-Plug-ins für die drei großen IDEs (Eclipse, Netbeans und Intellij IDEA) eher mangelhaft denn ausreichend. Jedoch ist für die neue Scala-Version 2.8, für die wir in den kommenden Tagen den (ersten) Release Candidate erwarten dürfen, deutliche Besserung in Aussicht. Davon kann man sich bereits anhand von Vorabversionen der IDE-Plug-ins überzeugen. Ich gehe davon aus, dass innerhalb von wenigen Monaten das Niveau auf "befriedigend", vielleicht sogar bis auf "gut" angehoben werden kann. Langfristig sehe ich keinen qualitativen Unterschied mehr zu Java-IDEs.
JAXenter: Du stellst auf der JAX 2010 die Scala IDE für Eclipse vor. Was kann die Scala IDE für Eclipse – und was nicht?
Heiko Seeberger: Der wirklich große Unterschied - und aus meiner Sicht ein riesiger Vorteil - zwischen Eclipse und anderen IDEs ist der inkrementelle Compiler. Netbeans oder IntelliJ IDEA erfordern immer einen kompletten Build, wohingegen Eclipse beim Speichern einzelner Dateien nur die Änderungen übersetzt. Dieser Unterschied ist im Matrix-Jargon sozusagen systemimmanent, sodass Eclipse hier wohl immer die Nase vorne haben wird. In vielen anderen Bereichen, z.B. beim Refactoring, ist momentan IntelliJ IDEA am weitesten. Aber das ist wohl kein prinzipielles Problem von Eclipse, sondern einfach eine Frage der Zeit.
JAXenter: Welche Features bieten die anderen zur Verfügung stehenden Scala-Entwicklungsumgebungen?
Heiko Seeberger: Netbeans glänzt mit der vielleicht besten Maven-Integration. Das hat zwar nicht direkt mit Scala zu tun, jedoch wird Maven in vielen Scala- bzw. Lift-Projekten eingesetzt, sodass das schon eine praktische Relevanz hat. IntelliJ IDEA bietet, wie schon angedeutet, schon etliche aus der Java-Welt lieb gewonnene Refactorings, z.B. Rename, Introduce Variable etc. Im Großen und Ganzen ist der Funktionsumfang aber recht ähnlich, so wie in der Java-Welt auch.
JAXenter: Wenn es nach dir ginge, würde Scala morgen schon die Macht übernehmen, oder? Aber was passiert dann mit dem armen alten Java?
Heiko Seeberger: Na ja, ich bin zwar Scala-Fan, aber hier brauchen wir doch gar kein Highlander-Prinzip. Vielmehr sehe ich voller Freude einer polyglotten Zukunft entgegen, in der Scala bestimmt eine gewichtige Rolle spielen wird. Das arme alte Java? Wenn Java die derzeitige Innovations-(Null-)Geschwindigkeit beibehält, dann werden wohl viele neue Projekte andere Sprachen verwenden. Mit Scala kann zum Glück jeglicher Java-Code integriert werden, denn Scala ist 100% "abwärtskompatibel" und erlaubt sogar gemischte Projekte. Daher ist auch ein sanfter Migrationspfad möglich, d.h. man könnte z.B. erst die Tests auf ScalaTest oder specs umstellen und danach Zug um Zug einzelne Teilprojekte.
JAXenter: Vielen Dank für dieses Gespräch und bis zur JAX 2010 in Mainz!
Die Eclipse Days der JAX 2010:
- Mo, 3.Mai: Eclipse Modeling Day
- Di, 4. Mai: Eclipse Platform Day
- Mi, 5. Mai: Eclipse Tools Day
- Do, 6. Mai: Enterprise Eclipse Day
Nicht verpassen!









