Programming Languages as Mental Models

Programming languages (esp. DSLs) are handy tools for different problems.