100年後のコンピュータ科学

投稿者: 加藤 淳
投稿日:
カテゴリ: discussion, research, science

情報処理学会の学会誌「情報処理」に毎月楽しみにしている「先生、質問です!」というコーナーがあります。学生などの素朴な疑問に研究者複数名が真摯に答える内容で、情報処理に関わる質問はもちろんのこと、研究者のキャリアについての質問などもあり、論文からは見えない研究者像を浮き彫りにしてくれます。

そんなコーナーの 2019 年 1 月号に寄せられた質問は**「100 年後のコンピュータ科学はどんなことを研究しているの?」**でした。全回答は情報処理学会の Web ページに掲載されています。そうそうたるメンバーに混じって自分も以下のような回答を寄せておりまして、せっかくなので、この記事で少し補足しようと思います。

コンピュータ科学は,人の手で発明され継続的に改善されているコンピュータを対象とした学問なので,この質問は 100 年後のコンピュータ像から考える必要があります.

個人的に注目しているのが「仮想」に関する 2 つの技術です.まず仮想化技術について.かつては仮想化した計算資源の上でプログラムを動かすという発想でしたが,最近は逆に,プログラムやデータを用意すると適した実行環境がクラウド上に構築されます.次に,VR について.センサ,アクチュエータ,インタラクション技術の進歩で,人の五感情報を入力したり再現したりする研究が進んでいます.100 年後は,量子コンピュータ,分子コンピュータといった新たな計算資源や,ブレインマシンインタフェースといった対人インタフェースが高度に実用化されているかもしれません.

これらを併せて考えると,100 年後のコンピュータ科学では,人が開発したいことを思い浮かべれば,適した統合開発環境(計算資源と,人が五感で感じられる実世界の環境)がすぐ構築されるプログラミング体験(PX)に関する研究が行われていると思います.やりたいことができる環境を瞬時に作れる未来,すごくワクワクしませんか?

Vol.60 No.1(2019 年 1 月号)─ 情報処理学会

仮想化技術

「プログラムやデータを用意すると適した実行環境がクラウド上に構築され」ると書いたのですが、具体例として念頭にあったのは各社のクラウドサービスです。アプリケーションをデプロイすればあとは勝手にスケールさせてくれる機能は当たり前についていて、仮想的な計算資源をうまく分配したりルーティングしたりしてくれるところはすでに激しく実用されていますよね。

もう一歩進んで、手元で開発を進めている Web アプリケーションを(明示的に計算資源を確保する必要なく)よしなにデプロイして公開してくれる仕組みもあります。例えば、最近感心したのが ZEIT のnowです。HTML/CSS/JavaScript で書かれた静的 Web サイトだけでなく、Node.js, Go, Python などの言語で書いたコードが混在する Git リポジトリが、now コマンド一つで自動的に now.sh のサブドメインにデプロイされる様はなかなか感動的です。

以前は手作業で一台一台のサーバに OS や必要なパッケージを入れてポートを開けて…といったことが必要だったのが、どんどん自動化され、仮想化されてきました。目的に応じて必要な環境を構築し、必要なだけ使ってすぐに手放すということができるようになっています。この流れは今後も続くはずです。

どこまで仮想化が進むかという思考実験において、Amazon Snowmobileは面白い一例だと思います。超大量のデータを運ぶならネット越しでなくトラックのほうが速いということで、 物理的な運送タスクを隠ぺいし、データ転送を仮想化してしまったものです。

Virtual Reality (VR)

VR, Augmented Reality (AR)については回答に書いたとおり「 センサ,アクチュエータ,インタラクション技術の進歩で,人の五感情報を入力したり再現したりする研究が進んで」います。研究者仲間では、このままいけば生身の肉体をさらして出張するのが一番のセキュリティホールになる(例えば事件に巻き込まれるなどしてラップトップを盗まれたり肉体を損傷したりするリスクがある)といったような話をしています。

今後、実世界の五感情報を含むプログラムを開発するようになったら、どうやってデバッグするかが非常に重要になってきます。私はそうした実世界指向のプログラム開発支援についての研究で博士号を取っており、以来、「Programming with Examples」── つまりいろいろなデータをプログラマに例示していくことが重要だと考えて様々な手法を提案してきました。これからの開発環境には、抽象的なロジックだけでなく具体的なデータを分かりやすく提示し、編集できるようにすることが求められます。

面白いのは、五感が各々かなり異なった性質を持っていることです。例えば匂いのデータを手元で再現するのは難しいかもしれません。そこには、技術的な問題だけでなく、知覚されるまでのレイテンシの問題、個々人の匂いに対する感度の違いといった個人差の問題や、コストの問題などが山積しています。そうしたときに、複数のモーダルを掛け合わせて仮想的に情報を再現できるかもしれないクロスモーダルのアプローチはかなり有効だと思います。

例示を伴うプログラミング(Programming with Examples)

100 年後の(コンピュータ)科学のために

上記のような認識を踏まえると、プログラミング体験(Programming Experience; PX)の研究に従事する者として、未来の開発環境について想像が膨らみます。字数の限られた中で、「量子コンピュータ,分子コンピュータといった新たな計算資源や,ブレインマシンインタフェースといった対人インタフェース」を例に挙げ、「開発したいことを思い浮かべれば,適した統合開発環境(計算資源と,人が五感で感じられる実世界の環境)がすぐ構築される PX」が研究されているだろう、と結論付けました。

ちなみに、100 年後という質問への回答ですが、たとえ 50 年後について聞かれていても同様の回答になったと思います…。

研究のための研究

なお、「コンピュータ科学はどんなことを研究しているの?(What)」という質問だったので中身の話をしましたが、「どのように研究しているの?(How)」「誰が(何が)研究しているの?(Who)」という質問だったら、もっと違った回答になったはずです。暦本先生のこの問題提起が分かりやすいでしょう。

現時点ですでに、Google Scholarは、自分が登録した論文に応じて読むべき論文を推薦してくれます。日々大量に新しい論文が刊行されていますが、その中で自分の興味に沿った論文を漏れなく拾い上げるのはどんどん難しくなってきています。研究活動は、最早こうしたコンピュータ支援なしには成立しなくなってきています。

100 年後のコンピュータ科学に関する回答のなかで徳田先生が「Computational X」と表現しているように、今後あらゆる学問がコンピュータ科学との掛け合わせで革新されていくのは間違いないと思います。その際に、科学者、研究者がコンピュータに振り回されることなく自身の創造性を発揮できるように、私の専門である Human-Computer Interaction (HCI)分野でも、研究者のためのインタラクション研究を行っていくべきです。

HCI には古くから Creativity Support(創作支援)という研究トピックがあります。 100 年後の科学のためには、これを科学の方法に適用した「メタ科学」研究が必要だろうと思う今日この頃です。興味をもっていただけた方は、ぜひ以前書いたブログ記事「情報処理が科学を更新する」もご覧ください。