2006年04月16日(日)

「¥」について普通の感覚で考えてみる

テーマ:プログラマの心得
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でコマンドプロンプトを使う時に役に立ちました。


AD
いいね!した人  |  コメント(5)  |  リブログ(0)

argvさんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

コメント

[コメントをする]

5 ■RE: $の上に¥

安岡孝一さん、こんにちは。そんな背景があったのですか。勉強になります。
#ご紹介の書籍、広告貼らせてもらいました。

4 ■$の上に¥

『「$」のコードに割り当てると混乱する』なんですけど、JIS C 6220の原案委員会は、もともとは「$」の上に「¥」を割り当てるつもりだったようです。それが、1966年4月のISO/TC97/SC2パリ会議で否決されたので、やむなく0x5Cに「¥」を入れたところ、USASI(ANSIの前身)は1967年版のASCIIで0x5Cに「\」を入れてきた、ということのようです。この辺に関しては、よければ拙著『文字符号の歴史 欧米と日本編』をごらん下さい。

3 ■いえいえ、なかなか…

>ユーザーサポートをされている方は、日常的に感じていることなんですね。
私は気分屋なので、開発に集中したいときなどはかなり冷たい対応をしてしまいます。
初心を忘れないようにしたいです。

2 ■RE: ハッとさせられています

guutarau06 さんこんにちは。
ユーザーサポートをされている方は、日常的に感じていることなんですね。

1 ■ハッとさせられています

私は、プログラミングのかたわら、社内(PCスキルまちまち)向けに電話でサポートをしています。
初心者の感覚を思い出す機会に恵まれていることはありがたいですね。

「¥マーク」もそうですし、パスの階層というのもわかりにくいみたいですね。

ユーザが「書いてあるとおりのファイル名にすると怒られる」と言うので、
「ファイル名に "¥Foo.txt"って入れてませんか?"¥"は入れなくていいですよ。」
と答えたり、

「C:¥HogeフォルダにFoo.txtを保存して」と言うつもりで「Hogeフォルダの下に」
と言ってしまったら、Hogeフォルダと並ぶ位置に(つまりC:¥に)
Foo.txtを保存されてしまったことを思い出しました。

コメント投稿

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。