language-icon Old Web
English
Sign In

Xtend

Xtend is a general-purpose high-level programming language for the Java Virtual Machine. Syntactically and semantically Xtend has its roots in the Java programming language but focuses on a more concise syntax and some additional functionality such as type inference, extension methods, and operator overloading. Being primarily an object-oriented language, it also integrates features known from functional programming, e.g. lambda expressions. Xtend is statically typed and uses Java's type system without modifications. It is compiled to Java code and thereby seamlessly integrates with all existing Java libraries. Xtend is a general-purpose high-level programming language for the Java Virtual Machine. Syntactically and semantically Xtend has its roots in the Java programming language but focuses on a more concise syntax and some additional functionality such as type inference, extension methods, and operator overloading. Being primarily an object-oriented language, it also integrates features known from functional programming, e.g. lambda expressions. Xtend is statically typed and uses Java's type system without modifications. It is compiled to Java code and thereby seamlessly integrates with all existing Java libraries. The language Xtend and its IDE is developed as a project at Eclipse.org and participates in the annual Eclipse release train. The code is open source under the Eclipse Public License. Yet, the language can be compiled and run independently of the Eclipse platform. Xtend originated from Xtext, which is the technology used to define the language and the editor. Xtend was first released as part of Xtext in the Eclipse release Indigo in June 2011. Since the Eclipse release Juno (June 2012, Xtend version 2.3) Xtend has become a standalone project. The language Xtend described here should not be confused with the older language with the same name in the Xpand project. Initially, Xtend was named Xtend2 for better distinction. The '2' was dropped soon for simplicity. With its template expressions, Xtend is meant as a replacement of the entire Xpand technology. Java is one of the most popular programming languages ever with a large ecosystem of libraries and tools. Yet, its syntax is considered verbose by some, and some concepts are missing and only added slowly. Xtend tries to get the best of Java, but reduce syntactic noise and add new features to allow for shorter and better readable code. To make it easier to learn for Java developers, Xtend's syntax is close to Java's. Xtend maintains maximum compatibility with Java by compiling to Java code and using Java's type system. Java code and Xtend code can be mixed inside the same project at will. Using a combination of lambda expressions and extension methods, the language can be extended by means of libraries, i.e. without changing the language itself. A small standard library makes heavy use of this. The Eclipse-based Xtend IDE offers syntax highlighting, code completion, refactoring, navigation and debugging. It integrates with Eclipse's Java Development Toolkit. Xtend resembles Java in many regards. Here is an example Xtend file:

[ "Horticulture", "Programming language" ]
Parent Topic
Child Topic
    No Parent Topic