Unityでインディゲームを作る!

Unityでのゲーム制作を目指し、それに関わる話題についてのブログ

For文の"For"って何だろう?という疑問。ある3つの言語を巡る小旅行。

 

何回繰り返しますか?

- How many times should I repeat for? -

 

そもそも論な話題です。同じような処理を何回も繰り返すのが得意なコンピュータにとって、プログラム上なくてはならないのがForループ文。でもこの"For"って何だろう?とずっと疑問に思ってました。で最近それを説明してくれているブログを見つけました!つまりは"A for loop statement repeats for a certain number of times."のforでした。原文のブログはこちら↓

英語なんでざっくりとした理解です、マイクロソフトの中の人のブログ。

while文はwhile(~の間、)なんでそのまんまではありますよね。

for文はfor a long time.とかのforであることはまぁなんとなくわかってはいましたが、やっと腑に落ちたと言うか、歴史的背景を知れましたね。多くの人にとってはあまり興味ない話かもしれませんが、ずっと気になっていたのでよかったです。

細かいところが気になるのが、僕の悪い癖!

 

上記ブログの要約

50年代後半に誕生した3つの言語FORTLAN, COBOL, ALGOLにはそれぞれループ機能文があり、ALGOLという言語においてはfor文が生み出された。それはその後の回数指定繰り返し文の座を確立した、ということです。

 

FORTLAN, COBOLはさすがに自分でも知っていましたが、ALGOLという言語は知りませんでした。ALGOrithmetic Languageからきており、アメリカとヨーロッパの科学者により作られた言語で、この中で現在のfor文の原型が生み出されました。ALGOLは知名度に関して他の2つの言語に比べたらそれほどではないけども、for文に限らずその後の全ての言語に決定的な影響を与えたようですね。

やっぱ何であれ歴史を知るというのは面白いなーと。現在へのいい意味でも悪い意味でも、影響というか因果関係が見えてくるので。

 

UnityはC#を使ってプログラミングしていますが、やっぱ楽なんですよね。まだまだ未熟ですけど。C言語とか軽く勉強しましたが、実際にCでプログラミングとか考えたくもないです。なぜC#が楽かと言えば、いろいろな積み重ねの結果であり、過去の反省点から改善されてきたからなんですよね。そういう意味では過去の偉人達への感謝とリスペクトは忘れずにいたいですね。

 

あとオブジェクト指向というものは、古い言語での問題点を解消するために生み出された考え方でもあるので、いきなりクラスについて教わるよりも、プログラミングの歴史的な経緯から学んだ方がその恩恵だったり、活用法が理解しやすいのでは?とも思いますね。最初は自分もクラスが何のためにあるか、よくわからないまま説明を読んでいたので。これはあまり良くないことだと思います。(あると便利だから"クラス"存在するのであり、なぜ便利なのか?という話です。)

 

歴史を学ぶということ

プログラミングだったり、コンピュータの歴史はここ60年ぐらいで異常なスピードで発展したものなんで、調べるとやはりかなり面白そうなんですよね。ただそれはそれでドツボに嵌ってしまいそうなので、ほどほどにしないといけないと思いますが。しかし、プログラミング言語は決して血の通っていないものなんかではなく、人の手によって作られてきたものなんだ、ということであり、それで作るもの、アプリ、ゲームにしろ、やはり人間味があるものを作っていくべきなんだろうと思います。

という作文チックな締めとさせていただきます。お後がよろしいようで。