From Terence Parr's web page:
"Mantra is a clear descendant of Java in terms of syntax, but more like Ruby and Python because Mantra is dynamically typed (though mantra has type annotations). Like Ruby, Mantra has real closure support and the closure-following-method-call syntax for passing closures to functions. If Mantra has anything new and interesting, it's POP: pipeline-oriented programming or pipe-oriented programming. The pipeline statement implicitly launches threads on the actors in the pipeline and hooks up their input and output streams. The pipeline statement is directly analogous to pipes and I/O redirection on UNIX commandline.
The implementation translates Mantra to Java and therefore Mantra has the potential to run much faster than Ruby or Python due to their purely interpreted nature. The syntax and semantics of the language are fairly straightforward and the implementation is a devious but relatively small 2500 lines of Java."
<sep/>external DSLs is that it's hard to write a parser. Indeed one of the justifications for using XML as the carrier syntax for an external DSL is that "you
ANTLR, ANother Tool for Language Recognition, is a language tool that provides a framework for constructing recognizers, interpreters, compilers, and translators from grammatical descriptions containing actions in a variety of target languages.