エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン

世界が「ソフトウエア化」している今、プログラマーは複眼的思考を持て~未踏事業PM竹内郁雄氏に聞く

公開

 

「突出した若手人材の発掘・育成」をスローガンに活動を行う『未踏IT人材発掘・育成事業』(以下、未踏事業)。これまで、GunosyのCEO福島良典氏や「現代の魔法使い」として活躍するメディアアーティストの落合陽一氏をはじめ、数多くの人材を輩出してきた。

そんな未踏事業のプロジェクトマネージャーを務めるのが、東京大学名誉教授であり、Lispハッカーとしても知られる竹内郁雄氏。竹内氏は、未踏事業の立ち上げからかかわり、延べ1600人以上のクリエーターを見届けてきた同事業の生みの親である。

常にシフトを続けるテクノロジーを取り巻く環境。そんな中でエンジニアに求められるスキルや技術的トレンドは、どう変わってきているのか? 竹内氏に聞いた。

ライブラリはソフトウエアの「ゆるやかな革新」の証

―― 未踏事業は2000年にスタートしました。これまでの14年間で、エンジニアに必要なスキルは変わってきていると感じますか?

2000年ごろに比べると、明らかにWebサービス関係のスキルを重視する人が増えてきましたね。未踏事業が始まった時は、まだWebの黎明期でしたから、そういう人は少なかった。

―― Webサービスの開発では、プログラマーが必要とされる範囲も広がっているように感じます。例えば、UI/UX設計にもプログラマーが入るようになり、最近はアート系とテクノロジー系の人材の境目もなくなりつつあるようです。

アートとテクノロジーの融合は、最近よく言われていますよね。2000年ごろは、アート系の人間とプログラムを書く人間は、お互いのノウハウも言語体系も違うのでコミュニケーションがうまく取れなかった。だから、どうお互いの知識を結び付けるかということが課題でした。

しかし、次第にデザイン性に優れたWebサービスやUI/UXが重視されるようになり、アート系の人もプログラミングの知識が必要になってきた。逆もまた然りで、互いの知識がオーバーラップしてきていますね。1人でデザインもコーディングもやっちゃうという人は、増えてきているんじゃないでしょうか。

研究を続ける傍ら、メディアアーティストとして活躍する、落合陽一君なんてまさにそうですよね。アート、テクノロジー両方の知識やセンスを同等レベルで備えている。

メディアアーティストの落合陽一氏(写真は過去記事より)

―― オーバーラップのきっかけとなるような、エポックメイキングな出来事があったのでしょうか?

いや、明確なきっかけがあったわけではないですね。そもそも、ソフトウエアの歴史で分かりやすいエポックメイキングな何かがあったことってないんですよ。いつの間にか変わっていたことが多い。

例えば、今はあまり使われていませんが、1960年代に出てきた『Fortran』がそうです。日本の優秀な研究者たちが2年ほどかけてコンパイラを作ったのですが、いつの間にか学生が半年で作れる時代になっていた。でも、ある日突然大革新が起こったというわけではないんです。

じゃあ、どのように変化が起きているかというと、シンプルな話で、知識やノウハウの積み上げです。ライブラリに代表されるような技術的ノウハウの集積によって、学生が半年でコンパイラを作れるような変化が徐々に起きる。「文化」が気付かない間に形成されていくように、ソフトウエアの革新も知らぬ間に起きていることが多いのです(注:オブジェクト指向はプログラミングにコペルニクス的展開をもたらしましたが、これも長い積み上げの結果醸成された概念です)。

―― 知識やノウハウの積み重ねによって、アート系の人、広くは文系の人がプログラミングを修得するハードルは下がっているのでしょうか。

そうですね。例えば、アート系の人が「何かを光らせて作品を作りたい」と思った時の障壁は、昔に比べると格段に低くなってきています。プログラミングに取っ付きやすくなったのは確かです。

―― 他領域からの参入障壁が下がっている中で、未踏事業で求められる技術的スキルも変わってきているのでしょうか?

未踏事業のクリエータのプログラミングスキルは、先ほどの「学生が半年でコンパイラを作ってしまう」の例のように年々上がってきています。だから、昔だったら作れないはずのプロダクトが、あっという間に作れるようになっている。

とはいえ、提案書を読むと、アイデアはすごいけど、どう見てもそれを裏付ける技術力、実現可能性が低いと思う人が多いのも事実。いくら文系、理系の境目がなくなりつつあると言っても、旬なアイデアを思いついたらすぐに実現できる基礎力は必要です。

あらゆる業界が「ソフトウエア的アイデア」を欲している

プログラミングが求められる範囲が広がったことの影響について考察する竹内氏

―― 基礎力で言うと、プログラミングの義務教育化についての議論も出てきています。

ありますね。現に、プログラミング教育が実践され始めてはいます。ただし、義務教育と言いながら、「技術・家庭」の範疇に入っているんですよ。ミシンの使い方とか植物の育て方とかの延長線上にプログラミングが来ている。

こうした現状に対して、コンピュータ科学を専門にしている大学の先生の中には異議を唱える人もいます。プログラミングと文章を書くのは、スキルとしては大きく違わないんですよ。文法にしたがって論理的に正しいコードを書くことは、正しい作文の書き方とそう変わりはない。

プログラミングは数学や理科と並ぶ、今の言葉でいえば「情報」という学問の中の一種のスキル。数学で言えば、連立方程式を解くスキルを学ぶのと同じはずなんです。

―― SNSアカウントの乗っ取りやメーラーなどの情報機密の脆弱性など、セキュリティに対する問題が絶えません。プログラミングの基礎教育によって、一般的にITリテラシーが高まり、こうした問題は少なくなっていくのでしょうか?

うーん、どうでしょう、微妙ですね(笑)。というのも、すべての国民がプログラミングを熟知する必要があるかというと、必ずしもそうではないからです。車を例に取ると、50年くらい前の車は自分でプラグ交換ぐらいできないと、とてもじゃないけど運転できなかった。だから、エンジンの構造などをちゃんと知っていて、自分で直したりしていたんですね。

しかし、今では車の部品ってほとんどブラックボックスだから、エンジンまではいじらないでしょ。車を運転する人は、自分の命にかかわるような、大きい安全面のリスクをメーカーに任せていますよね。コアの安全性は委ねつつ、運転技術については自己責任、というのが現代の車との付き合い方。

それは、メーラーやSNSなどのサービスも同じです。セキュリティに関する堅牢性は制作側に委ねつつ、メールの使い方は自己責任ですから。だから、セキュリティ技術に関する知識があったとしても、実際日常的にそれが必要になることはほとんどないわけです。

―― なるほど。では、テクノロジーに対する世間の認知が変化する中で、竹内さんが注目しているトレンドは?

また車を例に出しますが、テスラの車のようなプロダクトが今後のトレンドになっていくでしょうね。

From Steve Jurvetson
テスラが提供している『モデルX』の内部。一見して「ソフトウエア化」していることが分かる

同じ未踏事業のプロジェクトマネージャーである夏野剛さんがテスラに試乗した時、「これはソフトウエアだ」と感じたらしいんです。

さらに夏野さんは「日本の自動車産業のトップマネージャーは、自動車=ハードウエアという考えを変えないといけない」とも話していた。

―― 日本の自動車産業も発想を転換しないと、生き残りが難しくなるかもしれませんね。

トヨタがこの前ハッカソンみたいなことをやってたんで、さすが!と思いました。自動車産業だけでなくて、ファッション業界とかテレビ業界とか、今はどこかしこでハッカソンが行われている。ハードウエアより、ソフトウエア的アイデアをみんな欲しがっているということでしょう。

“いいエンジニア”はコメントの書き方が違う

―― 最近、竹内さんが「ソフトウエア的アイデア」で目を引いたものはありますか?

未踏事業でスーパークリエータになった筑波大学の大野誠君が開発している、手近なモノがタッチセンサになるという技術はいいですね。コップでも何でも小さいキットを貼り付けてちょっとした機械学習をさせると、タッチ型のリモコンになってしまう。

仕組みは、タッチしたことによって超音波スピーカーとマイクの間で音響伝搬特性が変化することを学習させて、どこを触ったかを分別する。そして、何かしらのアプリと連携させると、コップを触る場所によって音楽の再生や停止になったり、違う音が鳴って楽器になったりということができるんです。

この技術は一見、ハードウエア的発想なんですけど、簡単な組合せ以外の新規のハードは開発してません。メインはソフトウエア的な作業でできることなんです。

それから、料理の写真を動画にするアイデアで採択された電気通信大学の崎山翔平君。例えば、Webサイトに表示されている鍋料理の写真の材料が揺れ出して、泡もブクブク、湯気が上がって「シズル感」を再現できるというアイデア。一般の画像加工ソフトを使うと6時間ほどかかった細工を、2~3分でできるようにしたわけです。

料理を美味しく見せるためにハードウエアで大がかりな装置を作るのではなく、ソフトウエアだけを使って美味しそうに見えるようにしています。ソフト的に何かをいじるだけで、あたかもハード的に鍋がぐつぐつ煮えているように見せることができるというわけです。

彼らが持っている、ハードウエアをソフトウエア化させてしまうアイデアは面白いですね。

―― 優れたソフトウエア的アイデアは、どのようにして手に入れることができるのでしょうか?

いろんな事象を一度デジタルの値として観測し、ソフトウエアで制御を加えればOKという今日的な発想を持つことですね。最も分かりやすい例は、3Dプリンタ。かつて、旋盤やフライス盤を使い分けて制御していた工程を、数値化したデータを用いてソフトウエアで制御できるようにした実例です。

―― エンジニアの発想の仕方も変わってきているのですね。

あくまで、技術的トレンドに即せばそうですね。でも、どれだけトレンドが変わったところで、エンジニアとして本質的に持っておかないといけない考え方は変わらないと思います。

それは何かと言うと、同じモノやコトを違う見方ができる複眼的思考ですね。この思考を持たないと、いいコードは書けないし、新しいアイデアも出てこないのです。

トレンドは移り変わっても、変わらない本質があると話す竹内氏

―― 具体的に教えて下さい。

例えば、「x=x+1」というコードのコメントに「xに1を足す」と書く人がいます。でも、そんなコメントはまったく無意味で、単一的なモノの考え方しかできていない証拠。「x=x+1」と書いた時点でプログラムの中では何らかの意味があるのに、「xに1を足す」と書いても、何も情報が増えてないわけですよ。

そうではなく、「味方の得点を増やす」とか「右に1マス移動する」とでも書けば、コメントとしての意味が出てくる。

下らない例でしたが、コメント1つ取っても、その人が複眼的思考を持っているかどうかが分かります。こうした思考を持てているかどうか、が優れたエンジニアへの第一歩。

自分に対して複眼的思考を持てるということは、自分をメタな視点で見ること、つまり自分を客観視できるということでもありますね。

複眼的思考を持てば、無味乾燥なソフトウエア生産体制の歯車の中に組み込まれて埋没してしまうことも防ぐことができるはず。

技術的トレンドに対応したスキルと、複眼的思考を持った人によって、日本の技術力を底上げしていってほしいですね。未踏事業は、そうした人材を募集していますし、いつでも大歓迎です。

―― 本日はありがとうございました!

取材・文/長瀬光弘(東京ピストル) 撮影/竹井俊晴