Language harvesting is similar to CodeHarvesting except that the unit of harvest is an object language rather than a code module / package / library / whatever. After making a good deal of progress in implementing an application, you may realize that a large degree of difficult-to-remove code duplication has emerged or that using the native language to express a set of features is overly verbose, difficult to read, write, and maintain. These deficiencies may be best removed with metalinguistic abstraction. The technique of metalinguistic abstraction 'after the fact' could be described as 'language harvesting'. Language harvesting may happen among different existing applications and code bases.
While it would be nice to know what DSLs we need to develop up front to best express our programs, this knowledge is often initially out of reach. Therefore, consider language harvesting to minimize development times and increase maintainability.
-- BryanEdds
See CategoryReuse, CategoryAbstraction, CategoryMetaprogramming