このサイトは、2011年6月まで http://wiredvision.jp/ で公開されていたWIRED VISIONのコンテンツをアーカイブとして公開しているサイトです。

増井俊之の「界面潮流」

「界面」=「インタフェース」。ユーザインタフェース研究の第一人者が、ユビキタス社会やインターフェース技術の動向を読み解く。

第15回 誰でもプログラミング

2007年12月 9日

黎明期のパソコンにはBASICインタプリタが標準搭載されていたため、画面に絵を描いたりして楽しむ日曜プログラマが大量に出現したものですが、最近は計算機が高度化したのと同時にプログラミングの敷居まで高くなってしまい、自分でプログラムを作って楽しむ人が昔に比べてかえって減ってしまいました。

すぐれたソフトウェアが大量に世の中に出回っているため、わざわざ自分で何か作ってみようという気にならないのもプログラミングが流行らない理由のひとつかもしれません。プロが作る料理の1/10のクオリティの料理を自分で作ることは可能かもしれませんが、市販ソフトの1/10のクオリティのソフトウェアを自作することはほとんど不可能ですから、自分でソフトウェアを作ってみようという気持ちになりにくいでしょう。

また最近は、自分で何かを作ることは流行らないようで、楽器を演奏したりコンサートに行ったりするのは下流の人間だと断言してるがあったりするぐらいですから、プログラミングは下等な仕事だと思われているのかもしれません。

また、普通のパソコンでは、ディスプレイ/キーボード/マウス以外の入出力装置を利用できませんから、気のきいた新しい遊び方を発見することは容易ではありません。既存のプログラムをダウンロードすれば充分なことがほとんどで、わざわざ自分で作って実験しようという気持ちにはならないでしょう。

■事情の変化

ところがこのような状況は最近になって変わりつつあります。まず、最近のWebブラウザにはJavaScriptが標準装備されていますから、特に開発環境をインストールしなくてもちょっとしたプログラミングを簡単に試してみることが可能になりましたし、MITで開発されているProcessingのようなシステムを利用すれば「line(10,10,100,100);」のようなプログラムを入力して「再生ボタン」を押すだけで、画面上にウィンドウが表示されて直線が描画することができます。このようなシステムは昔のBASIC並に手軽に使えるうえに、最新のプログラミング技術やWeb技術も使うことができます。

6d160b6bae7e47e66aece848905be09b.png

また、プログラムから手軽に使えるセンサやアクチュエータが手に入るようになってきたため、ディスプレイやキーボード以外のものをコントロールすることができるようになってきました。カルガリ大学で開発されたPhidgetsやIAMASで開発されたGAINERのようなUSB接続のセンサ/アクチュエータを利用すると、特別なハードウェアを製作することなく、実世界の情報を取得したり実世界のものを動かしたりすることができます。例えば、Phidgetシリーズのs体重計をパソコンのUSBポートに接続すれば、簡単なプログラミングで第7回で紹介した「気合いブックマークシステム」を作ることができます。

インターネットにあらゆる計算機が接続されているため世界中のセンサやアクチュエータを捜査するプログラムを作ることができるようになりました。世界中の誰もが世界中の装置を自由に操作する全世界プログラミングが人類史上はじめて可能になったことは歴史的な大事件だと言えるかもしれません。

■全世界プログラミング

実世界中の様々なセンサを利用したプログラミングは実は現実にいくらでも利用されています。たとえば「7時になったらベルが鳴るように目覚まし時計をセットする」という行動は、センサとアクチュエータを内蔵する目覚まし時計という装置のプログラミングですし、「建物に近付くとドアが開く」という自動的ドアは、人感センサとドア開閉機構を結びつけるハードワイヤドなプログラムで動いていると考えることもできます。全世界プログラミングができるようになれば、このような処理を含むあらゆる処理を自動化できるようになるでしょう。

世の中にかなり普及している以下のようなプログラミングは
全世界プログラミングの第一歩です。
これらのシステムでは条件とアクションがはっきり決まっているので
わかりやすいのが特徴です。

  • 自動ドア
  • 目覚まし時計
  • 炊飯の予約
  • 風呂の水はり

同じような装置を使う場合でも、条件を柔軟に指定できると
プログラミング感が強まります。

  • 人がいない部屋のテレビを消す
  • 人がいない部屋では目覚ましを鳴らさない
  • ビールがなくなると注文フォームを表示する
  • 気合いを入れるとブックマークされる
  • 寝ると照明が消える
  • 夜になると静かになる空気清浄機
  • 汚いと自動的に洗浄してくれるトイレ

また、別の場所の状態を条件として利用すると全世界感が強まります。

  • 遠方の家族の様子を知る
  • 水道が使われていないと通報する
  • 泥棒を検出
  • 波や風の様子を調べる

さらに組み合わせると、全世界プログラミングする感覚はさらに強まるでしょう。

  • ブログが炎上すると警報が鳴る
  • ニューヨークの天気でBGMを変化させる
  • 全世界ピタゴラマシン

自動ドアと全世界ピタゴラマシンではスケールがかなり違いますが、プログラムの構造は同じようなものです。計算機上で簡単に全世界のセンサやアクチュエータをプログラムできると世界を支配したような感覚を持てるかもしれません。

■全世界プログラミングのスタイル

世界をプログラミングするためには現状のようなプログラミングスタイルはあまり適切ではありません。全世界プログラミングの対象は全世界の事物ですから、現在のようにテキストでプログラミングするよりも、実際の事物を利用する方がわかりやすいでしょう。たとえばブログが炎上したことを表現するのに

if 炎上('増井のブログ') then
  油を注ぐ()
end

のようにテキストでプログラムを書くのは面白くありませんが、
炎上ぶりをビジュアルに表現するプログラムを利用したり、
第9回で紹介した
例示プログラミングを使って例示で炎上ぶりを表現できると良いかもしれません。


全世界の誰もが全世界のセンサやアクチュエータをプログラミングできる全世界プログラミング世界の面白さや恐ろしさはこれから明らかになってくることでしょう。

フィードを登録する

前の記事

次の記事

増井俊之の「界面潮流」

プロフィール

1959年生まれ。ユーザインタフェース研究。POBox、QuickML、本棚.orgなどのシステムを開発。ソニーコンピュータサイエンス研究所、産業技術総合研究所、Apple Inc.など勤務を経て現在慶應義塾大学教授。著書に『インターフェイスの街角』などがある。

過去の記事

月間アーカイブ