8 comments

[ 4.9 ms ] story [ 34.4 ms ] thread
"You will not feel any difference between your language and Java."
shudder
fortunately not as easy as c++
Does anyone have some feedback on using this ? Or any similar toolkit ?
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.

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?

If you are ok with Sexp syntax and don't want IDE support for the DSL constructs, Lisp works.
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...

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