expand_less
naka

コンピュータは“限界”に近づいている。新たなプログラマが求められる理由

  • 技術
2020/4/17

インテルの共同創業者であるゴードン・ムーア(Gordon Moore)は1960年代、1個のシリコンチップに収まるトランジスタの数が隔年で倍増していることに気がついた。トランジスタの数は処理力に結びつくので、演算能力が隔年で倍増しているということになる。

こうして生まれたムーアの法則は、コンピューター業界で働く大半の人にとって、そして40歳未満の人たちのある一定の割合において、根本的な確実さのようなものになった。ちょうど、機械工学者にとってのニュートンの運動法則のようなものだ。

しかし、ニュートンの法則とムーアの法則にはひとつ違いがある。ムーアの法則は、歴史上のある期間に観測された経験的な相関関係の主張にすぎず、適用の限界が近づいてきているのだ。2010年にはムーア本人が、この指数関数的な増加は、物理学の諸法則によって終わりを迎えると予測した

「トランジスタのサイズは、原子のサイズに近づいていることがわかるだろう。これは根本的な制限だが、その到達は2~3世代先になると見られる。とはいえそれは、われわれが見ることができるようになった限界だ。あと10年から20年で、われわれは根本的な限界に到達する」と、ムーアは語った。

そしてわれわれは現在、2020年にいる。「高まるニーズに対応できる十分に強力なコンピューターを、常に手に入れることができる」と信じることは、危機感の欠如に見えてきた。ただしこの事態は、業界の人々には何十年も前からわかっていたことなので、ハードウェアの演算能力を高める抜本的な方法は大量に研究されている。

「コア」と呼ばれる独立した処理ユニットをCPUに2つ以上もたせるマルチコア・アーキテクチャの採用も、シリコンチップが行き止まりに到達する恐ろしい日を先延ばしにする試みのひとつだ(アップルの新しい「Mac Pro」は、28コアの「Intel Xeon」プロセッサを搭載している)。もちろん、量子コンピューティングに向けた獅子奮迅の研究も盛んだ。原理的には、画期的な開発になる可能性がある。

ところでコンピューティングとは、ハードウェアとソフトウェアの組み合わせだ。ムーアの法則から予想される帰結のひとつに、プログラマーが怠惰になるというものがある。ソフトウェアのプログラミングはひとつの技能であり、上手さと下手さが存在する。プログラマーは、実行速度が上がるように、よりエレガントなコード、より無駄がないコードを書く。当初は、今と比べるとハードウェアが未発達だったため、職人の技能は非常に重要だった。

例えば、ビル・ゲイツはまだ少年だったころ、最初期のマイクロコンピューターである「TRS-80」向けにBASICのインタプリタを書いた。TRS-80は小さなROMしか搭載していなかったので、ゲイツはインタプリタをわずか16KBに収める必要があった。効率を高めて容量を節約するため、アセンブリ言語を使って書いた。ゲイツはそのプログラムのすべてを、何年も後に暗唱できたという伝説がある。

コンピューティングの黎明期には、こうした話がいくつもある。しかし、ムーアの法則が根を張るにしたがい、「節約」した無駄のないコードである必要性が徐々になくなり、プログラマーの動機が変化した。プログラミングは工業化し、「ソフトウェアエンジニアリング」になった。オペレーティングシステムや商用アプリケーションといった、不規則に拡大するソフトウェアエコシステムを構築するために、開発者の大きなチームが必要になった。

それにともない、プロジェクトマネージャーや幹部といった、関連する官僚的な組織が生まれた。大きくなったソフトウェアプロジェクトは、フレデリック・ブルックス(Fred Brooks)の有名な著作『人月の神話(The Mythical Man-Month)』(邦訳:星雲社)が印象的に描いているようなデスマーチに姿を変えていった。同書は1975年の出版以降、一度も絶版になっていない。それもそのはず。今でもまだ通用する話なのだ。この間、ソフトウェアは肥大化が進み、多くの場合、効率が悪くなった。

しかし、それで困ることはなかった。ブロートウェア(肥大化したソフトウェア)の問題も霞むような演算能力を、ハードウェアが常に実現していたからだ。誠実なプログラマーたちは、怒りを覚えることが少なくなかった。あるプログラマーはこう書いている。「こうした強力なコンピューターの帰結として、プログラマーが書くソフトウェアは、やはり肥大化が進んでいる。プログラマーはますます怠惰になる。ハードウェアが高速なために、アルゴリズムの無駄の排除も、コードの最適化も、やろうとしない。本当にどうかしている!」

そのとおりだ。ビル・ゲイツの下でマイクロソフトの最高技術責任者を務めたネイサン・ミアボルド(Nathan Myhrvold)は1997年の講演で、「ソフトウェアの4法則」を打ち出した。

1)ソフトウェアは気体に似ている(入れ物にいっぱいに広がる)。
2)ソフトウェアは、ムーアの法則によって制限されるまで大きくなる。
3)ソフトウェアが大きくなることで、ムーアの法則が実現する(新しいハードウェアが売れるのは、ソフトウェアに必要だから)。
4)ソフトウェアを制限するものは、人間の野望と期待だけ。

ミアボルドによるこの4法則からすると、ムーアの法則の支配が終わったとき、われわれの選択肢は、基本的に2つしかない。野望をほどほどにするか、それとも、無駄を省いた効率的なコードを書いていた時代に戻るか。つまり、後者しかないのだ。

筆者が読んでいるもの:John Naughton氏のレコメンド

最近の出来事
作家で研究者のダン・ワン(Dan Wang)が、2019年のテクノロジーに関するすばらしい評論をブログで書いている。新しいテクノロジーは中国が支配するという見通しについて、情報に基づいた客観的な見方を披露している。

アルゴリズムが否定している
ブログ「Los Angeles Review of Booksにある、機械学習に固有な保守性に関するコリイ・ドクトロウ(Cory Doctorow)の刺激的なエッセー。

巨大企業の凋落
「独占はいかに失われるか:マイクロソフトとIBMと反トラスト」は、企業の生き残りと変化に関する長期的視野のエッセー。ベネディクト・エバンス(Benedict Evans)がブログで公開している、

この記事は、The GuardianのJohn Naughtonが執筆し、NewsCredパブリッシャーネットワークを通じてライセンスされたものです。ライセンスに関するお問い合わせはlegal@newscred.comまでお願いいたします。

同カテゴリの新着記事