2015/08/19 14:00
未来はプログラマーの仕事を奪うのか?――Viscuit開発者 原田ハカセ×サイボウズ 青野社長が語るプログラミング言語のこれから
プログラミング言語「Viscuit」開発者の原田康徳さんと、サイボウズのイクメン社長青野慶久さんによる対談の後編では、未来のプログラマー/プログラミングについて伺いました。今の子供たちが10年後、15年後にプログラマーになったとき、どのような舞台で活躍しているのでしょうか。そもそも自動化が進んでプログラマーの仕事はなくなっているのか、プログラミング言語はどんな進化を遂げるのか。未来を熱く語ります。
- 前編はこちらから
将来、プログラマーはいらなくなるどころか活躍の場が増える
――10年後、15年後、今の子供たちがプログラマーになったとき、どのような分野で活躍しているのでしょうか。
青野 これは難しい質問ですね。自動プログラミングが発達し、プログラマーはいらなくなるという話もあります。でも実際は、プログラマーの仕事は多様化、分散し、爆発的に増えていくと私は考えます。最近では車からテレビまで、ありとあらゆるものにコンピュータが組み込まれていますし、これらの処理を自動化したり制御したりするソフトウェアも開発すると考えると、むしろプログラマーを必要とする分野は拡大しており、仕事はいくらでも出てくるのではないでしょうか。大規模な開発プロジェクトもまだまだ出てくるでしょうし、個人プログラマーが活躍する場も増えると思います。
さらに、未来のプログラマーは、大きな組織やプログラマーがつながる生態系の中で仕事をしていると思います。プログラムの面白いところは、誰かが作ったコードを簡単に再利用できること。初めてそれを知ったときは衝撃でした。たとえば、コンピュータ雑誌にコードが掲載されたら、誰もがそれを再利用できますよね。コア部分のコードが公開されれば、それをさまざまなレイヤーで再利用する人が出てくるイメージです。
特に今はクラウドビジネスへのシフトが始まっていますが、同時にソフトウェアの作り方も変わってきました。これまでは1個の完成品を作っていたのですが、クラウドサービスでは個々の境目がなく、あらゆるプログラムが連携、共鳴しあって動いています。どこまでが自分のソフトウェアであると切り分けるのが難しい世界です。弊社のクラウドサービスでも、さまざまなオープンソースソフトウェアやWebサービスを利用しており、実感しています。
人間の脳の拡張ツールとしてのプログラミング言語はまだ開発されていない
――原田さんは10年後、15年後のプログラマーやプログラミング言語の姿はどうなっていると思いますか。
原田 私は、プログラミング言語には未知の可能性が大いにあると思います。たとえば、まだ開発されていないものの一つに、人間の脳の拡張ツールとしてのプログラミング言語があります。
青野 自分の考えを再現するための、自分用の言語を用意するということですか!
原田 そのためには、自分用の言語を作りやすい言語を開発しないといけないですね。
青野 それはとても興味深いですね。いつも思うんですが、プログラミング言語って全然集約されないですよね。アセンブラ言語が登場して、Basicが続き、両者のメリットを備えたC言語が登場、さらにC言語の弱点を補う形でObjective-Cが出て、C++、Java、Ruby、JavaScript、PHPなど、どんどん多様化しています。
原田 プログラミング言語を作ることは、コンピュータを作るのと一緒なんじゃないかと思うんです。音楽に例えると、新しい楽譜の書き方を発明するようなものです。音階のドとド#の間の音の書き方を考えるような感じです。でも、これって音楽の書き方を再定義することになって、いくら(新しい方式で)楽譜を作っても、(ゼロから書き換えたり再教育したりする必要があるため)演奏する人はなかなか出てこない。でも、コンピュータの場合は、どんなに新しい言語でもコンパイルすれば動いちゃうんですよ。
じゃあ、未来のプログラミング言語はどうなっているのかというと、私はより(自然)言語っぽいんじゃないかと思うんです。プログラミング言語のProlog[1]はその方向性を示すものの一つで、Viscuitも同じ流れにあります。いずれは、ユーザーインターフェイスとプログラミング言語の境界線もなくなってくると思います。
青野 昔はLOGO[2]やHyperCard[3]がありましたね。あのような言語が登場するということですか。
論理型言語と呼ばれるプログラミング言語。論理学を基礎にしている。1972年ごろに、フランスのアラン・カルメラウアーとフィリップ・ルーセルによって開発された。
子どもたちの思考能力の訓練を目的に開発された言語。1967年、ダニエル・G・ボブロウ、ワリー・ファーゼイグ、シーモア・パパート、シンシア・ソロモンによって開発された。タートルと呼ばれるカーソルを操作しながら絵を描く「タートル・グラフィックス」で有名。
アラン・ケイもLOGOに心酔し、彼の開発したSmalltalkはLOGOの影響を強く受けている。オブジェクト指向はタートル・グラフィックスに起源を持つと言われている。
to square repeat 4 [forward 50 right 90] end
ボタンやテキスト、グラフィックを書きこめる「カード」を他のカードとつなげる、ハイパーテキストの概念を実現したプログラミング言語。1987年にアップルコンピュータ(当時)のビル・アトキンソンが開発した。HyperTalkという言語でプログラムを記述する。
上記の図において、開いた状態のドアをクリックし、閉じた状態のドアにしたいという場合には、ドアが閉じたビジュアルのカード「Closed Door」を用意し、プログラムは以下のようになる。
原田 そうですね。たとえばViscuitでは、変数を定義するのではなく、実例を2つ与えて動かすんです。通常は「y=x2」をコンピュータに計算させたいときは数式を入れますよね。Viscuitの場合、1なら2、2なら4、3なら9という実例を与えるだけで、中間どころの2.5も何となく計算できてしまいます。
これは、Programming by Example(事例によるプログラミング)という研究の流れを汲んでいて、同研究ではソースコードを出力することが目的なのですが、Viscuitはそのまま実行しちゃうんです。
青野 なるほど。経営者も同じで、頭の中でケーススタディとマッチングさせながら意思決定を行っているんですよ。たとえば、製品をパッケージからクラウドに切り替える場合、それはメモリ事業をCPUリソースに置き換えるようなもので、関連はあるけど延長にはない。その変換をどう実施するか考えるとき、事例で考えるんですよ。
原田 抽象度を1つ上げて考えるということですね。
青野 はい。その意味で、プログラミングがその方向に進んでくれるのは嬉しいです。Viscuitで、そうした意思決定を支援してくれるプログラムを作れるようになるかもしれないってことですよね!
無から有を生み出すにはどうすればいいか知りたくて、美大に通った
――未来のプログラマーはどんな働き方をしていると思いますか?
青野 私としては、作りたいものを作ってほしいです。資本主義の世界では、作りたくなくても儲けるためにアルゴリズム変えさせられたりして、せっかくのスキルが無駄になってしまうことも多いです。
原田 大学はやりたいことを見つける授業がなくて、お金持ちにとって都合のいい技術を育てる機関になり下がっているのも問題ですよね。
青野 本当に、そのとおりです。
原田 何かを見つける、無から何かを生み出すにはどうすればいいのか。それを知りたくて、研究員時代に美術大学に通いました。そこで受けた講義で印象的だったのは、芭蕉の句「閑さや岩にしみ入る蝉の声」から発想するものを粘土で表現しろという課題でした。
青野 これまた答えのない!
原田 ある人は蝉を作り、ある人は蝉の声を形にしていました。私はというと、課題提出の前日である水曜午前から石膏で固める作業を始めればいいことに気付き、粘土工作は30分で完成させられることから、(課題を与えられた)月曜の午後から水曜の午前まで、作っては壊すをひたすら繰り返しました。すると、さっきの形よりもこっちの方がいいという何かが湧いてきたんですよね。関数の最適値を求めるような。こうして、形を生み出すことができました。
今は、コンピュータで何かを作るとそれだけで新しいと評価されますが、いずれはすべて出尽くして、みんな同じようなプログラムしか書けなくなる時代が来ると思います。そうなったとき、ゼロから何かを生み出すために、壊しては作りをひたすら繰り返すことをするんじゃないかなと思うんです。
青野 それは本当に革新的でクリエイティブなものを生み出す力が求められるということですね。プログラミングは基本原価がかからないから、作っては捨てがいくらでも繰り返せるので、(そうした新しい何かを生み出すのに)最適かもしれませんね。
未来はエンドユーザーが自分でプログラムを書く時代へ加速する
――最後に、今後プログラムやプログラミング言語はどうなっていくでしょうか。
青野 今、物理的なモノとプログラムが一体化した製品がどんどん増えています。その中で、これまでは形や歯車がモノの形を規定していましたが、今後はプログラムがモノの性質を規定していくのではないかと思うんです。
Apple Watchは、まさにそれを感じさせますよね。インストールするプログラムによってモノが規定される、良い例だと思います。
原田 そのApple Watchでプログラムを書ける世界が来ると、私は考えています。それも、コードを書くのではなく、2つの操作を記録して、1回目の操作を実行したら、あとは自動実行されるような感じです。
青野 本当の意味でエンドユーザーコンピューティングが広がったとき、爆発的なイノベーションが起きるということですね。
原田 今のように、作る人と使う人が分かれていると、そうした爆発は起きないのですが、プログラミングをエンドユーザー側まで持ってくれば可能性あります。そこまでいって、初めてコンピュータで革命が起きるんです。今はレトルト食品を食べているだけの状態で、美味しいレトルトを作る人を神と拝んでいるんです。こうやれば作れるんだ、こうすれば味が変わるんだというのが(末端まで)伝わっていないんです。
青野 パッケージ化されているものを食べているだけということですね。(プログラミングする人の)すそ野が広がるというのは、面白いですね。
たとえば、電子ブックって数冊を1冊にまとめたり、読みたい順番を入れ替えたりなどの自由度ってないですよね。音楽では、好きな曲を好きなようにまとめられるのに、なんで電子ブックはパッケージ化されたものを崩せず、いいなりにならないといけないのかと常日頃思っていたんです。
原田 今もiPhoneアプリを自由に作れるようになりましたが、今後はエンドユーザーが自分でプログラムを書ける方向へとさらに加速するのかなと思います。ただし、その前にちゃんとコンピュータサイエンスを身に付けておいてほしいな。
――今の子どもたちが大人になった未来では、プログラマーは、無から有を生み出すアーティストのようなあり方が求められるのでは、と盛り上がりました。原田さんの描く未来は、普通の人もプログラミングをする世界。まさにプログラミングがこの世界を作っていると言えそうです。本日はお話ありがとうございました。
著:谷崎朋子
写真:小倉亜沙子