2011-05-28

プログラミング認可制の日は近い

高木浩光@自宅の日記 - ウイルス罪法案、バグ放置が提供罪に該当する事態は「ある」と法務省見解

政府は、バグ放置が罪せらるとの見解を発表した。また一歩、日本が後退した瞬間である。

そもそも、放置とは何を言うのか。大部分のソフトウェアのバグフィクス、特にセキュリティに関するバグというのは、バグ発見者の善意によってなりたっている。バグを発見したものが、ソフトウェアに対して責任をもつ会社または個人に、秘密のうちに連絡をとり、バグの内容を伝える。責任者は、秘密裏のうちにバグを直し、アップデートパッチを公開する。バグの具体的な内容が公開されるのは、パッチ公開後である。この過程を経ずしていきなりバグが公になることを、ゼロデイという。ゼロデイは、マルウェアが未知のバグを利用していたり、またバグ発見者が、何らかの理由によって(たいていは、無責任な責任者にあきれて)、いきなり公開したりすることで起こる。

バグの修正には、時間がかかる。バグ自体を治すのは、数行のコードの修正で済むかもしれない。しかし、修正が正しく動くかのテストや、パッチをユーザーに適用させるまでには、相当な時間がかかる。そのため、常にはそういう風にバグフィクスが行われるのだ。

このパッチを準備している間は、バグの具体的な内容について言及しないので、はたからみれば放置に見える。しかし、果たして放置なのだろうか。アップデートを用意する前に、バグの内容を公開するのは危険なのだ。

おそらく、この判断の根底にあるのは、まことに日本の公務員的発想なのだろう。つまり、「ソフトウェアは、いかにマヌケなユーザーによって操作されたとしても、決してユーザーの意図に反する挙動をしてはならない」という幻想を持っているのだ。これには先例がある。日本の警察はこの信念を持って両刃の刃物を禁止した。それ、プログラミングは魔法か。

このような人種が、パスワードを失念したために、暗号化ソフトウェアによって暗号化されたファイルを復号化できないと文句をつけるのである。

ことここに至れば、プログラミングが認可制になるのは、そう遠い話ではないだろう。プログラマーは国家試験を通って国家資格を手に入れなければ、プログラミングできなくなるのだ。また、ソフトウェアは、公開される前にかならず国の認可を必要とする。

国家試験の出題範囲は、CASLとCOBOLになるだろう。ソフトウェアの認可にあたっては、極めてリテラシーの低い公務員に対して、いかに我がソフトウェアは安全かということを、お題目のように唱え続けなければならない。時には、袖の下を通したり、公務員OBを雇用したりなどの便宜をはかることが必須となるだろう。

そのような未来において、我々プログラマーはお互いを同志と呼び合い、プログラミング作業はすべてテレスクリーンで監視され、二分間憎悪で偉大なる伝説のプログラマーを褒め称え、テレスクリーンは我が国のソフトウェアのバグ率が0%であることを誇らしげに報道するだろう。

およそ公務員のリテラシーは低い。私はかつて、公務員を目指すものが多く集まっているところで、「プログラミングとは何ぞや」という質問を受けた。私は、「MS WindowsやMS Office、あるいはゲームや携帯電話の画面に表示されているものに至るまで、すべてはソフトウェアによって制御されている。プログラミングとは、ソフトウェアを作るための作業である」と説明した。しかし、彼らは依然として、首を傾げるのである。

今や、車やバイクですらソフトウェアによって制御されているのに、何故彼らはプログラミングとは何かという根本的な概念すら理解できないのか。

文書をメールで送るために、Excelを方眼紙替わりに使い、ケータイのデジカメで画面の写真をとり、画像をメールに添付して送るは、それ公務員なり。

3 comments:

おかず said...

プログラミング認可制どころかプログラマー追放の日が近いのではないでしょうか。公務員は特権意識を持っています。しかし、日本のITの歴史を見て分かる通り、公務員はプログラマーに翻弄されてきました。だから、法務省はプログラマーを国内から排除したいのでしょう。

Anonymous said...

"そのような未来において、我々プログラマーはお互いを同志と呼び合い、プログラミング作業はすべてテレスクリーンで監視され、二分間憎悪で偉大なる伝説のプログラマーを褒め称え、テレスクリーンは我が国のソフトウェアのバグ率が0%であることを誇らしげに報道するだろう。"

公務員にとってプログラマーは下劣な人間です。Winneyの件や、日本におけるプログラマーの待遇を見て分かるでしょう。だから、そういうことを国民に知らしめる必要があります。

まず、罪人がプログラマーとして101号室に閉じ込めます。プログラマーが逃げられないようにプログラマーの脚を切断します。そうすることで、プログラマーを24時間働かせます。

もし、プログラマーがバグを起こしたら、残虐な方法で処刑します。その処刑方法には、肉片を少しずつ削ぎ落として長時間苦痛を与える方法と、内蔵を抉り八つ裂きにする方法があります。そして、処刑する様子を全国に放送して、プログラミングがいかに下劣な行為かを世間に知らしめます。

Anonymous said...

> 決してユーザーの意図に反する挙動をしてはならない
ロボット工学三原則を思い出した