If we assume that no security bugs are injected by malicious programmers, then security issues, like other issues, are errors in code introduced by programmers by mistake. This means that the complexity of a program deeply affect the number of mistakes. This also means that one very important goal is to make code as simple as possible, until it becomes absolutely and obviously correct. Complexity is perhaps the most important factor that controls both the creation and defeat of errors, includ...