This article considers the two most popular starting points for code generation UML for program modelling, part of the OMG’s Model Driven Architecture (MDA) approach [2], and Domain-Specific Languages (DSLs), little languages that are created specifically to model some problem domain. It offesr advice on their usefulness for real-world development. We also ask whether UML and DSL are mutually exclusive or can be combined.