JAXenter.de

Das Portal für Java, Architektur, Cloud & Agile
X

Alle Infos zur aktuellen JavaOne gibt's in unserer Serie: JavaOne 2014.

Die Schonzeit für Scala ist zu Ende

Hartmut Schlosser

"Mr. Anti-Scala" hat sich wieder zu Wort gemeldet: Stephen Colebourne berichtet in seinem Blog über eine E-Mail aus dem Hause Yammer, die nahelegt, dass der Anbieter sozialer Enterprise-Netzwerke sich - zumindest teilweise - wieder von Scala verabschiedet. Die Quintessenz der E-Mail ist: Es habe sich gezeigt, dass die Komplexität, die Scala mit sich bringe, die Produktivitätsvorteile nicht aufwiege.

Yammer hatte seit August 2010 Teile ihrer Software-Architektur auf Scala-Basis entwickelt und zieht nach fast 1 ½ Jahren Erfahrung mit Scala im Enterprise-Einsatz eine negative Billanz. Einige der Haupt-Argumente im einzelnen:

  • Komplexität: Es sei überraschend gewesen, wie viele Konzepte neuen Team-Mitgliedern vermittelt werden mussten.
  • Fehlendes Praxis-Bewusstsein der Community: Die sichtbarsten Mitglieder der Scala Community verlören sich allzu oft in akademischen Diskussionen oder versuchten, das Rad neu zu erfinden. Die Community sei deshalb nicht hilfreich gewesen. Statt sich an den Diskussionen zu beteiligen, war der interne Ratschlag deshalb: "Ignore the community entirely."
  • Fehlende Best Practices: Ohne Rückendeckung einer hilfreichen Community musste sich das Team selbst das Wissen aneignen, was "gutes" Scala ausmache. Insbesondere war dies deshalb notwendig, da die Komplexität und Offenheit Scalas viele Programmierweisen zulasse.
  • Lange Einlernzeiten: Die Neuheit der Sprache bringt es mit sich, dass auf dem Arbeitsmarkt praktisch noch keine Entwickler mit Scala-Kenntnissen verfügbar sind. Die Zeit, bis ein neuer Entwickler in Scala produktiv wird, ist länger als bei Java.
  • Tooling-Mängel: Das Buildtool SBT erwies sich nicht als besonders stabil: "We ended up moving to Maven, which isn't pretty but works". Eine breite Pallette alternativer Tools wie in Java steht nicht zur Verfügung.
  • Abwärtskompatibilitätsproblem: Jede neue Scala-Version bricht die Abwärtskompatibilität: Entwickler werden zur Nutzung der neuesten Bibliotheken angehalten, Quellcode muss neu überarbeitet werden.
  • Performanz-Probleme: Im Betrieb traten wohl auch Performanzprobleme auf, beispielsweise bei der Verwendung von Closures, die dazu führten, dass 600 Codezeilen beim Kompilieren zu 6MB .class-Dateien erzeugten.

Colebourne sieht in diesem negativen Erfahrungsbericht seine eigene Auffassung bestätigt, die er letzte Woche in einem aufsehenerregenden Text geschildert hatte, dass Scala die Entwicklung der Programmiersprachen in eine falsche Richtung lenke.

Doch taugt der Yammer-Bericht tatsächlich dafür, als Scala-Antischrift instrumentalisiert zu werden?

Hintergründe

Nach Colebournes Blogpost hat sich der Verfasser der E-Mail, Yammer-Architekt Coda Hale, in einem Antwortblog zu Wort gemeldet und klargestellt, dass es sich bei der Nachricht um eine private Mail handelte, die nicht die Meinung seines Arbeitgebers widerspiegele. Hale stellt die Umstände dar, die zur ungewollten Verbreitung der E-Mail geführt haben.

Yammer ziehe tatsächlich einen Teil des Software-Stacks von Scala ab und kehre zu Java zurück. Nach einer entsprechenden Andeutung auf Twitter hatte Typesafe-CEO Donald Fischer Hale kontaktiert und um eine Darstellung der Beweggründe gebeten, worauf die besagte E-Mail entstand. Die E-Mail wurde zum Review an einige Kollegen gegeben - und über Nacht fand sich der Text plötzlich auf diversen Internet-Kanälen wieder und machte die Runde als "Anti-Scala-Pamphlet".

Hale bemerkt, dass er den Inhalt der E-Mail so nicht öffentlich machen würde und distanziert sich vehement von den "Nerd-Diskussionen" beispielsweise auf Hacker-News. Dennoch sei es naiv anzunehmen, die E-Mail sei in einem schwachen Moment entstanden. Es handele sich um die ehrliche Meinung, als Antwort an Donald Fischer und Martin Odersky.

Das Ende der Schonzeit

Was wir vorliegen haben, ist ein Bericht eines einst enthusiastischen Scala-Adopters, der für sein Team entschieden hat, dass Scala zum jetzigen Zeitpunkt in seinem Projekt noch nicht die erhofften Benefits bringt. Sicherlich ein Dorn im Auge derjenigen, die gerade daran arbeiten, die Enterprise-Tauglichkeit von Scala zu verbessern.

Deutlich sichtbar ist aber auch, dass die meisten Kritikpunkte dem Status von Scala als relativ neue Sprache geschuldet ist: Fehlende Best Practices, unreifes Tooling, die Tendenz in der Community, den Praxis-Aspekt einer Sprache zu vernachlässigen, wenig Vorerfahrung neuer Team-Mitglieder. Für eine sachliche Argumentation gegen Scala sind diese Argumente nicht geeignet - jede andere neue Sprache hat mit ähnlichen Schwierigkeiten zu kämpfen (siehe Language criticism von Clojure-Vertreter Alex Miller).

An der vermeintlichen Komplexität von Scala scheiden sich wohl die Geister. Zu den erwähnten Performanz-Problemen äußert sich Typesafe-Entwickler Josh Suereth in seinem Blogpost "Macro vs. Micro Optimisation". Vieles hinge hier an Begrenzungen der JVM, etwa bei Closures, die einen gewissen Overhead erzeugen können. Für Performanz-kritische Anwendungen sollte man deshalb andere Wege gehen - Compiler-Optimierungen seien aber zu erwarten.

Sollte man im Scala-Lager die E-Mail dann also vergessen? Mit Bedauern zwar zur Kenntnis nehmen, aber doch schnell wieder zur Tagesordnung übergehen? Täte man dies, verpasste man die Chance, ein wertvolles Community-Feedback in positive Bahnen zu lenken.

In der aktuellen Stimmungslage scheint vor allem eines deutlich zu werden: Scala hat sich von Everybody´s Darling zum ernstzunehmenden Sprach-Kandidaten entwickelt, dem man keine Vorschusslorbeeren mehr einräumt. Die Schonzeit für Scala ist zu Ende. Die Kritik im Detail zeugt davon, dass die Community nach jahrelang genährten Erwartungen jetzt auch in Sachen Professionalisierung von Scala Resultate sehen will. Es ist Zeit, dass Scala erwachsen wird.

In jedem Fall ist Hales E-Mail in einem völlig anderen Geist geschrieben, als Colebournes Blogpopst (wir erinnern uns: "I don't like Scala. And that dislike is increasing.") - und sollte deshalb nicht im selben Zusammenhang gelesen werden. Bezeichnend ist der Schlusssatz Coda Hales, aus dem eine gewisse Wehmut spricht:

Despite the fact that we're moving away from Scala, I still think it's one of the most interesting, innovative, and exciting languages I've used, and I hope this giant wall of opinion helps you in some way to see it succeed.

Verwandte Themen: 

Kommentare

Ihr Kommentar zum Thema

Als Gast kommentieren:

Gastkommentare werden nach redaktioneller Prüfung freigegeben (bitte Policy beachten).