ソフトウェアは、なぜバグるのか

“ソフトウェアには、バグと呼ばれるものがあります。途中で処理がとまったり、結果が違ったり、想定した結果と異なる動きをするものです。Windowsは、アップデートを称して、1か月に1回程度プログラムが修正されます。
コンピュータのOSとして普及しているLinuxのプログラムは、2100万行あると言われます。普通、A4の紙1枚で、40行程度なので、2100万行は、52万5千ページになります。52万ページの文書を、誤字脱字もなく、同じことを別の言葉で言っていることもなく、フォーマットも揃っていて、論理的にも一貫していて、大勢の人で分担して書く・・と考えると、もう人間の限界を超えているのではないかと思います。また、52万ページの文書をゼロから書くのではなく、すでに書いてあるものを直すとなると、別の大変さもでてきます。なんたって、52万ページの文書を理解しなきゃならない。どこを直すか発見しなきゃならない。これまた人間の限界を超えているのではないかと思います。だからバグが出るのは、当たり前のことと言えば、当たり前だと思います。この出て当たり前のバグをいかに少なくするか、なくすかが、ソフトウェア工学の目的の1つだと思います。なかなか無謀なことに挑む気もしますが、それでも、今後のデジタル社会にとっては、必要な学問なのではないかと思います。”
Python ロードマップ