プログラム・プログラミングとは?
僕らは日々
意識しながら、あるいは無意識に
コンピュータを使っている
そしてコンピュータの中では
大きいのや小さいの
様々なプログラムが動いている
そのプログラムは人が書いたもので
プログラムはコンピュータにインストールされる
ここで疑問がわかないだろうか?
- プログラムは動く
- プログラムは書かれる
- プログラムは保存される
しかしてその実態は!?
答えは簡単で
プログラムは意味がいくつもある言葉なのだ
「動くプログラム」は
「プロセス」とか「スレッド」という「動作の単位」ことで
「書かれるプログラム」は
「ソースコード」という「データ(テキストデータ)」のことで
「保存されるプログラム」は
「実行ファイル」という「データ(バイナリデータ)」のことだ
(メモリ上のデータはなんと呼ぶか不明)
また「プログラムする」といった行為をいう場合は
「ソースコードを書く」「コーディング」と言ったりする
この行為を指して「プログラミング」と言ったりもするけど
実際の「プログラミング」はコーディング以外のこともする
プログラミングの流れ
- プログラム(ソースコード)を書く・修正する
- プログラム(ソースコード)を実行ファイルにする(しなくてもいい時もある※・実行ファイルにできない時もある※)
- プログラム(プロセス)を実行する(実行できないこともある※)
- メモリにプログラム(実行ファイル・ソースコード)の内容が読み込まれ、それに基づきコンピュータが処理を行う
- プログラム(プロセス)が終了する
- 結果に不満があれば1に戻りプログラム(ソースコード)を修正する
※の部分は後日書く予定
1は「コーディング」とも呼ばれ、人がする行為だ(今のところは)
2はソフトウェアが自動でやるのだが
最初に人が「やれ」と命令だけする必要がある
3は人の場合もあるし別のプログラム(プロセス)がすることもある
4はコンピュータがする
5の操作は
処理の内容によって自動で終了したり
人の手で終了させたり
別のプログラム(プロセス)が終了させたりする
3~5まではプログラミング以外での普通のコンピュータの使われ方だ
これは
3「実行」または「起動」
4「処理」
5「終了」
と言われる
つまり1と2と6がプログラミング特有の行為となる
1「コーディング」
2「コンパイル」「ビルド」
6の名前はない
だが6を行わなければプログラミングとは言えないと思う
名前をつけるとすれば「リトライ(再挑戦)」だろうか?
下でこれらの用語を使いつつおさらいしてみる
用語を使ったプログラミングの流れ
- (人が)「コーディング」
- (人が命令する)→(ソフトウェアが)「コンパイル」
- (人が・別のプロセスが)「起動」または「実行」
- (コンピュータが)「処理」
- (自動・人が・別のプロセスが)「終了」
- 「リトライ(再挑戦)」
6「リトライ(再挑戦)」の必要がないと感じた時
プログラムは完成しプログラミングは終了する
つまり自分の作り出したプログラムに不満がある限り
真の意味でのプログラミングは続いていくのだ
不満が残りつつもリトライ(再挑戦)しない場合は
妥協的中断と言えるだろう
世に溢れるプログラムのほとんどが
この妥協的中断の産物なのだと思う
しかし妥協的中断であるが故に
プログラムは進化を続け
僕らはその恩恵に預かることができる
妥協的中断を恐れず
プログラムを書き続けることが
プログラミングなのだと思う