目指せ!プログラミング世界一―大学対抗プログラミングコンテストICPCへの挑戦
実は以前から、こういう本があるといいんじゃ、と思ってたのが本書でした。この本の想定読者は高校生から情報系の学部生、といったところですが、私の知り合いでエンジニアとかではない人にも一読を強くおすすめします。
以前ネタでこんなツイートをしたんですが(http://twitter.com/jmuk/status/16057590356)、
そろそろプログラミングコンテストを題材にしたまんがか小説が書かれてもいいのかもしれない、などとふと思った。日本で優勝したところで世界各国の代表の強豪と戦うあたりは少年漫画向きだぞ。
3:43 PM Jun 13th via web
私の知り合いの大部分は「プログラミングコンテスト」というのがどういうものかを全く知らないか、まったく誤解していたみたいで、大変もどかしい気分を味わいました。確かに私も説明を省いたんだけど、なるほど世間的には「プログラミングコンテスト」というと、たとえば大昔の、ゲームをつくって応募するといったようなコンテストを想像するものなのか、などと逆にびっくりした次第。
そういうものではない、イマドキの若い学生や技術者がはまっているプログラミングコンテストっていうのは、もっと競技性の高いもので、たとえていえばロボコンとかのノリに近い。つーかロボコンは映画や小説になってるわけだから、それなら競技プログラミングなんてもっと向いてるんじゃないかなあ、ってのが↑のツイートの意図でした。いや実際、ICPCなんてチーム戦だしエンタメ向きだと思うんだけど、どうですかねー。
で、もしそうしたプログラミングコンテストのことをご存じないのなら、どうして私がそんなことを思ったのか気になるなら、この本を読んでみていただきたい。この本、後半はコンテストの実際の課題をあつかってるから読んでもわからない人も多いと思うけど、前半部分だけで「感じ」はつかめるんじゃないだろか。
こういうプログラミングコンテストのプログラミングっていうのは、仕事で書くようなプログラムとは違う。広範な知識と、それを応用する技量が求められる。もちろん、複雑な問題の説明をきちんと理解して、プログラムという形で表現するための才能も必要になる。本職のプログラマや有能なエンジニアだからできる、というものではなく、ある種の才能や訓練が必要になるものだ。ロボコンの技術と本物のロボット工学との関係に近いかも。要素要素は重複していたりするけど、基本的には違うものなわけで、だから「競技プログラミング」って言ったりする。
こういう競技プログラミングがいつごろ始まっていつごろから今の盛り上がりになったのか、というのはよくわからないけど、個人的な実感としてはちょうど2000年ぐらいから00年代を通じて盛り上がってきたという印象を持っている。実際、この種のプログラミングコンテストで最大規模のものかつ最古のものが大学生を対象としたICPCで、これは70年からあるらしいけど、97年代から参加学校数が拡大しているらしい。ほかに、ICFPのプログラミングコンテストが98年から、TopCoderが01年から、Google code jamが03年から、Microsoft Imagine cupが04年から。やっぱり00年代前半ぐらいから盛り上がってきていたものなので、それより上の年代にはあまりピンと来ないのかもね。
なお、高校生を対象にしたものだとSuperConが95年から、情報オリンピック(89-)も、日本は94年から96年の参加となっていて、前出のものより少し早いのは何か象徴的な気がする(なお、情報オリンピックには06年から参加を再開したようだ)。わたしもSuperConは(先輩にくっついて)出場したことがあるけど、それより年下の人たちがこういう文化に親しんでいったのかも? SuperConについてはスーパーコン甲子園―プログラミング大好き高校生たちの挑戦!
っていう本もあるみたい。これこないだふと見てたら高校生時代の弊社社員の写真があって吹いた。
The Lifecycle of Software Objects
これまで自分はテッド・チャンという作家は奇想天外なアイディアを素晴らしい手腕でまとめるタイプの作家だと思っていたし、そのように紹介されることが多いように思う。でもその作家的な資質は別なところにあるのかも知れない、と本書を読んで思った。
思えば、チャンの作品にはびっくりするようなアイディアが盛り込まれているものも多いが、同時にそうしたアイディアが何か非常に人間的なテーマと結びついている。たとえば「地獄とは神の不在なり」では、地獄と天国は実在していて(生前から誰の目にも見える)、たまに天使が台風か何かの天災のように降臨し、人々を死後の世界に送っていくという奇想天外な世界が描かれる。だが、ここで描かれるのは信仰のあり方だ。この作品の結末を共感できる日本人は少ないだろう。意味が分からないとすら思う。だが、不思議な感動というか、なんともいえない情動に揺り動かされる。チャンの作品では、登場人物に感情移入することはないが、その物語を通じてなんらかの普遍的な事物が描かれる。そこに不思議な感動がある。
本の紹介に入ろう。もと動物園の飼育員でコンピュータ関係で求職中のアナは、知人にある仕事を紹介される。それは、昨今流行りのバーチャル空間におけるデジタルペットの最新モデルを養育するという仕事だった。人間と対話するまでに成長できるデジタルペットを正しく育成する仕事についたアナはやりがいを感じていくが……。こんなふうな導入の物語の場合、昨今の英米SFの流行りだと、主人公のいる会社は成功につぐ成功を重ね、デジタルペットの知的能力が高まってシンギュラリティに行き着くのだが、「シンギュラリティに興味はない」と断言するチャンの物語はそんな方向へは向かわない。ペット会社のビジネスモデルやら、様々な競合製品やら、プラットフォームの問題やら、人々がデジタルペットにあきちゃって会社が倒産するといった問題まで。プラットフォームとなったバーチャル空間そのものも代替わりし、移植性やセキュリティといった様々な問題が発生、ペットオーナーのユーザグループは受難の時を迎えていく。本職がテクニカルライターだというチャンらしい、このようなリアリスティックな描写は本書のキモのひとつだ。
だが本書の主眼は、デジタルペットに対する倫理だと思う。デジタルペットとはなんなのか。人間が好きにコントロールできる玩具? 楽しいペット? それとも……? 人間はデジタルペットに対して何をする権利があるのか? 次第に知能が向上し、ややこしいことも考えられるようになったデジタルペットに対し、主人公たちは子を持つ親のような立場になっていくわけだが、そうすると親は子供をどこまでコントロールしていいのか?という疑問と読み替えることもできるだろう——ただし、相手がデジタルペットであるために、オーナーはどこまでもコントロールできるという大きなちがいがある。デジタルペットのパラメータは好きなようにいじることができる。嫌になったら停止させることもできるし、巻き戻して少し前からやり直すことだってできる。作中で印象的なシーンとして、二体のデジタルペットが喧嘩の末にオーナーのもとに行き、自分たちを巻き戻して欲しいとねだるところがある。巻き戻せば喧嘩の原因はなくなるから、もっといい関係を築くことができる。オーナーはそれを認めるべきなのだろうか?
こうした問題を描ききった末の、最後の台詞が胸を打つ。
ただ、簡単なテーマではないけれど、重苦しい感じではないのがいいところ。一つ一つのシチュエーションをねちっこく描くのではなく、様々なシチュエーションが描かれ、このテーマを変奏させていく。なによりデジタルペットの性格のせいもあってか、重苦しい状況であっても不思議と重くなりすぎない。
またおそらく、中編という長さのためにあまり登場人物の背景設定に深入りしないから、というのもあるだろう。チャンは日本や韓国では大変な人気になっている作家だが、アメリカではそこまで高い人気があるわけではないと聞く。その背景にもこういったところがあるのではないかと思っている。くだくだと説明を重ねない簡潔さを備えているために、感情移入がそこまで促進されない。だが、いつ、どこを舞台にした作品でも成立するような抽象さがあるからこそ普遍的な物事を描き出せるのだ。
—
ところで、そろそろ『あなたの人生の物語
』以降の作品も溜まってきたことだし、ここらで一冊本を出したらどうですか。