The w3 Principles of Design is an interesting read. In particular, the Principle of Least Power is interesting. This principle doesn’t seem to get much attention these days in software design with DSLs being often embedded. That is “internal” rather than “external” (in Fowlers terminology). This makes the languages harder to analyse and therefore tools are harder to build.