Révènce writes that if a piece of code is not simple, it is wrong. He’s a bit emphatic, but in large part he’s correct. Programming languages that make complex things simple lead to code which has fewer errors. This is a major factor behind the high-level-language revolution: programmers are discovering that it doesn’t make sense to manage memory manually; that it doesn’t make sense to have to manually write out the components of a for loop; it doesn’t make sense to manually write the same boilerplate time after time. Each of these approaches leave the possibility of mistakes, and mistakes lead to bugs; a higher-level language abstracts away the niggling details and prevents bugs thereby.