Domain-Specific Languages in Practice