- - - -
FWIW, Category Theory provides a mathematical formalism for determining when your system is "as simple as possible, but no simpler".
- - - -
> “average programmers” have difficulty understanding complex languages
That's not pejorative IMO, that's practically tautological: If "average programmers" have difficulty understanding a language, isn't that an indicator that it might be too complex? Anyhow, trawling though e.g. Stackexchange provides adequate evidence, IMO. Or a thread about Haskell with all the people complaining about how hard it is to understand FP, etc.