2017.12/08 プログラミング(3)
プログラミング言語として最初に学ぶのがC#、という方針に異論を唱える人は多いと思う。例えばVisualBASICのほうが簡単、という人がいるかもしれない。しかし、プログラミングについて未経験者ならばどちらでも同じである。
今のVisualBASICは、オブジェクト指向の概念が取り込まれており、プログラミングを行う時にC#と同様の考え方が求められる。これは、学ぶ立場から見れば、学びやすいBASICに「制約」ができたことになる。
そもそもプログラミング言語が多数開発されてきた背景は、使いやすいように、バグを少なくするように、など様々なニーズをすべて満たすことが難しいからだ。
そのなかで、プログラミングパラダイムは重要である。パラダイムは「枠組み」と言われたりするが、プログラミングのスタイルやバグ防止、可読性などプログラミングに使用する言語によってそれらが、学ぶ立場で制約を受ける。
この制約のおかげで学びやすい言語や使用しやすい言語、可読性のある言語などの特徴が出てくると思っている。例えば、比較的制約の少ない構造化言語「C」は、初期のBASICの様に学びやすい反面、バグが入り込みやすい。バグがはいることを前提に、バグ取りに便利なルーチンをプログラムの中に書き込む必要がある。
制約が少ないので「C」でオブジェクト指向プログラミングを行うことも可能である。「C++」には、かつて「C」のプログラムへコンパイルした後、さらにそのプログラムをコンパイルする、といった手順の処理系も存在した。
コンピューターはプログラムが無ければ動かないことはよく知られている。プログラムが無いように思われる人工知能も、実はプログラムで動いている。さらに人工知能が学習するために、先生となるデータも必要だ。
この人工知能のプログラムは、映画「マトリックス」で表現されたエージェント指向のパラダイムだそうだ。このエージェント指向については当方も「逆向きの推論のパラダイム」と書かれた映画のパンフレットで学んだ程度であり、詳しく説明できない。
人工知能などの高度なプログラムでなくて、計算したり、シミュレーションしたり、あるいは独自のゲームを作るときのプログラムでは、オブジェクト指向のパラダイムを知っておけば十分である。
オブジェクト指向を理解できれば、C#もVisualBASICも同程度の難易度の言語となる。次回からオブジェクト指向について説明してゆく。
pagetop