ProcessingとJavaの関係 – Expressive Programming

ProcessingとJavaの関係は少し面白いものです。
一見、Processingは一つのプログラミング言語のようですが、実はJavaによって書かれたソフトウェアなのです。
Processing上で書かれたコードは、一度Javaに翻訳され、最終的にはJavaアプレットやアプリケーションとしてコンパイルされます。

当然、それだったらなぜJavaを勉強しないのか?という疑問が出てくるでしょう。
しかし、ProcessingとJavaはその記述する量にまず違いがあります。例えば、下のコードを見比べてみて下さい。下のコードは、それぞれ同じグラフィックを表示するコードです。

Processing

Processingの場合は、かなり短いコードになります。

1
2
3
4
5
size(200, 200);
background(255);
 
// Draw a dot
point(100, 100);

Java

それに比べると、同じ結果でもJavaの場合はかなり長くなります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
 
public class GraphicsTest extends Applet{
 
  public void paint(Graphics g){
    g.setColor(Color.white);
    g.fillRect(0, 0, 200, 200);
 
    g.setColor(Color.black);
    g.drawLine(100, 100, 100, 100);
  }
}

以上の例を見ても分かる通り、Processingの方が簡単な記述になっていて、更に描画に関する記述だけを抜き取って記述しているような形になっています。つまり、プログラミング言語特有の手続き的なコード(ここでいえばpublic class….など)は極力省いて、よりグラフィックの表示に関連する記述のみを残しているわけです。
プログラミング初心者は、この手続き的なコードが多いと混乱し分からなくなる傾向にあります。最終的には全てのコードが書けることが目標ですが、まず導入の時期にはProcessingを使ってビジュアル面/表現面に特化した授業を行なうことによって学生の興味を持続させる効果があります。
まずこのカリキュラムで慣れたら、次にはJavaなどの他の言語を勉強してみるというステップを踏んでいきましょう。
“プログラミングは一日にしてならず”なのです。