Foo Bar Baz・Hoge Fuga Piyo の起源を調べてみた
プログラムのサンプルコードなんかで当たり前のように登場する foo
・bar
・baz
・hoge
・fuga
・piyo
といった文字列。
// 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 でまとめられている。それ以前からも利用されてきたこの単語達に対して体系的にまとめようとしたモノだそうだ。
- FooBar : 第二次世界大戦時の陸軍でのスラング「FUBAR (Fucked Up Beyond All Repair・修理できないほどぶっ壊れた」に由来するとか。「FOOBAR」で一語だったようだ
- Foo : 1930年頃のビル・ホルマンによる漫画「Smokey Stover」にて頻繁に登場する。ナンセンスでシュールな漫画で、「Fool」などの単語から影響を受けたモノと考えられている
- Foo という言葉は流行語になり、第二次世界大戦中の米軍でも正体不明の飛行物体を指す「Foo Fighter」という単語が生まれている
- Bar : ウォルト・ケリーの漫画「Pogo」に登場。前述の「Smokey Stover」の影響もあり、両者は当時の人気コミックだったようだ
というワケで、1930年代頃のコミックで登場した「ナンセンスな単語」が流行語となり、第二次世界大戦中の軍でも使われるほど浸透していたことから、ジャーゴンとして利用されるようになったようだ。
Baz
前述のジョーク RFC3092 にも単語は出てくるが、その起源や由来については特段示されていないのが「Baz」。
ジャーゴンファイルの説明でも複数の説が記載されていて、「Bar の派生形」とか「Albert The Allibator」というコミックキャラの「Bazz Fazz!」「Rowrbazzle!」という口癖が元ネタ、などなど。
コレも「Foo」「Bar」同様、古いコミックでのナンセンスな (特別な意味を持たない) 単語が由来で、それらが有名だったから使った、という軽い理由と思われる。
Hoge・Piyo
ホゲ・ピヨ。恐らく日本固有のメタ構文変数なんだろうな、というのは字面から予想が付くが、起源は何なのだろう。
- Hoge : 1980年代前半には使われ始めていた
@hoge_mix
氏が1980年頃に作成した「HOGE 基板」という基板、およびその ID 名「Hoge」が浸透した説- ASCII 誌、村井純氏が創設した WIDE プロジェクトの界隈が使用し波及したモノと考えられている
fj.*
というニュースグループで、1989年の投稿において変数名としてhoge
が使用されている記録が現存している- 藤子不二雄の漫画「どろろ」や「オバ Q マーチ」、ドラえもんのジャイアンの歌などに「ホゲ」という言葉が出てきている、それが無意識の内に転用された?
- 他にも
Tako
・Ika
など、Foo
・Bar
を和製単語に変換した派生形が存在したらしい (イカタコは自分も2000年前後に「とほほの WWW 入門」か「週刊アスキー」かそのあたりで見かけた記憶がある)
- Piyo : Soda Noriyuki (
@n_soda
) 氏が1984年頃に使い始めたと証言している。「めぞん一刻」が元ネタだとか- HogeHoge・PiyoPiyo など繰り返しで用いた例もある
…ということで、「Hoge」は Apple II のコンパチ基板を作成されて有名になった「Hoge」さんの名前 (ID) が由来ではないか、ということだった。
そして Foo Bar に変わる和製単語を模索し使い始めたのが1980年代であり、当時有名で影響力を持っていた雑誌や組織・プロジェクト経由で広まったとのこと。
数合わせのために、Hige・Fuge など語感が似ている派生形が作られたり、Tako・Ika など異なるネタを面白半分に?引っ張ってきたようである。
- 「hoge」の起源を求めて - Togetter
- A page of HOGE ほげを考えるページ
- サンプルコードのhoge hoge (ほげほげ) はどのような経緯で使われるようになりましたか?に対する大島 芳樹 (Yoshiki Ohshima)さんの回答 - Quora
- fj : cannot use SunCore on KCL?
- WIDEとは 「WIDEプロジェクト」 ワイド : - IT用語辞典バイナリ
- メタ構文変数 - Wikipedia
Fuga
Foo Bar に対する「Baz」のように、Hoge Piyo と比べると起源が曖昧なのが「Fuga」。
「Hoge」「Fuga」「Piyo」という順番で使われるのが大抵なのに、その2番手の単語の由来が今回調べきれなかった。
当時のメタ構文変数を漁ると、「Hoge」をベースにして「Hige」「Hage」「Fuge」などとテキトーな派生形が生まれていたようなので、その中でたまたま生き残ったのかな、という推測。
以上
最近の若い人には「和製単語」の Hoge Fuga Piyo が伝わらなくなりつつあるとか。「世界標準」(?) である Foo Bar Baz の方がメタ構文変数として伝わることと、ジョーク RFC とはいえ RFC3092 にまとまっていることなどからも、より分かりやすいといえば分かりやすいのかもしれない。w