Foo Bar Baz・Hoge Fuga Piyo の起源を調べてみた

プログラムのサンプルコードなんかで当たり前のように登場する foobarbazhogefugapiyo といった文字列。

// Hello World の次は、自分の好きなテキストを出力してみましょう!
// みたいなノリの中で出てきたり…
const text = 'hoge';
console.log(text);

// 命名規則が重要ではない話題の中で「何らかの処理をするモノ」
// ということを表すコードサンプルだったり…
const array = ['foo', 'bar', 'baz'];
array.forEach(item => {
  if(item === 'foo') fooFunction();
  else somethingFunction(item);
});
// 「このような if 文を書くと、こんな問題が潜在しています…」
// 的な話に繋げるためのサンプルコードで書いてみたり

自分がプログラミング学習を始めた時は、Hoge とか Piyo とか言われても疑問に思わず、「まぁプレースホルダ的なモンなんだろうな」と納得していたのだが、「ホゲって何なんですか?」と疑問に思う人もいるらしい。

これらのことはメタ構文変数と表現するらしい。ジャーゴンの一種として知られた単語だ。

しかし確かに、なぜ他ではなく「Hoge」なのか、欧米圏では「Foo」「Bar」とか言うようになったのか。その起源は知らなかったので、今回調べてみた。

目次

Foo・Bar・FooBar

「Foo」「Bar」「FooBar」の3つについては、ジョーク RFC の RFC3092 でまとめられている。それ以前からも利用されてきたこの単語達に対して体系的にまとめようとしたモノだそうだ。

というワケで、1930年代頃のコミックで登場した「ナンセンスな単語」が流行語となり、第二次世界大戦中の軍でも使われるほど浸透していたことから、ジャーゴンとして利用されるようになったようだ。

Baz

前述のジョーク RFC3092 にも単語は出てくるが、その起源や由来については特段示されていないのが「Baz」。

ジャーゴンファイルの説明でも複数の説が記載されていて、「Bar の派生形」とか「Albert The Allibator」というコミックキャラの「Bazz Fazz!」「Rowrbazzle!」という口癖が元ネタ、などなど。

コレも「Foo」「Bar」同様、古いコミックでのナンセンスな (特別な意味を持たない) 単語が由来で、それらが有名だったから使った、という軽い理由と思われる。

Hoge・Piyo

ホゲ・ピヨ。恐らく日本固有のメタ構文変数なんだろうな、というのは字面から予想が付くが、起源は何なのだろう。

…ということで、「Hoge」は Apple II のコンパチ基板を作成されて有名になった「Hoge」さんの名前 (ID) が由来ではないか、ということだった。

そして Foo Bar に変わる和製単語を模索し使い始めたのが1980年代であり、当時有名で影響力を持っていた雑誌や組織・プロジェクト経由で広まったとのこと。

数合わせのために、Hige・Fuge など語感が似ている派生形が作られたり、Tako・Ika など異なるネタを面白半分に?引っ張ってきたようである。

Fuga

Foo Bar に対する「Baz」のように、Hoge Piyo と比べると起源が曖昧なのが「Fuga」。

「Hoge」「Fuga」「Piyo」という順番で使われるのが大抵なのに、その2番手の単語の由来が今回調べきれなかった。

当時のメタ構文変数を漁ると、「Hoge」をベースにして「Hige」「Hage」「Fuge」などとテキトーな派生形が生まれていたようなので、その中でたまたま生き残ったのかな、という推測。

以上

最近の若い人には「和製単語」の Hoge Fuga Piyo が伝わらなくなりつつあるとか。「世界標準」(?) である Foo Bar Baz の方がメタ構文変数として伝わることと、ジョーク RFC とはいえ RFC3092 にまとまっていることなどからも、より分かりやすいといえば分かりやすいのかもしれない。w