Reasons for Xtend

The next version of CLENotes will be developed with Xtend. There are several reasons why I chose Xtend instead of some other JVM based language, such as Clojure, Scala or Groovy.

I describe some of the thought process that lead to use Xtend.

First of all, the current version of CLENotes uses Jython. It’s a nice language, fun to use and to program with. But why I want to change it? Some of the experiences that made me decide to not use Jython anymore are listed below.

  • A big reason was IDE support, that was not as good as I’d hoped.
  • Because of that, I always had to consult Notes and Java API references while writing code.
  • And that lead to maintenance issues. Even minor changes meant going back to references and increased time to do changes.
  • Finally the most important reason: I wanted to use a new language.

What language should I use? Here are some of the arguments of choosing new language:

  • New language must be based on JVM.
  • Eclipse IDE support is a must.
  • Interoperability with existing Java libraries is a must.
  • Installation of new language environment must be easy enough.
  • Learning curve of the new language should be easy enough.

With those arguments in mind, I started to look for another language. JVM-based languages narrowed the search a lot and in the end there were only a few candidates, aforementiond Scala, Clojure and Groovy as well as JRuby, Sleep, and Rhino. But there were many reasons why I didn’t choose any of those languages. For example, IDE support and Java interoperability were not as good as I’d hoped.

After spending some time considering at the alternatives, I found Xtend. Very fortunate that I did, because it had most, if not all, features that I wanted like IDE support, interoperability and very Java-like syntax.

A perfect match for my needs.

2 thoughts on “Reasons for Xtend”

  1. Good question.
    I didn’t want to and I also wanted to use something I haven’t used before..

    Given the arguments that I had, Xtend is still a good choice 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *