News

Mittwoch, 22. April 2009 | News

Eindrücke von der JAX: Turmbau zu Babel

(Link zum Artikel: http://www.it-republik.de/jaxenter/news/048459)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Mirko Novakovic

In der Bibel wurden die Menschen wegen des Turmbaus zu Babel (1. Mose 11) von Gott verwirrt, in dem er ihnen verschiedene Sprachen gegeben hat. Aufgrund dieser Kommunikationsstörung mussten sie dann den Bau beenden. Werden wir in der Java Community gerade auch durch neue Sprachen wie Scala, JRuby oder Groovy in die Verwirrung getrieben und werden sie die Weiterentwicklung der Java-Plattform behindern? Schon bei der Begrüßung der Teilnehmer der JAX durch Sebastian Meyen ist mir aufgefallen, dass gerade neue Sprachen basierend auf der Java Plattform eine Art Hype Thema sind. Sebastian interviewte dazu Ted Neward von ThoughtWorks und Michael Johann, den Chefredakteur des RailsWay Magazins live auf der Bühne. Angesprochen auf die Frage, ob Scala & Co. einen echten Nutzen hätten oder ihm Java einfach langweilig geworden sei antwortete Ted: "Einfach langweilig." Die Frage ob Sprachen wie Groovy, Scala oder JRuby der Java Plattform einen echten Mehrwert besitzen oder ob es doch nur Eintagsfliegen sind und irgendwann wieder verschwinden hat mich heute dann auch intensiv beschäftigt. Unter anderem habe ich mir deshalb die Vorträge von Ted zu Scala und die Einführung in JRuby on Rails von Johann angehört. Vorweg: Beide Vorträge waren sehr unterhaltsam und informativ und sicherlich ist es auch solchen „Evangelisten“ zu verdanken, dass Scala und JRuby jeden Tag an Popularität gewinnen.

Kritisch finde ich allerdings, dass zu oft der Vergleich zwischen den neuen Sprachen und Java gesucht wird. Gerade Ted hat das Thema „in Scala sind das 10 Zeilen Code und in Java braucht man dafür mindestens 50 Zeilen“ sehr strapaziert. Scala bietet mit dem Überladen von Operatoren, der Möglichkeit, Methoden und Methoden-Bodys als Parameter zu übergeben und so genannten Comprehensions sehr interessante Sprachelemente an, genauso wie Groovy oder JRuby mit den viel diskutierten Closures.

Natürlich reduzieren viele dieser Sprachelemente die Anzahl Codezeilen, ich bezweifel aber, dass die Wartbarkeit dadurch immer wirklich verbessert wird:

  1. for { i < List.range(1, n)
  2. j < List.range(1, i)
  3. if isPrime(i+j) } yield {i, j}

Diese Scala Comprehension findet zu einem Integer n alle positiven Integer Paare i und j, für die gilt: 1 <= j < i < n, wobei die Summe aus i + j eine Primzahl ergibt.

So eine Funktion in einem einzeiligen for-Schleifen Konstrukt abzubilden ist zwar schlank, aber benötigt dafür entsprechend viele Zeilen Kommentar, um zu erläutern, was diese Zeile eigentlich macht. (Ich persönlich habe es auch noch nicht 100%ig verstanden) Insgesamt sehe ich die Entwicklung aber trotzdem sehr positiv für die Programmiersprache Java und die Java Plattform. Sprachen wie Scala, Groovy oder JRuby werden Java sicherlich nicht verdrängen, aber sie sind eine Domain Specific Language für viele Spezialfälle. Schnell mal ein Datenmigrationsskript schreiben – ohne Groovy für mich heute undenkbar. Grails und (J)Ruby on Rails sind für Webanwendungen und Webfrontends sicherlich häufig die bessere Wahl als Struts & Co. und vor allem kann die Produktivität von Java durch diese speziellen Sprachen und Frameworks deutlich gesteigert werden.

Daneben sehe ich Scala, Groovy, JRuby und Co. aber auch als Innovationsfabrik für die Java Programmiersprache. Durch den Java Community Prozess, den hohen Verbreitungsgrad von Java und die vielen Unternehmen, die mitreden wollen, ist Java zu einer stabilen Enterprise Plattform geworden – allerdings bemängeln Kritiker zu Recht, dass der JCP träge und wenig innovativ ist.

Sprachen wie Scala und JRuby sind diesen Regeln und Prozessen nicht unterworfen und werden meistens von einer Community weiter entwickelt – so entstehen aus meiner Sicht neue Sprachkonstrukte und Frameworks, die in der Praxis getestet und bei Erfolg Einzug in die Java Programmiersprache oder Java Frameworks halten werden. Closures sind ein Beispiel dafür – ich denke ohne den Erfolg von Groovy und Ruby und den Druck der Community, wäre nicht eine so große Diskussion über Closures in Java in Gang gesetzt worden. Projekte wir JBoss Seam oder Apache Wicket sind sicherlich auch inspiriert von Ruby on Rails angetreten, die Produktivität von Java im Web Umfeld zu verbessern. Ich wünsche mir, dass uns Scala, Groovy und JRuby noch lange erhalten bleiben: Zum einen weil es die Java Plattform stärkt und zum anderen weil die Frameworks einfach Spaß machen…

Mirko Novakovic ist Mitgründer der codecentric GmbH. Neben der Geschäftsleitung liegen seine Schwerpunkte im Bereich Performance-Tuning, Java-EE-Architekturen und Open Source Frameworks.

andere Artikel dieser Serie


Anzeige

Kommentare


Folgende Links könnten Sie auch interessieren

  • XPath, XLink, XPointer, and XML  [14.02.2003]
    [http://it-republik.de/jaxenter/news/XPath-XLink-XPointer-and-XML-000162.html]
  • Java 5 - Programmierhandbuch  [05.10.2005]
    [http://it-republik.de/jaxenter/news/Java-5---Programmierhandbuch-000450.html]
  • Single Source Publishing  [21.08.2007]
    [http://it-republik.de/jaxenter/news/Single-Source-Publishing-000653.html]
  • Java 6  [04.06.2007]
    [http://it-republik.de/jaxenter/news/Java-6-000623.html]
  • Durchstarten mit Scala  [25.05.2011]
    [http://it-republik.de/jaxenter/news/Durchstarten-mit-Scala-000881.html]
zurück zum Seitenanfang