Groovy

Aus der Einleitung zu Groovy für Java-Entwickler:

GroovyGroovy ist eine neue Open Source-Programmiersprache, die mit dem Ziel erschaffen wurde, produktivitätssteigernde Features moderner Interpreter-Sprachen wie Python, Ruby und Smalltalk nahtlos in die Java-Welt zu integrieren.

Groovy wird häufig als »Skriptsprache« bezeichnet. Das wird ihr nicht ganz gerecht. Denn Groovy kann zwar als Skriptsprache verwendet werden, steht auch in der Tradition von Skriptsprachen und hat typische Eigenschaften von Skriptsprachen –- geht aber in vielen Aspekten über Skriptsprachen hinaus. Vielleicht sollte man deshalb besser von einer »dynamischen Sprache« sprechen. Die Sprache selbst lehnt sich stark an Java an, enthält aber eine Reihe wesentlicher Erweiterungen und Besonderheiten, die sie um einiges mächtiger und sehr viel flexibler machen.

  1. Skriptfähigkeit. Sie können – aber müssen nicht – Groovy-Programme direkt aus dem Quellprogramm heraus starten, ohne sie explizit zu Klassendateien kompilieren zu müssen.
  2. Eine mächtigere Sprache. Groovy umfasst einige Erweiterungen wie Closures, überladbare Operatoren und die Unterstützung von Standardtypen, durch die sie viel mächtiger wird als Java. In Verbindung mit den Klassen der Groovy-Laufzeitbibliothek kann der Programmcode gegenüber Java oft auf ein Bruchteil reduziert werden.
  3. Der dynamische Charakter der Sprache Groovy eröffnet eine Fülle neuer Möglichkeiten, die weit über das hinausgehen, was konventionelle statische Programmierung erlaubt.

Diese neue Sprache würde es vielleicht nicht geben, hätten nicht in letzter Zeit eine neue Skriptsprache namens Ruby und das darauf basierende Web-Entwicklungsframework Ruby on Rails enormes Aufsehen wegen der Geschwindigkeit erregt, die sie bei der Anwendungsentwicklung erlauben. Groovy ist aber keine Portierung von Ruby auf die Java-Plattform,1) sondern ein völlig eigenständiges Konzept. Allerdings übernimmt Groovy einige wichtige Ideen von Ruby (und anderen Sprachen), darunter deren dynamischen Charakter und die Anlehnung an funktionale Programmierung. Entscheidend ist, dass Groovy im Unterschied zu einer bloßen Portierung einer fremden Sprache fest in der Java- Welt verwurzelt ist. Die Sprache ist konsequent als Weiterentwicklung von Java konzipiert, und die Integration mit konventionell programmierten Java-Programmen ist – in beiden Richtungen – völlig problemlos. Wenn Sie sich also mit Java auskennen und sich mit Groovy beschäftigen möchten, brauchen Sie nicht etwas völlig Neues zu lernen. Sie fangen mit dem an, was Sie kennen: Das schlichte »Hello World« funktioniert ohne jede Änderung auch in Groovy. Binnen kürzester Zeit werden Sie aber feststellen, dass es anders geht, dass sich so manche Konstruktion, die in Java umständlich und undurchsichtig ist, mit Groovy auf wenige Zeilen verkürzen lässt, die das Wesentliche Ihres Programms ausdrücken. Und noch etwas später werden Sie erkennen, dass Ihnen Groovy Möglichkeiten eröffnet, die weit über das hinausgehen, was das klassische Java Ihnen bieten kann. Zu Groovys eigenständigen Konzepten gehören beispielsweise Builder der Features zum Entwerfen von Domain Specific Languages (DSL).

Sie müssen sich also nur ein wenig darauf einlassen.

Erwarten Sie aber nicht, dass Sie Ihr nächstes größeres Projekt komplett in Groovy implementieren werden. Die Sprache ist jung, vieles ist noch in Bewegung, und es gibt so manchen Bug und manche Ungereimtheit, die zu beseitigen noch einige Versionsnummern dauern wird. Darüber hinaus wirft auch der dynamische Charakter der Sprache Fragen nach der Stabilität und der Performance auf, die vor einem Einsatz in Projekten beantwortet werden müssen. Schon jetzt gibt es aber eine Reihe von Anwendungsfällen, für die Groovy sich als Mittel der Wahl darstellt:

  • Mit seiner Scripting-Fähigkeit bietet sich Groovy besonders für die Anpassung von Softwaresystemen an lokale oder zeitliche Gegebenheiten an, insbesondere wenn die üblichen Mittel wie Properties- und XML-Dateien nicht mehr ausreichen.
  • In Zusammenhang mit Grails ist Groovy eine hochinteressante Möglichkeit für den Aufbau von Webanwendungen oder Web-Frontends, die die bewährten Mittel der Java-Webentwicklung nutzen, aber gleichzeitig viel rascher und flexibler erstellt werden können.
  • Als Hilfsmittel für kleine Ad-hoc-Tools, die von Java-Entwicklern aufgrund der vertrauten Syntax und Umgebung mit geringem Aufwand selbst geschrieben werden können, insbesondere wenn sie beliebige Java-Bibliotheken nutzen.
  • Implementierung von Build-Prozessen und sonstigen automatisierten Vorgängen, in denen sich die deklarativen Gestaltungsmittel von Apache Ant mit den prozeduralen Sprachmitteln von Groovy kombinieren lassen.
  • Testskripten sowie Dummies und Mock-Objekte, die den isolierten Test einzelner Module erleichtern.
  • Prototypen von Anwendungen oder Komponenten, mit denen Sie die Machbarkeit von Softwareprojekten nachweisen können und die als Platzhalter für noch in der Entwicklung befindliche Anwendungsteile dienen.
  • Schließlich, und das nicht zu unterschätzen, ist Groovy eine hervorragende Möglichkeit für Java-Programmierer, sich mit neuen, agilen Programmierkonzepten auseinanderzusetzen, ohne sich erst einmal mühsam in die Spezifika einer unbekannten Plattform wie Python oder Ruby einarbeiten zu müssen.

Mit dem Java Specification Request (JSR) 241 ist sie in die Standardisierung durch den Java Community Process einbezogen und wird damit quasi die zweite »amtliche« Sprache auf der Java-Plattform neben Java selbst. Groovy versteht sich somit als eine Implementierung des JSR-241. Entwickelt wird sie in einem bei Codehaus (www.codehaus.org) gehosteten Open Source-Projekt, das von Bob McWhirter und James Strachan gegründet wurde; derzeitiger Project Manager ist Guillaume Laforge. Nach einer Reihe von Überarbeitungen erfolgte die Freigabe der Groovy-Version 1.0 Anfang 2007.

In einem Probekapitel aus Groovy für Java-Entwickler können Sie schon einmal nachlesen, wie man in Groovy mit Closures, Builder und Templates arbeitet.

Eine Kurzübersicht der wichtigsten Eigenheiten der Programmiersprache Groovy gegenüber Java finden Sie unter Groovy für Grails-Entwickler.

1) Eine solche Portierung bietet – mit einer völlig anderen Zielrichtung als Groovy – ein Open Souce-Projekt mit dem Namen JRuby.
groovy/start.txt · Zuletzt geändert: 29.04.2008 von jst
Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki