プログラムの「hoge」や「foo」「bar」は無意味なメタ構文変数
IT関連の書籍やウェブサイトにて「hoge」や「foo」「bar」といった変数を見たことはないでしょうか。 これらは広く使われていますが、別にルールや作法という訳ではありません。
これらは特に意味がない文字列の「メタ構文変数」と呼ばれるものです。 ただし意味はなくても意義はあるんですよ。
IT業界で使われる「メタ構文変数」
メタ構文変数とは
日本のIT界隈において、昔からhogeやfugaといった「メタ構文変数」が使われてきました。 何だか難しそうな言葉ですが、要は「意味がないことが広く知られている無意味な文字列」のことです。
日本語で例えれば「ナントカ」「カントカ」「うんたら」「ほにゃらら」「チョメチョメ」のような存在です。 名前記入例の「山田太郎」や「鈴木花子」もそんな感じでしょうか。
メタ構文変数は「無意味であることが知られている」必要がある
メタ構文変数はどんな並びの文字列でも良いですが、無意味であることが広く知られている必要があります。 無意味だと分かっていないと、それがルール・作法・固有名詞のように見えてしまいますからね。
例えばプログラム指示書に変数名「hoge」と書かれていた場合、これがメタ構文変数だと分かっていれば「適当にイイ感じの変数名に置き換えろってことだな」と読み取れます。 しかし知らなかった場合は「変数名をhogeにしろってことだな」となってしまいます。
私もメタ構文変数の存在を知らなかった頃、色々な人がhogeやらfugaやら書いているから、そのようなコーディング規約が存在すると思っていました。 もちろんそんな訳はなく、hogeが広く使われているのは使い勝手が良いからでしかありません。
よく使われるメタ構文変数と使用例
日本のIT界隈において代表的なメタ構文変数は「hoge」です。 複数ある場合は「fuga」「piyo」「hogehoge」などが順に使われます。
例えば適当なURLを表現したい時に「hoge.com」と書いたり、サンプルプログラムの変数名を「hoge」や「fuga」にするといった具合に使われています。
英語圏においては「foo」や「bar」がメタ構文変数として使われているようです。 海外のサンプルプログラムでよく見かけますが、hogeやfugaと同じで深い意味はありません。
メタ構文変数を本番で使ってはいけない
メタ構文変数はサンプル的な意味合いが強いものです。 なので学校の課題や仕事などの本番時に使うべきではありません。
しかし手癖で書いてしまったり、後で直そうと思っていたのに直し忘れたりなど、うっかりで本番系に紛れてしまうことも多いです。 またメタ構文変数のつもりで指示書を書いたら、そのままhogeと書かれてしまったなんてケースもあります。
本番系にhogeやfugaが紛れ込まないように気を付けましょう。 もし見つけたら責任者に一声かけてみてください。
若い人に通じなくなったメタ構文変数
「hogeやfugaが若い人に通じなくなった」というニュースを見ました。 別の変数が台頭した訳ではなく、単純にメタ構文変数を使う習慣のない人が増えたようです。
無意味なことを広く知られていることで意義があるのがメタ構文変数です。 その性質上、無意味なことを知らない人が増えると機能しにくくなってしまいます。
このまま断絶されるには惜しい使い勝手の良い概念ですので、ぜひ頭の片隅にでも入れておいてください。