プログラムとは何?

 プログラムとは何でしょうか。運動会などでもプログラムが配られることがあります。これら2つ、どちらも手順を示している事にかわりありません。つまりプログラムは「手順を書いたもの(手順書)」です。コンピューターは、この手順書=プログラムに書かれているとおりに文句も言わずに処理を行います。
 Photoshop CSが動作しているコンピューターはフォンノイマン型という種類のものでメモリに書かれているデータ(数値)を1つずつ読み取って解釈し実行しているだけです。処理を大きくわけると、

・データを読む
・データを書く
・条件に応じて指定場所に移動する

 と、こんな程度しかありません。コンピューターは単純な命令の組み合わせで動いています。この命令ですが、printとかquitとかの文字ではなく16進数と呼ばれる数値で書かれています。例えば

21 00 D0
36 41
76

 などと意味不明な数値が並んでいるだけです。これでは人間には分かりません。分からなくはありませんが、ぱっと見て分かるようなものではありません。そこで、コンピューターの命令と1対1に対応したアセンブラが利用されていました。

LD HL,$D000
LD (HL),$41
HALT

 数値の羅列よりも分からなくはありませんが、これでも意味不明な上に「何をやろうとしているのか」がさっぱり分かりません。そこで、もっと人間に分かりやすいものを、という事でFORTRANやBASICがでてきます。

PRINT "A"

 これならば以前よりも分かりやすくなりました。何となく画面にAという文字を表示するというのが分かります。そして、BASICの普及後に大規模なプログラムが作成できる、移植性があるなど様々な利点を持って普及したのがC言語です。古くからある言語ですが、フロッピーディスクなどの制作環境が整ったので80年代後半急速に普及しました。現在でも多く使われています。

 しかし、C言語は何でもできるかわりに面倒な点がありました。というのはプログラムを作成し動作を確認するのに

・作る
・コンピューターが分かるデータに変換する(コンパイル)
・実行する

 という三段階が必要でした。実際にやってみると案外と手間がかかるものです。そこで、速度は遅くても構わないから作ってすぐに実行できるもの、ということでスクリプト言語やマクロ言語などが現れます。VBScript、JavaScriptもそうですし、CGIなどで使われているPerl、Rubyもそうです。これらはプログラムを作って、すぐに実行できるため開発効率が良いのです。そのかわり速度やできる事には限界があります。

 JavaScriptはPhotoshop CS3を駆動させることができます。動作速度は速くはありませんが、手作業でやるよりも早いですし、手作業では不可能に近いこともできてしまうこともあります。このような便利なものが標準で付いてくるわけですから、上手に使えば強力な戦力になるかもしれません。