Languages supporting OO style of program normally have rich support for a kind of type system and even generics. The type system is used in developing a particular software system to encode some of the domain knowledge mentioned above in which the application is targeting, using which the compiler can perform compile time checking on the conformance of the code to eliminate certain kind of errors. OO programming practice supported by a well-designed type system and generic has a lot of advantages in the view of software engineering, too much to be listed here. In addition to the ones mentioned in the “Databases” section, a short list will be like: e.g., it helps human to understand, maintain code and organizational intellectual knowledge and with the help of the compiler to eliminate errors, etc.. It in most cases is a burden for the computer to execute, like resolving concrete types and virtual methods. That is why most of higher level languages, like C++, are slower than its lower level correspondence, like C. In addition, for the same functionality set, executable and libraries produced by higher level languages is much larger than the ones produced by the lower level correspondences partly because type meta information needed by humans are in some way reproduced in the output binaries
This situation can be improved in our duality point of view and practices mentioned above. Here the code generators (scripts) and corresponding code generation meta-languages are both used to maintain, at least partially, the meta-information that otherwise will be encoded into the type system of the software. The information encoded into the code generators will never be explicitly output into the final binaries. When applied correctly, it will result in smaller executable footprint (for the same functionality set and information content), higher execution speed and a reduced possibility of random errors in encoding of domain knowledge in a repetitive or iterative development processes. In a non-open source system, it also provides a way for a developer to manage its intellectual properties.
Little public information on similar practices can be found so far. Perhaps we are the only that are doing so at present.