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.