ジェネラティヴ・アート ガイロン

プログラムとは何か?

投稿日:2019年5月22日 更新日:

 前回の記事(「ジェネラティヴ・アート」とは — あなたに新しい筆(あるいは風鈴)を与えよう)で私は、「自分の手を動かすことなく」、「プログラミングだけで絵を描いたり、たまには動画を創ったり、ということを30年以上やってきた。」と自慢したわけだが、そもそも「(自分の手を動かすことなく)プログラミングだけで絵を描く」とはどういうことなのだろうか?このことが理解できないままこれからの話を進めていくことは無意味である。私は最近では自分の職業を「ジェネラティヴ・アーティストです。」と名乗るようにしているが、以前は「私はプログラマーです。」と名乗っていた。少なくとも「ジェネラティヴ・アーティスト」よりかは「プログラマー」の方が一般社会での認知度は高いはずだが、それでも分野外の人にとっては「『プログラマー』ってよく聞くけど、どういうことをする仕事なのだろうか?」という疑問が起こっても仕方がない、と私は思う。このサイトで「0から学ぶプログラミング」と言っているのはそういう人を対象にしている。
 さて、言葉の定義を軽く(そして雑に)すると、「プログラミング」とは「プログラムを作る(書く)こと」である。「プログラマー」とは「プログラムを作る(書く)人のこと」である。ではその「プログラム」とは何なのか? あなたがパソコンやiPad、スマートフォンに向かって何らかのアプリを動かすとき、そのアプリは、プログラムによって動いている。プログラマーが「ここをクリックした場合はこういう動きをして。。。」というのをひとつひとつ書いている。 ユーザーがマウスの左ボタンを押しながらマウスを動かしたときは、そのとき選ばれている色と太さのペンでそのマウスの動きの通りに線を描く。色を選ぶアイコンがクリックされればカラーマップから色を選択できるようにして、そこで選ばれた色がペンの色として切り替わる、、、といった具合だ。 このとき、「ユーザーが色を選ぶ」とそれが現在のペンの色として設定され、「左ボタンを押しながらマウスを動かすと、現在の色のペンで線を描く」。このシナリオのことをプログラムという。あなたがそこであなたのイメージカラーのピンクを選ぶことまではプログラマーは予測できないので、「シナリオ」とは言っても、すべての動きのシナリオではなく、「ここで選ばれた色をペンの色とする」、「現在のペンの色で線を描く」というところまでのものだ。
 あなたが日々使っているアプリはすべてこのようなプログラムによってプログラマーが書いたシナリオ通りに動いている。もしそこに期待された通りの動きをしない場合、それを「バグ」などと呼ぶが、そのバグさえもプログラムされた通りに動いている結果なのである。つまり、コンピューターはプログラマーがプログラムしたとおりに忠実に動作している。それが期待された本来の動作とは異なる場合、それはプログラムに問題がある。中にはそのプログラムの土台となっているOSに問題がある場合もないわけではないが、プログラムにバグがある場合それはほとんどの場合においてプログラマーが間違っている。
 これからこのサイトでは、「プログラムって何?」という人を対象に0からプログラミングを学んでもらって、最終的には私のように自分の手を動かすことなく、プログラムによって絵を描く、というところを目指してもらうための手助けをしようと思っている。

【今回のまとめ】

  • プログラムとは、アプリの動作を書いたシナリオのことである。
  • プログラマーはアプリが動くようにシナリオをカタカタと書いている。
  • シナリオが間違っているせいで思うような動作をしないことを「バグ」という。 
  • プログラムをマスターすれば、自分の手を動かすことなく、プログラムによって絵を描くということができるようになる。

-ジェネラティヴ・アート ガイロン

執筆者:

関連記事

A Day In Asia 20190209

CG(コンピューターグラフィックス)の基礎 〜 2D編

あなたが普段なにげなく使っているPCでは、ウィンドウを開いたり閉じたり、お絵描きソフトで何かを描いてみたり、とにかく画面上には何らかの「描画」がされている。 これは広い意味での「CG(コンピューターグ …

A Day In Asia 20200319

CG(コンピューターグラフィックス)の基礎 〜 3D編

コンピューターの画面上に描画する際には、X-Y軸上の点の座標を指定することで、点、線、四角形、円などが描かれる、ということを前回説明した。 直線、四角形は二つの点の位置で一意に決定する。ひとつの点につ …

A Day In Asia 20190126

「ジェネラティヴ・アート」とは — あなたに新しい筆(あるいは風鈴)を与えよう

 だいたい何らかの新しいものごとを始めてみようと思って、初心者向けの本を開くと、「〇〇とは」という定義から入ることが多いが、たいていは読みとばすか、お堅い定義を読んでいるうちに眠くなってくるか、せっか …

A Day In Asia 20190209

アルゴリズムとは何か?

 もともとはコンピュータ用語だったものが、最近ではその他の分野でも使われることが多い。例えば”インプット”。「この件に関しては部長にもインプットしておいてください」などと言う。 …

A Day In Asia 20200324

CG(コンピューターグラフィックス)の基礎 〜 アニメーション編

 小学生のころ、退屈な授業中に教科書の端にパラパラ漫画を描いた覚えはないだろうか?少しずつ変化する絵を描く必要があるため、それほどリアルな絵を描くわけにもいかず、だいたいはハリガネ人間が動くものだった …

teshnakamura

ジェネラティヴ・アーティスト。プログラミング歴40年以上。(ただし、プログラム業界で「プログラミング歴」は何の意味もない。)


以下でteshnakamuraの作品が見れます。
  • Instagram
  • @teshnakamura
  • Amazon Kindle