およそどこのOSでもパス名(フォルダ名とファイル名を合わせたもの)の区切り文字は「/」(スラッシュ)なのですが、なぜだか知りませんがMicrosoft系のOSでは「¥」マーク(欧米では「\」(バックスラッシュ)になる)になっています。これはなんででしょうか?
どうもこれには明快な回答はないようで、当初IBM(途中からMicrosoft DOSを共同開発)は「コマンドのスイッチに「/」スラッシュを使用するので」という回答があったようですが、当時すでに隆盛であったUNIXではパス名の区切りは「/」スラッシュでコマンドスイッチは「-」ハイフンと決まっていました。
最近ではDOSコマンドでもスラッシュ「/」もハイフン「-」も両方ともコマンドスイッチとして受け付けるものがほとんどで、上記の説明はまったく説明になっていません。
さらに、日本語では「¥」なのに欧米圏、正確には日本以外の国ではすべて同じコードでも「\」バックスラッシュとなり、両方を使い分けるにはこの記事のように全角文字に頼らざるを得ません。これは、どうもUnicodeでも同じ事情のようです。
ぶっちゃけて言うと、当時のパソコンはほとんどネットワークと言うものを意識せずに設計されていたので、UNIXのようにインターオペラビリティー(相互運用性)を大事にすると言う発想があまりなかったのだろうと思います。そこで、「UNIXをマルマル真似するとアレなので」とかそういう理由で区切り文字を変えてしまったのではないでしょうか?
さすがのビル・ゲイツも、つたないMS-DOSがここまで発展して世界中で使われるようになるとは思っていなかったのかもしれません。それまでに、適当なUNIX系OSのライセンスを取得してウィンドウシステムを構築する構想だったのかもしれません。しかし残念ながら、現実にはデスクトップOSとしてはいまだに世界一のシェアを誇ります。
Windows NTを作った時に、コッソリ「/」スラッシュに戻しておけばよかったのに、とも思います。当時、Windows NTは全く顧みる人もいない状況で、Windows95との互換性も低く、多少変更しても文句も出なかったのにと言う気がします。
バックスラッシュと¥マークの区別がつけられない理由も、NECがMS-DOSを輸入するときに「\」バックスラッシュという記号は日本ではほとんどメジャーで無かったため、プログラマーのきまぐれでそこに「¥」をマップしてしまったのでしょう。それが現在まで延々と禍根を残し続けています。
バックスラッシュにマップするくらいなら、もっと使わない「`」バッククオート(出し方知ってますか?)にマップすればよかったのに、とか思ったりします(Rubyユーザーが怒るか)。
プログラマーのこういったきまぐれは、ときに後の世に大きな禍根を残します。私はWindowsファイルシステムの区切り文字が「¥」であることがIT技術に与えたダメージは計り知れないと思っています。それこそ、2000年問題やら2038年問題なんて話にならないくらいの悪幣だったと思います。
でもまあ、悪貨は良貨を駆逐する。ということで今でもWindowsは大流行りです。
今後も「悪貨は良貨を駆逐」し続けるのであれば、iOSには未来がないと言うことになります。さて、どうなるんでしょうか?