2006年06月14日
交響曲的プログラミング
1980年代後半、私が初めてプログラミングに触れた頃、
プログラミングとは人とコンピューターとの一対一の対話であった。
プログラマーにとっての最大の関心事は、
如何に美しくコンピューターという楽器を奏でるかにあり、
鍵盤を叩いてその音色を確かめるように、
キーボードを叩いてコンピューターに指示を送り、
その実行結果を確かめ、
速度を調整し、タイミングを調整し、
CPU やメモリの負荷を考え、
気遣い、対話をする相手は、
一台のコンピューターであった。
これはいわば独奏的プログラミングである。
プログラミングとは人とコンピューターとの一対一の対話であった。
プログラマーにとっての最大の関心事は、
如何に美しくコンピューターという楽器を奏でるかにあり、
鍵盤を叩いてその音色を確かめるように、
キーボードを叩いてコンピューターに指示を送り、
その実行結果を確かめ、
速度を調整し、タイミングを調整し、
CPU やメモリの負荷を考え、
気遣い、対話をする相手は、
一台のコンピューターであった。
これはいわば独奏的プログラミングである。
今日におけるプログラミングは、ソフトウェア的にも、ハードウェア的にも、
交響曲的プログラミングであると言えるだろう。
ソフトウェアについては、
ライブラリとは、その作者のコンピューターとの対話の静的な結晶であり、
サービスとは、その作者のコンピューターとの対話の動的な結晶であり、
そして今私たちが何かを作ろうとするとき、
ライブラリの恩恵を受け、サービスをマッシュアップし、
それらを支える場としてのプラットフォームやミドルウェアを活用する。
ハードウェアについては、
分散し、時として自律的に動作する複数台のマシンを、
いかに協調させオーケストレートし、
クライマックスのときにすべてのマシンがすべての力を使えるよう、
状況を整えられることが肝心である。
そしてその劇場の中での参加者の声や反応も、
今やアプリケーションやサービスを構成する大切な要素となっている。
交響曲的プログラミングの時代に生きる私たちプログラマーが
心に留めておくべきことは、次のようなことだろう。
1. 一人で奏でるのではなく、多くの人と楽器で奏でる
2. 「つくる」のではなく「つなぐ」
3. 排他的なこだわりを持たない
4. 異なる人や物に対して大らかに接する
5. 一つのソフトウェアにおける世界観の一貫性を保つ
トラックバックURL
