プログラムは誰でも作ることができます。資格は要りませんし,誰かに許可を得る必要もありません。ところが,実際にプログラムを作っている人は多くないですし,プログラミングの世界に入門したとしても,そのまま離れてしまう人が珍しくありません。いったいなぜでしょう?

 その答えは,おそらく「あまりにコンピュータが“お馬鹿”だから」と言ってよいでしょう。実際にプログラミングを体験してみると,コンピュータという存在が,単純な処理しかできないわりに,あまりに融通のきかないものであることを実感できると思います。面倒な呪文を要求するのにもかかわらず,大したことはやってくれないのです。そのため,コンピュータにやらせたい作業があっても,簡単にプログラムを作成できないことが少なくありません。

 一方で,お馬鹿であるというのは,「自己主張をしない」ということも意味しています。つまり,プログラムを作る人間の個性や工夫をどのようにでも反映させることができるということです。だからこそ,センスの良いプログラマが作ったプログラムは,同じパソコン上で実行しても,そうでないプログラマが作ったプログラムよりも強力で快適ということが起こるのです。

 そうです。プログラミングとは,人間がコンピュータに奉仕する作業では断じてありません。人間がコンピュータを思い通りに使いこなして,新しい価値を創造していく行為なのです。

 では,価値あるプログラムはどのようにして作り出されるのでしょうか? ここでは,Part1の「準備時間ゼロ!今すぐ体験できるプログラミング」で紹介した「数当てゲーム」を題材にして,プログラムができるまでの流れを追いながら,JavaScriptプログラミングの詳細を見ていきましょう。たかがゲームと侮るのは禁物です。ユーザーが入力した内容を調べ,適切な応答を行うというのは,実は業務用のソフトが持つ「入力値のチェック」機能と全く同じなのです。

まず構想を練り,必要な機能を書き出す

 まず,どのようなプログラムをこれから作るのか,構想を書き出してみましょう。そんなことまで,いちいち書かなくても…と思うかもしれませんが,コンピュータは賢くないのでプログラマを迷子にさせることがよくあります。こういったメモ程度でも用意しておけば,迷子にならずに済みます。書き出した数当てゲームの構想は,図1のようになります。

図1●プログラムの構想を書き出す
図1●プログラムの構想を書き出す

 では,さっそくプログラムを書き始めよう…と思うかもしれませんが,もう少しお待ちください。このプログラムを作るために必要な機能を,なるべく具体的に書き出してみましょう(図2)。

図2●構想を実現するために必要な機能を書き出す
図2●構想を実現するために必要な機能を書き出す

 このようなメモを作成しておくと,要らない機能や,本来必要とされるものとは違う機能をうっかり作ってしまう,などと時間を無駄にせずに済みます。そんなバカなことはしないよ,と思うかもしれませんが,プログラムが少し複雑になってくると,珍しいことではなくなってくるのです。

動作しない画面を作る

 しかし,いくら役立つとはいえ,メモばかり書いていてはさすがに飽きてきます。次は,いよいよパソコンを使った作業に取りかかりましょう。

 最初にプログラムのどの部分から作るのかは,使用するプログラム言語,ツール,目的などによって変わってきます。JavaScriptによるWebアプリケーションであれば,まず画面を作ってその中にプログラムを埋め込んでいくと,スムーズに進むでしょう。先に画面を作ると完成像を想像しやすいので,この方法は初心者にも向いています。

 では,具体的な機能を書いたメモを見ながら,その機能をすべて満たす画面をHTMLで作成してみましょう。この段階では,お好みのHTML編集ツールなどを使ってもかまいません。プログラムの中身のことは何も考えず,「もしプログラムが完成していたらこんな画面が見えるはずだ…」というイメージを思い描きながら書きます。

 実際に書き上げたのが,図3の「モックアップ画面」*1です。誌面の都合でHTMLの詳細は説明しませんが,図3にHTMLと画面の対応を示しておきます。画面に表示される内容のほとんどが下半分にあるbody要素(<body>と</body>ではさまれている部分)に書かれていることがわかります。

図3●モックアップ画面。完成図を想像しながら外見だけを先に作る
図3●モックアップ画面。完成図を想像しながら外見だけを先に作る
[画像のクリックで拡大表示]

 この画面から,数字を入力したり,ボタンをクリックしたりできますが,クリックしても何も起こりません。その動作に対してリアクション(反応)を起こすためのプログラムが存在しないからです。それなら,そのプログラムを補ってやりましょう。

 ここからが,プログラミングの本番です。