ソフトウェア業界の今後と、行うべきこと
――ソフトウェア業界については、今後技術的な面、社会的な面でどんな風に変わっていくと考えていますか?
たぶん一番大きいのは、ソフトウェアが高度に複雑になっていくということでしょう。
簡単な例をあげると、かつては if 文で済んだ話が、今ではベイズ理論を使ったり、インターネット全体を検索したりすることが必要になっています。
Microsoft Wordのスペルチェッカーは、ただ英単語のリストを持っていて、ユーザの入力に対し、語がその辞書の中にあるか見るだけでした。“Aoki”はあるか? “Spolsky”はあるか? “Shoeisha”は? という具合に。しかしGoogleのようにスペルチェックしようと思うなら、インターネット全体を検索して、どちらがより近いとか、どちらがより頻繁に現れるかを判断することになります。SpolskiよりもSpolskyの方がより一般的であるというように。スペルチェックは今や何テラバイトものデータを、非常に高速にチェックしなければならなくなりました。これはずっと複雑な話で、ソフトウェア開発にはずっと高度なスキルが要求されるようになっています。
――それに対して開発者としてはどのように対応すればいいのでしょう?
それはある部分、どれだけ野心的かという問題です。
たとえば、航空チケットやホテルを予約するWebサイトというのは、予約したときに確認のメールを送ってきます。みんなそれをOutlookとかGoogleカレンダーとかYahoo!カレンダーとか、あるいは何であれ自分のカレンダーソフトウェアに入力するわけですが、そういうのはあまり野心的とは言えません。ユーザにタイプすることを求めています。メールを自分で処理するように求めています。「土曜日午後7時の23便」みたいなことを、手でカレンダーに入れてやらなければなりません。
しかし最近現れた「TripIt.com」というサイトは、単に確認のメールを転送してやれば、あらゆる旅行代理店や航空会社やホテルのためのテンプレートを用意していて、メールを解析し、カレンダーに自動的に登録してくれます。だからユーザは手で入力する必要がありません。このようなサービスを作ることは誰にでもできたはずで、そんなに労力がかかるわけでもなく、ただ野心が足らなかったということです。確認のメールの文章は機械が読むことを前提としてはいませんが、機械により毎回同じフォーマットで生成されるため、パースすることが可能です。
ソフトウェアやコンピュータをもっと柔軟にするために、もう少し努力することです。そうしてもう少し野心的になることです。そんなに難しいことではありません。
――最後の質問ですが、現在特に興味を持っているテクノロジーやトレンドは何かありますか?
新しいものはびっくりするくらいたくさん出てきています。これ以上面白いものはないだろうなと思っても、思いもしないものが現れます。たとえ新しく面白いものが出てこなかったとしても、この業界は長く続ける人が少ないので、若い人がどんどん入ってきて、そうして5年前に別の人が失敗したアイデアを知らずに繰り返したりします。そういうのを見ていると退屈することがありません。
私はまた、プログラミング言語の進歩にも勇気づけられるように感じます。かつてプログラムをすべてC++のような言語で書いていた頃にあった非本質的複雑さの多くが、新世代の言語によって解消されています。言語がガベージコレクションを持つようになり、最新のPythonやRubyといった言語には関数プログラミング的な機能があって、少ない量のコードでプログラムを書くことができます。非本質的複雑さは減っていき、残るのは考えを表現する上で本当に必要な部分だけということになります。プログラミング言語の進歩にはとても興奮しますね。