デザインテクノロジーの最前線 - 桐山孝司

m.c.t.ホーム > エクスペリエンスマガジン > デザインテクノロジーの最前線 - 桐山孝司 > ビジュアルプログラミングの効用

2011.05.25ビジュアルプログラミングの効用

コンピュータの画面上で機能単位のブロックを接続して処理の流れを作るスタイルのプログラミングを、一般にビジュアルプログラミングと呼んでいる。ブロックの入出力を線でつないでいく作業は、ちょうど回路の配線をするような感じである。ビジュアルプログラミングは音声、映像、モニタリングなどのデータを扱うアプリケーションで多く活用されており、代表的なものにコンピュータ音楽のMaxや、計測制御のLabVIEWなどがある。他にもMaxの開発者のミラー・パケットがオープンソースとして始めたPure Data、優秀な映像処理ツールのQuartz Composerなどがあり、ビジネス分野でもデータマイニングツールの多くがビジュアルプログラミングを使っている。またビジュアルプログラミングは複数のプログラムのコーディネーションにも向いており、その方面ではOS XのAutomatorなどの自動処理ツールにも使われている。

ビジュアルプログラミング自体は新しい技術ではないが、ここ数年で改めて有用さが見直されている。その背景には、パソコンのモニタが大きくなり、ビジュアルプログラミングのレイアウトの自由さを十分活かせるようになったことがある。人間は空間的な配置を手がかりに記憶を呼び起こすことが得意なので、以前に作ったものを見て内容を思い出せることはビジュアルであることの大きなメリットである。テキストによるプログラミングに比べると細かい所に手が入れにくい場合があるが、実際にはビジュアルプログラミングでも個々のブロックの処理は従来の言語で書ける場合が多いので、テキストベースのプログラミングと補い合うことができる。

ビジュアルプログラミングについて、15年ほど前になるが、ジェット推進研究所(JPL)で行われた面白い観察がある。1995年当時、NASAが打ち上げた木星探査機ガリレオは宇宙空間でメインのアンテナが開かず、小型アンテナだけが頼りになっていた。アンテナの出力が弱いので通信エラーにならないようにデータの送信方法を変えなければならず、ガリレオに載せている計測プログラムを作り直す必要が生じた。そのプログラム改良のため、地上でガリレオの状態を再現して通信のシミュレーションをすることになった。このときJPL計測技術センターのBarothとHartsoughは、一つの開発グループにビジュアルプログラミング言語のLabVIEWを使わせ、ほぼ同じ開発を割り当てられたもう一つのグループにテキストベースのC言語を使わせた。つまりビジュアルとテキストの2種類の言語で開発する2つのチームができたわけである。

さて、3ヶ月の期間で予算も同じという条件で開発を進めたところ、LabVIEWのグループは3ヶ月よりもずっと前に目標を達成できた。これはビジュアルプログラミングを使ったことで、クライアントとプログラマのコミュニケーションが活発になったためだという。この場合のクライアントはNASAの科学者や技術者だが、彼らもソフトウエアは専門でないので、プログラミングについてはほとんど知らなかった。しかしビジュアルプログラミングのおかげで処理の流れを画面の上で読みとることができたので、プログラマと一緒に画面を見ながら、その場で改良をしていくことができた。普通はプログラマが作業しているモニタを他人がのぞき込んでもまったく分からないので、最初に仕様を決めると後はプログラマ単独の作業になる。これに対してビジュアルプログラミングを使ったことで、開発方法自体が自然に効率の良いラピッドプロトタイピングに変わったということである。

これから家電製品のコントロール、ビデオや写真などのメディアの管理、モバイル機器や自動車との連携など、データを扱ったり情報機器のコーディネーションをしたりすることが日常化するにつれて、これまでプログラミングと呼んでいた作業は非常に裾野の広いものになってくる。それにつれてビジュアルプログラミングの役割は大きくなると思われる。また今のビジュアルプログラミングよりもさらに進んで、データの流れをリアルタイムで視覚化するような手法が必要になるだろう。専門的な開発の場においても、JPLの例のようにビジュアルプログラミングは複数の人が一緒に考えるための重要なデザイン技術になるに違いない。今後、プログラミングという意味が幅広くなる中で、ビジュアルプログラミングの特性が活かされて行く様子に注目しておきたい。


0521用.jpg


Quartz Composerでのビジュアルプログラミング。左側がキーボードからの入力、中央が制御、右側が画面への映像出力という流れがビジュアルに表されている。

Baroth, E., Hartsough, C.: Visual Programming as a Means of Communication in the Measurement System Development Process, JPL Technical Report (1995)
trs-new.jpl.nasa.gov/dspace/bitstream/2014/30014/1/95-0504.pdf