dslxtextxtend

Why does Xtext no longer generates Xtend classes?


I am refactoring an Xtext project developed on an older version and notice that, by default, the Xtext framework now generates Java classes in place of what used to be Xtend classes.

Is the Xtext project moving towards Java recently? Is this to harness Java's updates? What does it mean for Xtend within Xtext?

I am curious because my project uses a lot of extension methods and string templates, so I need to know if I should update my code at some point.


Solution

  • https://blogs.itemis.com/en/xtext-2.20-release

    To be more specific, we still think that Xtend is the most powerful language supporting template expressions. The most common use case for this are code generators. Besides that, writing unit tests with Xtend feels much cleaner than with Java. However, we decided to encourage to use Xtend only for these areas, and not as the primary general-purpose language. And we start doing this with the “New Project” wizard. The configuration that this wizard creates for a new Xtext project, will now use Java as the language for generated skeleton classes, so that newly-created projects (and especially new users) are using Java by default.

    The Xtext project started to discourage the usage of Xtend where the latter’s language features do not have a significant benefit over Java. And internally, the project started to refactor the codebase to follow this recommendation.