ソフトウェアはバグを無くせるのか

この9月に相次いでリリースされた、Appleの一連のOS(iOS、iPadOS、macOSなど)で結構面倒なバグがたくさんあると言われています。

Apple製品の質の低下を主張する人も当然ながら多くいて、実際に不便を感じる者としては当然の印象ではあるのですが、じゃあ他のメーカー、ソフトウェア会社はどうなのかというとそれほど大きな差があるとも思えません。MicrosoftのWindows10では毎年2回の大型アップデートでは直後にたいてい結構大きめのバグが残っていて大変なことになります。AppleやMicrosoftクラスの企業であれば優秀なソフトウェアエンジニアはいくらでもいるはずですし、それでもなお、OSやソフトウェア上のバグを無くせないというのは、もはやソフトウェアの管理が人間で出来るレベルではなくなっているのかも知れません。

現在のソフトウェアは複雑かつ膨大なソースコードによって構築されています。新しい機能を追加するためのソースコードを追加するとバグが出ることは良くあります。そのチェックは当然ながらしているはずですが、あまりにソースコードが大規模になりすぎてチェックが追いついていないのでしょうか。

コードを自動的に解析して分かりやすくするツールは一般人でも買えるレベルで売られていますし、巨大IT企業であれば自社開発のツールも持っているでしょう。AIによるコーディングの自動化やチェックも進化しているはずですが、それでもまだまだ複雑化と巨大化するソースコードに追いついていないのかも知れません。

そもそもハードウェアを制御するところを含んでいるソフトウェアのコード制御は自動生成やテストの確認もそう簡単ではないでしょう。

「ハードウェア ソフト無ければ ただの箱」
とはよく言ったもので、バグが多いソフトウェアで制御されているハードウェアを利用するのはある意味拷問に近いものがありますが、ハードウェアが先にあってその後にソフトウェアがある以上、製品の完成過程において後追いになってしまうのではないかと素人ながらに想像します。

ハードウェアの進化とソフトウェアの進化のバランスが取れていないのかも、とも思ってしまいます。

2000年代半ばくらいのところでは、パソコン用CPUの開発が進む中で、クロック数増大のための微細化が進みすぎてリーク電流を制御しきれず発熱量が増加してこれ以上CPUは進化できないのではないか、というパソコン雑誌の記事を読んだ記憶があります。

結局、Intelはその状態に陥ったPentium4の次からはCore Duoシリーズなどで進化の方向を修正し、単一コアのクロック数工場ではなくコア数を増やす路線に進みました。今でもCore i7やi9などハイエンドCPUでのクロック数自体はPentium4のころと差は無い(もちろん処理能力は増えています)一方で、コア数は18コア36スレッドとかいう化け物みたいな並列処理能力を揃えています。

ハードウェアの進化が止まりそうになったところで別の考え方で回避してさらに進化を続けました。さて、ソフトウェアはこのような進化が出来るでしょうか。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA