Anyone who has tried to write, or even to modify, computer code can attest to the fact that it is enormously complicated.
Single programs can require hundreds of thousands, sometimes millions of lines of computer code.
As the Y2K project demonstrated in 1999, just weeding out a single minor vulnerability can be an enormous problem. Which is to say that software programs are almost all vulnerable to bugs. Even open source code, which has been examined by many dozens of computer experts many times to weed out vulnerabilities, still turns up the occasional bug. It's a vulnerability that can turn an otherwise useful program against its owner, or be used to destroy information or shuttle it to another party. Computer programs are simply too complex and multi-functional now for there not to be occasional flaws.