Domain Specific Languages are very popular because they are built for a specific purpose and therefore are much easier to use than General Purpose Languages. Especially they allow an extension of the product to be developed by the customer. Just think, for example, on customizing a rules engine for each business case.

But therefore an easy UI is needed. In the following there are a few examples on using toolchains for dsl development.

Markus Völter is an expert for designing DSLs with several toolkits:
http://www.voelter.de/

FluentAPI – the Poor Men’s DSL
http://blog.jooq.org/2012/01/05/the-java-fluent-api-designer-crash-course/


Using groovy-eclipse EclipseIDE and extend it by DSL.Descriptors, offers a content assist for dynamic models, see.:Groovy Eclipse DSLDescriptors

a great insight into the many Groovy language features to develop DSLs is given by:

Xtext is a eclispe toolkit for building external DSLs. From a bnf grammar (* .xText) a model and script editor is generated. With Syntax high lightning, Content Assist and validation …

https://www.eclipse.org/Xtext/index.html