Xtend ist eine statisch typisierte Programmiersprache aus dem Eclipse-Umfeld (Xtext-Projekt), die zu lesbarem Java-Quellcode kompiliert. Sie begann als „Xtend2“ und wurde mit Eclipse Juno (Juni 2012) ein eigenständiges Projekt. Xtend erweitert Java um moderne Sprachfeatures, ohne die JVM-Kompatibilität zu verlieren.
Kompilierung
- Quelldateien:
.xtend, eine Klasse pro Datei - Der Compiler erzeugt Java-Quellcode im Ordner
xtend-gen, der dann normal von javac weiterverarbeitet wird - Eclipse: Xtend-Plugin (Eclipse Update Site, Editor + Compiler integriert)
- Maven:
xtend-maven-pluginmit Goalxtend:compile(bzw.xtend:testCompile) - Gradle: Plugin
org.xtext.xtend, Abhängigkeitorg.eclipse.xtend:org.eclipse.xtend.lib
Syntax-Highlights
class Hallo {
def String gruesse(String name) {
val text = "Hallo " + name
return text
}
}
def– Methoden-Definition (kompiliert zu Java-Methoden)val– unveränderliche Variable,var– veränderliche Variable; Typinferenz inklusive- Lambdas:
list.map[ it.length ]mit implizitemit - Extension Methods:
"hallo".toFirstUppererweitert geschlossene Typen ohne Vererbung - Active Annotations: Annotationen nehmen zur Übersetzungszeit am Kompilierungsprozess teil (Boilerplate-Erzeugung, z. B. für Visitor- oder Observer-Muster)
- Template-Expressions: mehrzeilige Strings mit
«ausdruck»-Interpolation
Praxis-Tipps
- Da Xtend nach Java übersetzt wird, bleiben Debugging (mit Debug-Informationen) und Bibliotheksnutzung unkompliziert
- Kein separater Standalone-Compiler: Aufbau über IDE, Maven oder Gradle
Verwandte JVM-Sprachen: Java-Befehle, Kotlin-Befehle, Groovy-Befehle, Scala-Befehle. Weitere JVM-Nachbarn: Gosu-Befehle und X10-Befehle.