Ruby Sig: How To Design A Domain Specific Language
Google Tech Talks October 5, 2006 David Pollak has been developing commercial software for 28 years. He founded Athena Design and wrote Mesa, the first real-time spreadsheet. David wrote Integer, the first online, collaborative spreadsheet. Since 2000, David has been developing domain specific languages for security and general web development. ABSTRACT David will describe a framework for developing DSLs which includes: * Identifying the constituents in a development project; * Determining the costs and benefits of a DSL for a particular constituency vs. hand-coding functionality for that constituency based on interviews and specs; * Identifying the 'thought leader' in a given constituency and interviewing him or her to determine the semantics of the domain; * Determining syntax of the DSL; * Mocking up the DSL and 'test driving' it with the thought leader; * Finding appropriate integration points for the DSL into the application; * Defining the process by with the Domain Experts will update code in the DSL (e.g., they have a web page where they can change tax calculation rules vs. they make a change to particular Ruby files as part of a development/staging/production cycle.); and * Iterate over the semantics, syntax, and process to fully integrate Domain Experts into the development process.