The document discusses the design of domain-specific languages (DSLs) based on the author's experience building DSLs over 10 years. It describes how domain requirements shape language design across various influences like the domain structure, user skills, and tool capabilities. Key aspects of language design are identified like the metamodel, semantics, syntax, and technical infrastructure to support execution and tooling. Examples of domains that have benefited from DSLs are given like insurance underwriting and robotics. The document advocates that languages, editors, type systems and IDEs are important for every domain.