foo, bar, Alice, Bob はどこから来たのか - 技術書のサンプル名の由来

4 分で読めます
雑学プログラミング技術書

この記事は約 6 分で読めます。

プログラマーなら誰もが見たことのある名前たち

技術書を開くと、サンプルコードに必ずと言っていいほど登場する名前があります。変数名の foo と bar、暗号の説明に出てくる Alice と Bob。これらの名前は世界中の技術書で共通して使われていますが、なぜこの名前なのか考えたことはあるでしょうか。

それぞれの名前には歴史的な由来があり、知っておくと技術書を読むのが少し楽しくなります。

foo と bar の由来

foo と bar の起源には複数の説がありますが、最も有力なのは軍事スラング「FUBAR」に由来するという説です。FUBAR は "Fouled Up Beyond All Recognition" (もはや原形をとどめないほど滅茶苦茶) の略語で、第二次世界大戦中のアメリカ軍で使われていました。

もう 1 つの有力な説は、MIT の Tech Model Railroad Club (TMRC) に由来するというものです。1960 年代、MIT のハッカー文化の中で foo が「何でもない値」を表す記号として使われ始め、それがプログラミング文化に広まったとされています。

いずれにせよ、foo と bar は「意味のない仮の名前」として定着しました。変数名に意味を持たせたくないとき、つまり「この変数の名前は本質ではない」と示したいときに使われます。3 つ目が必要なときは baz が登場し、foo, bar, baz の 3 点セットが完成します。

Alice と Bob の由来

Alice と Bob の起源は明確です。1978 年、Ron Rivest、Adi Shamir、Leonard Adleman の 3 人が発表した RSA 暗号の論文で、通信の当事者を Alice と Bob と名付けたのが始まりです。

それ以前の暗号論文では、通信者を A と B のような記号で表していました。Rivest らは論文を読みやすくするために人名を使うことにし、A から始まる名前として Alice、B から始まる名前として Bob を選びました。この命名が非常にわかりやすかったため、以降の暗号論文でも Alice と Bob が標準的に使われるようになりました。

Alice と Bob の仲間たち

暗号の世界では、Alice と Bob 以外にも多くの登場人物がいます。それぞれにアルファベット順の名前と明確な役割が割り当てられています。

Charlie (または Carol) は 3 人目の通信者です。Alice と Bob の 2 者間通信に 3 人目が加わるシナリオで登場します。Dave は 4 人目の通信者で、さらに複雑なプロトコルの説明に使われます。

特に重要なのは Eve と Mallory です。Eve は "eavesdropper" (盗聴者) の頭文字から来ており、通信を傍受する受動的な攻撃者を表します。Mallory は "malicious" (悪意のある) から来ており、通信内容を改ざんする能動的な攻撃者を表します。Eve は聞くだけ、Mallory は書き換えもする。この区別は暗号プロトコルの安全性を議論する上で重要です。

他にも、Trent (trusted third party、信頼できる第三者)、Grace (政府機関の代表)、Heidi (仲裁者) など、状況に応じた登場人物が定義されています。

日本の技術書の「太郎」と「花子」

日本の技術書では、サンプルに「太郎」「花子」がよく使われます。これは日本語の「名無しの権兵衛」に相当する、代表的な仮名です。

ただし、近年の技術書では「太郎」「花子」の使用は減少傾向にあります。ジェンダーの固定的な役割分担を連想させるという配慮から、「ユーザー A」「ユーザー B」のような中立的な表現や、「田中さん」「鈴木さん」のような苗字を使うケースが増えています。

hoge と fuga は日本独自

日本のプログラマーが foo/bar の代わりに使う hoge と fuga は、日本独自のメタ構文変数です。英語圏のプログラマーには通じません。

hoge の由来は諸説ありますが、1980 年代の日本のパソコン通信文化から広まったとされています。「ほげ」という響きの脱力感が、「意味のない仮の値」というニュアンスにぴったりだったのかもしれません。3 つ目が必要なときは piyo が使われ、hoge, fuga, piyo の 3 点セットになります。

Lorem ipsum の由来

技術書に限らず、デザインのモックアップでよく見かける "Lorem ipsum dolor sit amet..." というダミーテキスト。これは古代ローマの政治家キケロが紀元前 45 年頃に書いた哲学書「善と悪の究極について」(De Finibus Bonorum et Malorum) の一節を改変したものです。

1960 年代に写植業者が見本用のテキストとして使い始め、DTP (デスクトップパブリッシング) の普及とともに世界中に広まりました。原文のラテン語を意図的に崩してあるため、ラテン語として読んでも意味は通りません。

42 が「答え」として使われる理由

技術書やコード例で、サンプルの数値として 42 がやたらと登場することに気づいたことはないでしょうか。これはダグラス・アダムズの SF 小説「銀河ヒッチハイク・ガイド」(1979 年) に由来します。

作中で、超高性能コンピューター「ディープ・ソート」が「生命、宇宙、そして万物についての究極の疑問の答え」を 750 万年かけて計算した結果が 42 でした。この設定がプログラマー文化に深く浸透し、「とりあえず何か数値が必要なとき」に 42 を使う慣習が生まれました。

プログラミングの歴史に関する書籍を読むと、こうした文化的背景がさらに深く理解できます。

Hello, World! の起源

プログラミングを学ぶとき、最初に書くプログラムは「Hello, World!」と表示するものです。この伝統は、1978 年に出版された Brian Kernighan と Dennis Ritchie の共著「The C Programming Language」(通称 K&R 本) に遡ります。

ただし、Kernighan は 1974 年の Bell Labs の内部文書で既に "hello, world" を使っていました。K&R 本の爆発的な普及により、Hello, World! はプログラミング入門の象徴として世界中に定着しました。

関連記事

まとめ

技術書のサンプル名には、それぞれ興味深い歴史があります。foo/bar は軍事スラングから、Alice/Bob は RSA 暗号論文から、hoge/fuga は日本のパソコン通信文化から生まれました。Lorem ipsum は古代ローマのキケロに遡り、42 は SF 小説から、Hello, World! は K&R 本から広まりました。これらの由来を知っていると、技術書を読むときに「ああ、ここにも歴史があるんだな」と、ちょっとした楽しみが増えます。

共有:Xはてブ

この記事は役に立ちましたか?

関連用語

関連記事

ソフトウェア開発の歴史を変えた 5 冊の技術書

アルゴリズムの学問化からコードの可読性革命まで、ソフトウェア開発の方向性を決定づけた 5 冊の技術書を、時代背景とエピソードとともに紹介します。

O'Reilly の表紙はなぜ動物なのか - 技術書の装丁に隠された物語

O'Reilly の動物表紙の由来、技術書のフォント選び、判型の違いが読みやすさに与える影響など、装丁にまつわる雑学を紹介します。

プログラミングの本には何が書いてあるのか

プログラミングの本を開いたことがない人に向けて、実際にどんなことが書いてあるのかを紹介します。コードだけでなく、考え方や設計の話も載っています。

有名プログラマの読書習慣 - 天才たちは何を読んできたのか

リーナス・トーバルズ、まつもとゆきひろ、ビル・ゲイツなど、著名なプログラマたちの読書習慣と愛読書を紹介します。天才たちの読書スタイルから学べることとは。

本屋のプログラミングコーナーの歩き方

本屋のプログラミング書コーナーに行くと、棚いっぱいの本に圧倒されます。どこを見ればいいか、どう選べばいいかを初心者向けに案内します。

DevOps 本ガイド - CI/CD とインフラ自動化を学ぶ技術書の選び方

DevOps の文化・原則から CI/CD、IaC、オブザーバビリティまで学べる技術書の選び方と学習順序を紹介します。