Donnerstag, 12. Mai 2011

Scala 2.9 und Akka 1.1

Ein halbes Jahr nach der letzten Version wurde heute Scala 2.9 veröffenticht.

Wichtigste Neuerung sind sicherlich die parallelen Kollektionen, die z.B. beim Sortieren, Filtern und Durchlaufen automatisch mehrere Prozessorkerne nutzen. Sofern die dabei ausgeführten Funktionen hinreichend komplex sind, lassen sich durch die Parallelisierung deutliche Geschwindigkeitssteigerungen erreichen. "Normale" sequentielle Kollektionen lassen sich mit einem Methodenaufruf in eine parallele Kollektion umwandeln und umgekehrt.

Hilfreich für die alltägliche Programmierung ist auch der neue App-Trait, der den veralteten, nicht so mächtigen und teilweise problematischen Application-Trait ablöst. Mit dem App-Trait lässt sich auf einfache und elegante Weise der Programm-Einstiegspunkt schreiben – er ist also eine Vereinfachung der main-Methode (die man aber immer noch von Hand programmieren kann).

Diese und viele weitere kleine Verbesserungen sind genauer in der Ankündigung der neuen Version 2.9 beschrieben.

Zeitgleich wurde die Gründung der Firma Typesafe bekannt gegeben, in der sich die Gründer und Entwickler von Scala und Akka zusammentun, um Dienstleistungen rund um die Scala-Technologie anzubieten. Als Berater stehen dieser neuen Firma recht bekannte Java-Größen wie James Gosling und Doug Lea zur Seite. Neben Dienstleistungen bietet Typesafe den Typesafe Stack an, ein vorkonfiguriertes Paket mit Scala 2.9 und Akka 1.1.

Akka ist eine Ereignis-gesteuertes Rahmenwerk, mit dem sich verteilte Anwendungen entwickeln lassen. Die Geschäftslogik bleibt dabei frei von den technischen Aspekten der Parallelisierung, Kommunikation, Ausfallsicherheit etc. – ideal für typische Server-Anwendungen. Bekannt geworden ist Akka durch die eigenen, hochskalierbaren und robusten Aktoren (Actors).

Im Typesafe Stack 1.0 sind sowohl die Aktoren von Scala als auch die von Akka mit ihrer bisherigen Funktionalität enthalten. Für zukünftige Scala-Versionen ist aber wohl geplant, diese Funktionalitäten zusammenzuführen.