なんで"Hello, World!"なの?
もはや、エンジニアの登竜門、義務教育的な存在になっている"Hello, World!"の出力。使い方としては、標準出力のチュートリアルとして共通となっています。!マークを付けるかどうか、大文字小文字など、微妙な違いや種類はあるものの、なぜかみんな世界に挨拶をしていますよね。
大抵のプログラミング言語の入門書では、このプログラムを作ることを最初の例題としており、新しくプログラミング言語を習得する際に最初に作るのがこのプログラムです。
そのため、「世界一有名なプログラム」と呼ばれることもあります。
こんなこと疑問に持つ人も少ないと思いますが、講義や参考書などでも教わっていなくて、気になったので調べてみました。
Hello, World!の目的
以下、Wikipediaから一部抜粋。
ハロー・ワールドは伝統的にプログラミング言語をプログラム初心者に紹介するために使われる。また、ハロー・ワールドはプログラミング言語が正しくインストールされていること、およびプログラミング言語の使用方法を理解するための健全性テストにも使用される。
上記にある通り、プログラミングの練習だけでなく、これからその環境を用いてプログラミングを行うための、動作テストのような役割も持っています。
確かに画面出力の観点で言えば、!マーク、半角スペース、大文字小文字などなど、正しく出力されれば、なんとなく安心感が湧いてきますよね。
C言語の参考書『プログラミング言語C』(第2版)では冒頭に「新しいプログラミング言語を学ぶ唯一の道は、それでプログラムを書いてみることである」との考えが示されていて、プログラムを入力して実行し、出力を確認することができれば、言語の他の要素を学ぶことは容易だとされています。
Hello, World!の起源
この文言を使う習慣はブライアン・カーニハンとデニス・リッチーによる著書「プログラミング言語C」(1978年)からです。著者であるカーニハンは、インタビュー記事でこのように答えていました。
卵からヒヨコが出てくる漫画があるんだけど、それが Hello, World なんだ。
これに感化されて、彼はテスト文言にこれを使うことにしたのです。
実はこの前にも、カーニハンの「A Tutorial Introduction to the Language B」(1973年)での登場があったのですが、最初のプログラムは外部変数を説明するための例だったんです。(へー)
プログラムはターミナルに改行を含む「hello, world!」を出力するものだった。当時のB言語は文字数の長さがASCII文字の4文字までという制限があったため、この「hello, world!」はなんと、複数の文字列に分割されていたんです。最初は「hi!」を出力するもので、「hello, world!」という文言は、その応用編で複数の文字列を必要とする長い文章の出力として紹介されていました。
スッキリしました
プログラミングの世界の入ってきた人たちが、これからお世話になる世界に「Hello, World」と1行を作成する。まるで生まれたてのヒヨコのように。
ChatGPTなどのAIや、自動車の自動運転技術などの最新技術を生みだしたエンジニアたちも、最初はこの一行から入ったのかな?と想像すると、我々もいろんなものを作れそうな気持ちになってきませんか?