Jediman Blog

熊本に住む日曜プログラマーJedimanがプログラむ日々を綴ります

プログラム・プログラミングとは?

僕らは日々

意識しながら、あるいは無意識に

コンピュータを使っている

そしてコンピュータの中では

大きいのや小さいの

様々なプログラムが動いている

そのプログラムは人が書いたもので

プログラムはコンピュータにインストールされる

 

ここで疑問がわかないだろうか?

  • プログラムは動く
  • プログラムは書かれる
  • プログラムは保存される

しかしてその実態は!?

 

答えは簡単で

プログラムは意味がいくつもある言葉なのだ

 

「動くプログラム」は

「プロセス」とか「スレッド」という「動作の単位」ことで

「書かれるプログラム」は

ソースコード」という「データ(テキストデータ)」のことで

「保存されるプログラム」は

「実行ファイル」という「データ(バイナリデータ)」のことだ

(メモリ上のデータはなんと呼ぶか不明)

 

また「プログラムする」といった行為をいう場合は

ソースコードを書く」「コーディング」と言ったりする

 

この行為を指して「プログラミング」と言ったりもするけど

実際の「プログラミング」はコーディング以外のこともする

 

プログラミングの流れ

  1. プログラム(ソースコード)を書く・修正する
  2. プログラム(ソースコード)を実行ファイルにする(しなくてもいい時もある※・実行ファイルにできない時もある※)
  3. プログラム(プロセス)を実行する(実行できないこともある※)
  4. メモリにプログラム(実行ファイル・ソースコード)の内容が読み込まれ、それに基づきコンピュータが処理を行う
  5. プログラム(プロセス)が終了する
  6. 結果に不満があれば1に戻りプログラム(ソースコード)を修正する

※の部分は後日書く予定

 

1は「コーディング」とも呼ばれ、人がする行為だ(今のところは)

 

2はソフトウェアが自動でやるのだが

最初に人が「やれ」と命令だけする必要がある

 

3は人の場合もあるし別のプログラム(プロセス)がすることもある

 

4はコンピュータがする

 

5の操作は

処理の内容によって自動で終了したり

人の手で終了させたり

別のプログラム(プロセス)が終了させたりする

 

3~5まではプログラミング以外での普通のコンピュータの使われ方だ

これは

3「実行」または「起動」

4「処理」

5「終了」

と言われる

 

つまり1と2と6がプログラミング特有の行為となる

1「コーディング」

2「コンパイル」「ビルド」

6の名前はない

だが6を行わなければプログラミングとは言えないと思う

名前をつけるとすれば「リトライ(再挑戦)」だろうか?

 

下でこれらの用語を使いつつおさらいしてみる

 

用語を使ったプログラミングの流れ

  1. (人が)「コーディング」
  2. (人が命令する)→(ソフトウェアが)「コンパイル
  3. (人が・別のプロセスが)「起動」または「実行」
  4. (コンピュータが)「処理」
  5. (自動・人が・別のプロセスが)「終了」
  6. 「リトライ(再挑戦)」

 

6「リトライ(再挑戦)」の必要がないと感じた時

プログラムは完成しプログラミングは終了する

 

つまり自分の作り出したプログラムに不満がある限り

真の意味でのプログラミングは続いていくのだ

 

不満が残りつつもリトライ(再挑戦)しない場合は

妥協的中断と言えるだろう

 

世に溢れるプログラムのほとんどが

この妥協的中断の産物なのだと思う

 

しかし妥協的中断であるが故に

プログラムは進化を続け

僕らはその恩恵に預かることができる

 

妥協的中断を恐れず

プログラムを書き続けることが

プログラミングなのだと思う

Jediman Blog 開設 その理由

小学3年生のとき学校の図書館で

プログラミングを知った

 

建築士だった父が賞金で買ったワープロ

ローマ字入力を覚えていた僕は

叔父が持っていたポケコンや知り合いの家にあったMSX

マニュアルにあるサンプルゲームのプログラムを「入力」したことはあったが

中学校のパソコン室にあったFM-TOWNSのBASICで

初めて理解しながらプログラムを「書いた」

 

パソコンを持っていなかった僕は

家でノートに鉛筆でコードを書いて

学校に持って行って実行する

 

楳図かずおの「わたしは真悟」にも

そういうシーンがあったが

まさにあの主人公の悟のように

プログラミングに夢中になった

 

大学2年生の冬にはじめてのパソコン

PowerMacG4を買ったが

これではプログラミングはそう簡単にできるものではなかった

インターネットも繋いでなかったし

そもそもOSXが出る前の話だ

XcodeどころかTerminalもない

WindowsはともかくMacに関してはとにかく情報がなかった

Code Warrior というソフトを数万出して買い入れてみたが

肝心のMacのマネージャの仕様がわからない

Apple Script? Hyper talk?

マニュアルはついてなかった

 

パーソナルコンピュータは

元々は趣味でプログラミングをする人々のものだ

 

自分でソフトを書き

自分で走らせ

仲間内で共有したりする

 

Classic時代のMacは趣味人のパソコンではあったが

趣味でプログラミングを始めるには

たくさんの情報が必要だった

 

情報は主に本で手にいれるしかなかったが

(これは今でもそうだと思うが)

僕が熊本の本屋で見つけたMac用のプログラミング本は

「続・進め!コードウォーリア」

 

今、趣味でプログラミングを始める人にとって

非常にいい時代だと思う

 

開発環境は無料で提供され

たくさんのリファレンスがWeb上にある

熊本の書店にもプログラミングの本がたくさん並び

写真に写るプログラマたちの傍にはMacBookProがあったりする

 

そして中学生の僕が使っていたBASICのようなProcessingがある

 

それでも始めようとするときつまづくことはある

 

リファレンスが英語だったり

アクセスした情報を理解するのに結構知識が必要だったり

 

質問サイトで質問するのはいい手段であるが

慣れた人たちは初心者に手厳しい

「丸投げ」「努力不足」「英語力は必須」

そんな言葉を浴びせる

 

趣味のプログラマはやっぱり肩身がせまい

 

そんな趣味でプログラムを書いてみたい人のために

僕がブログに公開する情報が少しでも役に立てばと思う