
Xtext - Language Development Framework - thibaut_barrere
http://www.eclipse.org/Xtext/
======
jefffoster
Sounds interesting. The article from Martin Fowler
(<http://martinfowler.com/articles/languageWorkbench.html>) talks about
language workbench's like this in 2005 and this seems to be the first
available mainstream implementation of one.

Intentional Software (<http://www.intentsoft.com/>) also promise a package
like this, but haven't delivered anything publically as far as I'm aware.
There's also JetBrains MPS, but not much seems to be said about that any more.

All of this seems to be a kludge though. Java's weak at allowing new syntax
(no operator overloading, no higher-order functions, no dynamic dispatch) so
you need verbose code to implement your own language. With a language more
targeted at this, such as Lisp, would you need all this?

~~~
jules
If you are ok with Sexp syntax and don't want IDE support for the DSL
constructs, Lisp works.

------
scscsc
"You will not feel any difference between your language and Java."

~~~
kleiba
_shudder_

~~~
msx
fortunately not as easy as c++

------
jankoehnlein
You might want to have a look at Xtend2. Xtend2 is a complete language build
with the upcoming Xtext version 2.0.

Xtend2 offers dynamic dispatch functions and binds and compiles to Java.
Furthermore, it inherits other nice language features like operator
overloading, closures, higher-order functions and a rich switch statement from
the expression language library Xbase (also part of Xtext 2.0).

You can define your own fully-flegded languages with Xtext easily by extending
Xbase. Adding concepts or using just a subset of the expression language is
possible.

There's a lot of information about Xtend2/Xbase at Sven's blog, e.g.
[http://blog.efftinge.de/2011/04/eclipse-xtend-beta-
available...](http://blog.efftinge.de/2011/04/eclipse-xtend-beta-
available.html)

BTW, "feels like Java" is meant with respect to the editing experience :-) The
language itself feels a lot better...

------
wccrawford
Reading through the documentation, it seems fine for creating a DSL, but not a
whole language.

I would be okay with the performance of Java, so long as I could have the ease
and speed of coding of Ruby. For DSLs, that certainly seems possible... So
long as I take the time to write all the Java code for it anyhow. That's great
for DSL-type tasks (repetitive, or created by non-programmers), but I can't
see writing a whole language this way.

------
thibaut_barrere
Does anyone have some feedback on using this ? Or any similar toolkit ?

