Unityでインディゲーム道!

プログラム、Unity初心者がインディゲーム制作を目指して日々思うことなどを書き綴ります。

初心者が考える"hello world!"の偉大さ

全てのプログラマが、1番最初に書くコードとされる、"Hello World!"
シンプルであると同時に、これからプログラミングを始めようとする人間にとっては退屈極まりない、つまらないプログラムです。しかし、その偉大さと、意義というものが初心者なりにわかってきたので、まとめてみます。

/*新天地にて限定的にネット環境が構築できたので、心機一転という想いも込めて、"Hello world!"について取り上げてみました。*/

正直、つまらない(と思うのが普通)

プログラミング入門者、つまり一切プログラミングを勉強したことがないという人にとっては、"Hello World!"というプログラムはつまらないし、何のためか?ということさえ分かりません。例えば、ゲームを作りたい!と思って勉強始めたのに、こんなゲームに役立ちそうもないプログラムなんて!!と思ってしまうのが普通です。ただでさえ、まだコードを読むことさえ叶わず、理解不能な文法を覚えなきゃいけない、という状況ですからね。自分も最初は怒りすら覚えた記憶があります。そもそも環境構築に手間取ってましたからね。

Hello World!の歴史

C言語創始者の1人であるデニス・リッチーが、その自著の中で最初のサンプルコードとして取り上げたのが"Hello World!"と画面に映し出すコードであり、そこから広まったとされます。あらゆる書籍、web上のあらゆるプログラミング講座においても、基本的に最初のコードはこれであるはずです。つまり、全てのプログラマが最初に打つコードはこれになる、ということです。

一体どこがすごいのか?

さて本題です。なぜHello world!プログラムは偉大なのか?
簡単なプログラムである。
C#の場合、次の様になります。
Console.WriteLine("Hello world!");
実際はコンソール画面が消えてしまわない様に、ReadKey()なりReadLine()を付け足さなきゃですが、しかしたった一行によるコードです。簡単といっても最初は、このコードですらままならないんですけどね。でも、まずはここから。

関数、メソッドを使用している。
C#の場合はWriteLineですが、各言語ごとの『文字列を画面に表示する機能を持つメソッド』を使用するのは共通です。そもそも初心者は関数、メソッドという概念自体をまだ理解できてないんですけどもね。数学の関数?みたいに困惑します。
とにかくライブラリ(この言葉も最初はよく分かりません。ライブラリについても記事書く予定)にあるメソッドを利用する、というタスクを達成した!ということになります。

そして、もっとも大事なのは、
コンピュータとコミュニケーションを成立させる
ということです。何もプログラミングされていないコンピュータは自分で何かを発する事はありませんが、自分が入力したHello world!という言葉を、コンピュータが受け止めて、画面に映した事で双方向のコミュニケーションが取れた、とする事ができます。我々人間とコンピュータは体の構造だけでなく、使っている言葉も違うわけです。そのギャップを埋めるということがプログラマに課せられる大きな仕事だと思うのですが、正にHello world!の言葉をのとおり、ここからプログラミングの世界が始まってくのだな、と今になって思うのです。

最後に

というわけで、プログラミングを始めて一年経とうとする初心者が
Hello world!の持つ偉大さ、というものはまとめてみました。上に書いた様に最初は、つまらない、しょうもない、プログラムだと思っていました。これがゲームを作るのに何の役に立つのか?と。しかし、それは浅はかな考えであり、今となっては、なんて素晴らしいプログラムなんだろう、と思います。

Hello world!の素晴らしさが理解出来たら、一年生を修了する、ということでいいですかね?二年生をこれから頑張りたいと思います。