#015 プログラミングは好きですか?

1998/09/11

<前目次次>


 唐突だが、プログラミングの話を何回かに分けて行うことにする。
 まずいい加減な説明から。コンピュータに人間の意図する仕事をさせる命令群をプログラムといい、プログラムを作ることをプログラミングと言う。

 今でこそコンピュータは、ワープロや表計算やブラウザなど、目的を特化したアプリケーションソフトを利用するという形態が一般的となってきたが、昔はコンピュータにやらせたいことを、使う側が一からコンピュータに教え込むために自らプログラムを書いたものである。もちろん今でも、研究職や技術職の分野で働く人は、特定のデータの処理などの特殊な目的のために、自らプログラムを書くこともある。それに、貴方がこうして使っているコンピュータのアプリケーションソフトも、もともとは誰かがプログラミングしたものである。

 コンピュータというやつは最終的には0と1しか理解しない単純で融通の効かないやつであるから、コンピュータに命令を与えるプログラムは細かいところまでちゃんと指示してやらないと意図した動きをしてくれない。たとえば貴方が小学生の息子に500円硬貨を渡しながら「角のスーパーで3個400円のリンゴを買ってきて、なかったら1個150円のリンゴ3個でもいいから」といってお使いに行かせるところを、コンピュータの場合には「この500硬貨を持って、玄関を出て右に曲がり150メートル行った所にある交差点の左手前に位置するスーパーへ行き、その店内入口から向かって左側の野菜のコーナーの一番手前にある3個のリンゴがセットになった400円の商品を1セット取る。ただしそれが売切れなどの理由でそこになかった場合には、かわりに1つ150円のリンゴ3つを取る。いずれの場合でも取った商品を持ちスーパー出口付近のレジへ行って500円硬貨を担当者に渡し、釣り銭を受け取る。そして商品と釣り銭を持ってスーパーを出て、もと来た道を戻り帰宅し、商品と釣り銭を渡す。」といった塩梅に指示してやらねばならない。(無論コンピュータは実際にお使いなんぞできない。これはあくまでも喩えである。)何か一つを書き忘れたり、間違えて指示しただけで、コンピュータは自らそれを訂正することもできず、意図に外れた振る舞いをしてしまう。

 このようにプログラムにはどんな論理的なミスも許されないため、プログラミングの最中は特別な集中力を必要とする。しかし、その集中力の持続の末に目的のプログラムを完成させた暁には、何か自分がコンピュータのマスター(ご主人様)になったような感覚を味わうことができる(大抵の場合錯覚なのだが)。この感覚がなかなか快感になって、中にはプログラミングを趣味にしてしまう人もいる。しかしそのような集中力最大の状態で作ったプログラムは、適切に注釈を入れておかないと、1ヶ月もしたら自分にも理解できないということがしばしばある。そりゃそうだ。これを作った時の集中力最大のあなたは、今のあなたとは別人なのだから。

 ちなみにこの0と1しか理解できないコンピュータが直接理解できる言葉を機械語と言い、反対に人間が理解できる言葉を自然言語と言う。この両者には大きな隔たりがあるため、それらを橋渡しするために、通常プログラムは、自然言語に近い言葉で書いたものをあとで機械語に翻訳して最終的にコンピュータが理解できる形にする、という方式で作られる。このようにしてプログラムを作るために作られた人工的な言葉をプログラミング言語と言う。プログラミング言語は、その環境や目的や開発経緯により、実にさまざまな種類のものがあるのだが、その話は次回にしよう。

 なんだかこの話、しばらく終わりそうな気がしないぞ。


<前目次次>