世界中のプログラマーが最初に書くコード。言語が違っても、フレームワークが変わっても、まず画面に表示するのは「Hello, World!」だ。年間推定数千万回タイプされるこの文字列は、もはや単なるテスト出力ではなく、プログラミング文化そのものを象徴するイコンとなっている。しかし、この伝統はいつ、なぜ始まったのか。
ブライアン・カーニハンと1978年の一行
「Hello, World!」の起源をたどると、一人の計算機科学者にたどり着く。ブライアン・カーニハン(Brian Kernighan)——ベル研究所の研究者で、デニス・リッチーと共にC言語のバイブル『The C Programming Language』(通称K&R本)を著した人物だ。
1978年に出版されたK&R本の最初のサンプルプログラムがこれだった。
しかし、カーニハン自身はこのフレーズをもっと前から使っていた。1974年に書いたベル研究所の内部文書「Programming in C: A Tutorial」にすでに「hello, world」が登場する。さらに遡ると、1972年の「A Tutorial Introduction to the Language B」でもカーニハンは同じフレーズを例に使っている。
| 年 | 文書 | 表記 |
|---|---|---|
| 1972 | A Tutorial Introduction to the Language B | hello, world |
| 1974 | Programming in C: A Tutorial | hello, world |
| 1978 | The C Programming Language(K&R本) | hello, world |
| 1988 | K&R第2版 | hello, world |
カーニハンは後年のインタビューで、このフレーズの由来について「記憶にない」と語っている。おそらく何かの漫画かテレビ番組で見た赤ちゃんのセリフが頭に残っていたのだろう、と推測している。世界で最も有名なプログラムの起源が「なんとなく」だったとは、なんとも人間らしい話だ。
なぜ「Hello, World!」が定着したのか
K&R本の影響力は絶大だった。C言語がUNIXとともに学術機関から産業界へ広がるにつれ、「Hello, World!」は新しい言語を学ぶ最初のステップとして定着していく。その理由は単純だ。
第一に、出力が単純で視覚的に確認しやすい。プログラムが正常に動作しているかどうかが一目瞭然だ。第二に、文字列リテラルと出力関数という、言語の最も基本的な要素を同時にテストできる。第三に、「世界に挨拶する」という行為が、新しい言語との最初の対話として象徴的だ。
各言語のHello, World!——進化の鏡
「Hello, World!」を表示するコードの長さと複雑さは、プログラミング言語の設計哲学を映し出す鏡だ。
| 言語 | 年 | 行数 | 特徴 |
|---|---|---|---|
| C | 1972 | 5行 | main関数、#include、セミコロン |
| Java | 1995 | 5行 | クラス定義、public static void main |
| [Python](/tag/python) | 1991 | 1行 | print一行で完結 |
| Ruby | 1995 | 1行 | puts一行で完結 |
| Brainfuck | 1993 | 1行 | 100文字以上の記号の羅列 |
| Whitespace | 2003 | — | 空白・タブ・改行だけで構成 |
Javaで「Hello, World!」を書くには、クラス定義やmainメソッドのシグネチャなど多くの「儀式」が必要だ。Pythonなら一行で済む。この差は、言語が「誰のために、何のために設計されたか」という思想の違いを端的に示している。
Hello, World!の派生文化
「Hello, World!」は純粋な技術文書を超えて、ポップカルチャーに浸透した。Tシャツやマグカップに印刷され、赤ちゃんのロンパースにも「Hello, World!」と書かれたものがある——プログラマーの子どもが最初に着る服として人気だ。
GitHub上で「hello-world」を含むリポジトリは1,000万件を超える。これは地球上のすべてのプログラミング言語、すべてのフレームワークで「Hello, World!」が書かれていることを意味する。2020年にはMars Helicopter Ingenuityの制御ソフトウェアのテストログにも「Hello, World!」が記録されていた。火星で実行された最初のプログラムの出力も、やはりこの一行だった。
「Hello, World!」以前の世界
K&R以前のプログラミング教科書では、何を最初に出力していたのか。1960年代のFORTRANの教科書では、数値計算の結果を最初の例として扱うことが一般的だった。文字列出力は二の次で、「2 + 3 = 5」のような算術がプログラミングの出発点だった。
COBOLの教科書では、帳票のフォーマット出力が最初の例になることが多かった。ビジネス用途の言語らしく、実務的だが華がない。「Hello, World!」の登場は、プログラミングを「計算の道具」から「表現の手段」へとイメージを転換させた一因かもしれない。
最初の一行が持つ力
初めてプログラムを書いて、画面に文字が表示された瞬間——多くのプログラマーがその体験を鮮明に覚えている。自分が命令したとおりにコンピュータが応答したという感覚は、ある種の万能感を伴う。
半世紀以上にわたり、何億人ものプログラマーが同じ一行からキャリアを始めた。言語やOSが変わっても、この伝統は途切れていない。あなたが次に新しいプログラミング言語を試すとき、最初に書くのはやはり「Hello, World!」だろうか——それとも、何か別のメッセージを世界に向けて発信するだろうか?