Here’s a provocative thought from Mark-Jason Dominus on a rainy Friday afternoon:

Programming cannot be run on the convoy system, with the program code written to address the most ignorant, uneducated programmer. I think you have to assume that the next maintenance programmer will be competent…. If an incompetent programmer has trouble understanding your code, that is not your fault; it is their fault for being incompetent. You do not have to take special steps to make your code understandable even by incompetents, and you certainly should not do so at the expense of making it harder for competent programmers to read and understand, no, not to the tiniest degree.

— Mark-Jason Dominus, Creeping featurism and the ratchet effect

Please note that I don’t believe that any one particular programming language can solve this problem; see Does Your Programming Language Have Magic Powers? This is a people problem.