Monday, April 18, 2011

Eclipse Xtend - beta available

I proudly announce that a beta release of the upcoming Xtend language is available for download now. Xtend is a modern statically-typed programming language which tightly integrates with and runs on the Java Virtual Machine. It has its roots in the Java programming language but improves on a couple of concepts:
  • Advanced Type Inference - You rarely need to write down type signatures
  • Full support for Java Generics - Including all conformance and conversion rules
  • Closures - concise syntax for anonymous function literals
  • Injected extension methods - Enhance closed types with new functionality injected via JSR-330
  • Multiple dispatch aka polymorphic method invocation
  • Operator overloading - make your libraries even more expressive
  • Powerful switch expression - type based switching with implicit casts
  • No statements - Everything is an expression
  • Template syntax with intelligent whitespace handling
  • Translates to Java not bytecode - understand what's going on and use your code for platforms such as Android or GWT
It is not aiming at replacing Java but meant to be a better fit for implementing dependency-injected components and is especially well suited for doing code generation. Its library is just a thin layer over the Java Development Kit (JDK) and it interacts with Java exactly the same as it interacts with Xtend code. Also Java can call Xtend functions in a completely transparent way. And as it is implemented with Xtext, a modern Eclipse-based IDE closely integrated with the Java Development Tools (JDT) is available.
Xtend and Java vis-a-vis

Downloads


There are prepackaged Eclipse distributions available for download. They are shipped with the latest stable build and the nightly update sites are registered. So make sure you do "Help -> Check For Updates" on a regular basis to get the latest improvements.

Here are the download links :

[   ]eclipse-SDK-3.7M6-Xtext-2-nightly-HEAD-linux-gtk-x86_64.tar.gz

[   ]eclipse-SDK-3.7M6-Xtext-2-nightly-HEAD-linux-gtk.tar.gz
[   ]eclipse-SDK-3.7M6-Xtext-2-nightly-HEAD-macosx-cocoa-x86_64.tar.gz

[   ]eclipse-SDK-3.7M6-Xtext-2-nightly-HEAD-macosx-cocoa.tar.gz
[   ]eclipse-SDK-3.7M6-Xtext-2-nightly-HEAD-win32-x86_64.zip
[   ]eclipse-SDK-3.7M6-Xtext-2-nightly-HEAD-win32.zip


Getting Started


Xtend is shipped with a reference documentation which can be accessed through Eclipse's Help system.
Use the menu action [Help -> Help Contents] and you will find it.

Next up you might want to start playing around. The easiest thing to do is to materialize the Xtend tutorial project, which explains all the concepts by example. To do so use the project wizard and choose [File -> New... -> Example ...] and choose [Xtext Examples / Xtend tutorial].



Getting Feedback


It is important for us to get as much feedback as possible. Please use the Xtext Forum / Newsgroup to ask questions and bugs.eclipse.org to file bugzillas (product : TMF / component : Xtext).

The official release will be June 22nd. The language and its library is mostly finished and will only slightly be changed until then.

Acknowledgement


The language has been designed and implemented based on Xtext 2.0 and more important together with my friends and colleagues Sebastian and Jan (Unfortunately Moritz was busy with Xtext's serializer :-)).  Our work is funded by itemis and the Federal Ministry of Education and Research.