初めて知る用語はできるだけ言葉の意味や由来などと紐づけて覚えるようにしている。
アルファベットの羅列で覚えるよりは、意味や関連用語と一緒に覚えた方が楽だし忘れにくい。というか意味が気になって調べずにはいられないということも多い。
このブログでも、できるだけ読み方や由来を書くようにしている。
さて、今日の本題は、サンプルコードなどでよく見かけるhoge
。
英単語か何かをもじったものだろうと思ってはいたが、別に覚える必要があるものでもないので今まで調べたことがなかった。
hogeには何の意味もない
結論から言うと、hoge
には何の意味もないらしい。
しかし、何の意味もないことこそがhoge
の意味だ。
hoge
の正体は、サンプルプログラムなどで何も意味がない名称として使われるメタ構文変数というもの。
メタ構文変数(メタこうぶんへんすう、metasyntactic variable)はプログラミング言語の記述で使われる識別子の一種。サンプルプログラムなどで意味のない名前が必要な場合に利用される、「意味のない名前」であることが広く知られた識別子のことである。
サンプルコードなどで適当に変数名をつけると、本当にそういう変数名にすべきなのか、ただの例なのかわかりにくいため、「意味がない」ことが暗黙の了解となっているメタ構文変数というものがある。
なので、実際のプログラムでは使わない方がいいようだ。
hogeの続き
今回hoge
を調べようと思ったきっかけは、piyo
というのを初めて見かけたからだ。
hoge
、fuga
、piyo
という変数名が使われていて、これは英語ではなさそうだと思い、一体どういう由来なのかと気になった。
さっきのWikipediaによると、hoge
、fuga
、piyo
、hogera
、hogehoge
〜と展開していくらしい。
hoge
が使われているのは日本だけで、英語圏ではfoo
、bar
、baz
などが使われる。
なるほど、foo
、bar
、baz
はRubyリファレンスマニュアルで見慣れている。
日本では1980年代にはhoge
が使われていたらしいが、いつ誰が言い始めたのかは謎。最近の学生はhoge
を知らない人も増えているとかいないとか。
やっぱりどう考えても誰かがふざけてつけたとしか思えない(笑)
(参考ページ)