Martin Fowler's latest article is on "language workbenches", which is a term he defines as tools for doing "language oriented programming", which he defines as programming using domain specific "little languages" (DSLs).
He makes the distinction between "external" DSLs that are written in a separate language, and "internal" DSLs that use the main language itself to write the DSL.
I found this pretty interesting because one of my goals with Suneido was to support internal DSLs, although I didn't call them that. For example, rather than use external XML files for plugins like Eclipse, Suneido uses internal object literals. Similarly, GUI layouts in Suneido are also written as nested object literals.
I've thought about taking this a step further and allowing custom editors for internal DSLs. For example, a visual editor for GUI layouts that would simply be another way to edit the code. This is the kind of thing the article describes as part of a "language workbench".
Now if only I had unlimited time to work on this stuff ...