「¥」について普通の感覚で考えてみる | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

Windows でディレクトリやファイルのパス(場所)を表す場合、

 C:¥Hoge¥Foo.txt

のように、「¥記号」で区切って書く。プログラミングでも、改行記号「\n」のように特殊な文字(エスケープシーケンス)を表現することがある。

しかし、なぜ通貨の単位である「円」なのか? 普通に考えると、とても不自然である。


ご存知の方も多いだろうが、この「\」は、本当は(英語圏では)半角のバックスラッシュ「\」である。つまり、上記のパスは本来、

 C:\Hoge\Foo.txt

のように表現されるべきものなのだ(※1)。

想像だが、ASCII コード(いわゆる半角文字)を日本に輸入する際、「\」を割り当てたくなって、あまり使われなさそうなバックスラッシュに置き換えたということだろう。しかし、その後、バックスラッシュがエスケープシーケンスに採用されたり、MS-DOS のパスの区切りに採用されたりと、予想以上に頻繁に使われるようになってしまったのである(※2)。


こうした「不自然さ」も、コンピュータを使っているうちに当り前のことになってしまい、全く気にならなくなる。そんなことをいちいち気にしていては、仕事にならない。

しかし、ふとしたときに「普通の人の感覚」で考え直してみると、その不自然さを再発見するのである。

これは「¥記号」の問題に限らない。この業界で長年働いていると、コンピュータを使い始めた頃に不思議に思っていたこと、不便に思ったこと、難しく感じていたことがどんなことだったのか、だんだん分からなくなってくる。

しかし、システム開発をしていると、コンピュータに詳しくないエンドユーザーの視点に立つべき時がある。また、新人プログラマを指導するなら、初心者の気持ちを理解しならなければならない。そのよう場合に「普通の人の感覚」がなければ、上手くいかないだろう。


専門的な知識を得ることで、代わりに失うものがある。初心忘るべからずと言うが、それは心がまえのことだけではないだろう。難しいことだとは思うが、なるべく「普通の人の感覚」を失わないようにしたいものである。


この記事を誰かに読ませたいという方、クリックお願いします →



※1
UNIX系の OS では、ディレクトリの区切りは「/」だが、Windows のような DOS 系の OS ではなぜ「\」なのか。「/ as the option character in CP/M (John Elliott's homepage)」 によると、まず、最初のバージョンの DOS にはディレクトリの概念がなかった。そして、コマンドラインのオプション指定に「/」が使われていた(CP/M という OS のやり方を踏襲)。そういった背景があったため、その後、Ver.2 でディレクトリの概念を導入したとき、「\」を採用したらしい。

※2
昔から金額を表示するシステムは多かっただろうから、「\」という文字は必要だっただろう。かといって、「$」のコードに割り当てると混乱するのは間違いない。ちなみに、「\」を規定した「JIS C 6220」は 1969 年にできている。C言語は 1972 年の誕生(前身のB言語は 1970年)、DOS にディレクトリが導入されたのは 1983 年である。

2006/2/44 追記
「\」や「\」の割り当ての経緯については、安岡孝一さんから情報をいただきました。下のコメント欄の「$の上に¥」を参照してください。




■関連記事
普通の言葉
文字の選び方



■関連リンク
¥記号(Wikipedia)
JIS X 0201 (Wikipedia)
文字コードで世界に出る(キャリアラボ)
DOSの歴史セミナ(Altair☆'s Page)
C言語の歴史(BohYoh.com)



文字符号の歴史―欧米と日本編
安岡 孝一 安岡 素子
共立出版 (2006/02)


Windows DOS/コマンドプロンプト辞典
飯島 弘文
翔泳社 (2003/08/23)
売り上げランキング: 3,286
おすすめ度の平均: 5
5 DOSを使う方、興味のある方には最良の書だと思います
5 Windowsでコマンドプロンプトを使う時に役に立ちました。