パトリック・ミッケンジー(Patrick McKenzie)さんのブログ・エントリ、 “Falsehoods Programmers Believe About Names” の日本語訳です。翻訳の公開を快諾してくださったミッケンジーさんに感謝します。

公開:
2012-02-22

プログラマの抱いている名前についての誤謬

Posted on June 17, 2010 by Patrick

きょう、ジョン・グレアム゠カミング(John Graham-Cumming)が、正しくない文字が含まれているといって彼のラスト・ネームを受け付けないコンピュータ・システムへの不満の記事を書いていた。もちろん彼の名前に「正しくない」ところなどない。当人の申し出たものが当人を識別するものとしては相応しいのであって、定義からして名前とはそういうものである。このことにジョンは当然ながらいらだったし、そうなるのもきわめて正当なことだ。定義からすれば事実上、名前とはその人のアイデンティティの中核をなすものだからである。

わたしはプログラムの仕事で数年ほど日本で暮らしていたことがあるが、そこで決まりきった形式の名前しか受け付けないシステムを何度もクラッシュさせてきた。(わたしは多くパトリック・ミッケンジー(Patrick McKenzie)と呼ばれているけれども、ほかに6つの名前もわたしは自分の「フル・ネーム」だと認識していて、それはどれであれ、わたしの利用するどのシステムでも適切に処理できない。)同様に、べらぼうな超大企業がビジネスをグローバルに進めるために作ったような、理論上あらゆる名前に対応していることになっているシステムでもわたしは苦労をしてきた。わたしは名前というものを適切に扱っているコンピュータ・システムを見たことがないし、そういうものがこの世に存在するかも疑わしく思っている

ひとつサービスとして、あなたの作るシステムが名前について無条件に仮定しているであろうことをここで列挙してみよう。これらの仮定はすべて間違っている。こんど名前を扱うシステムを書くときには、これらにできるだけ当てはまっていないものに挑戦してほしい。

  1. 正式なフル・ネームはただひとつである。
  2. 通用のフル・ネームはただひとつである。
  3. 現時点での正式なフル・ネームはただひとつである。
  4. 現時点での通用のフル・ネームはただひとつである。
  5. ちょうど N 個で構成される名前を持っている。N は任意の数。
  6. 名前はある一定のスペースに収まるはずである。
  7. 名前は変わらない。
  8. 名前は変わる、だがそれはある限られた機会でのことである。
  9. 名前は ASCII の範囲で表せる。
  10. 名前はどれか特定の文字セットひとつの範囲内で表せる。
  11. 名前は必ず Unicode のコードポイントの中に入っている。
  12. 名前は大文字と小文字を区別しなくてよい。
  13. 名前は大文字と小文字を区別する必要がある。
  14. 名前にプレフィクスやサフィックスが付くことがあるが、それは取り除いてもよい。
  15. 名前に数字は含まれない。
  16. すべて大文字で書かれる名前はない。
  17. すべて小文字で書かれる名前はない。
  18. 名前はいつも決まった順序で書かれる。同じ並べ替えルールを適用すればどのシステムでも同じ結果になる。
    〔訳注:ローマ字表記された日本人の名前などは現状姓名の順序がまちまちです。〕
  19. 名前はファースト・ネームとラスト・ネームに分かれている。
  20. 名前はラスト・ネームにファースト・ネーム、あるいは相互の関係を表わすために集団内で共有されている要素で構成されている。
  21. 名前はほかの人との識別に使える。
  22. 名前はほかの人との識別におおむね使えるといってもさしつかえない。
  23. わかったわかった、とはいえ同じ名前が百万人もいたりはしないと言ってもいい程度には分散している、よね……。
  24. このシステムで中国人の名前を扱うことはないだろ。
  25. 日本人の名前とか
  26. 韓国人の名前とか
  27. アイルランド、イギリス、アメリカ、スペイン、メキシコ、ブラジル、ペルー、ロシア、スウェーデン、ボツワナ、南アフリカ、トリニダード、ハイチ、フランス、クリンゴン、その他通常と違う奇怪な慣習で付けられる名前を扱うことなんてないだろ。
  28. いまのクリンゴンってとこはジョークだよ、ね?
  29. 文化的相対主義で煙に巻くのはやめてくれ! 少なくともわたしの社会では、名前というものについて広く共有された常識が存在しているっ。
  30. 名前を受け取って変換して格納し、それを損失なく復元できるアルゴリズムが存在する。(いやいや、これはあるよね、そうそう、入力されたのを、そのまま返せばいいんだよね! キミは頭いいなあ!)
  31. 用意した不適切な語のリストに名前がひっかかることはない。
  32. 名前は生まれたときに付けられる。
  33. あーそうじゃなくても、生まれてからそんなに経ってないうちに付けられる。
  34. わかったよ、生まれてから、1年くらいのうちに付けられる。
  35. 5年かしら?
  36. もー、からかってんでしょ?
  37. ある人物についてのデータを扱う2つのシステムはその人物について同じ名前を用いている。
  38. 名前の入力を担当するふたりのオペレーターは、ある人の名前について1ビットたりとも違わない同一の文字列を入力するはずである、システムがよくできていれば。
  39. わたしのシステムをクラッシュさせるような名前はあくまで例外的なよそ者のケースである。かれらはちゃんと受け入れられるふつうの名前を用いるべきだ。たとえば……田中太郎とか。
    〔訳注:これは英語を前提としたシステムに対する皮肉で、原文も漢字で「田中太郎」となっています。もちろん日本ではふつうの名前ですが、ふつうの名前という発想それ自体がひとつの先入観からきているということを指摘しています。そのまま日本語に訳すとジョークとして成立しなくなってしまうのですが、日本語前提のシステムに対してなら、「ふつうの名前っていったら、अशोक とかね」といった感じでしょうか。〕
  40. 人には名前がある。

このリストはけっして網羅的なものではない。もし上に挙げたような思い込みを打ち砕くような現実の例を知りたければ、よろこんでお教えしよう。リストに加えるような誤謬があればコメントで追加してほしい〔訳注:原文のブログのほうです〕。また、こんどだれかが first_name カラムと last_name カラムからなるデータベースを使おうといったすばらしい提案をしているのにでくわしたら、このポストを紹介していただければと思う。

履歴

2012-02-22
公開。
同日、いくつか訳文を改訂。

ノート

McKenzie さんが「ミッケンジー」さんなのは、メールにてご本人からそのように日本語名をいただいたからです。記事の趣旨からして、それを無視するわけにはいかない。


このページについてのご意見ご感想はゲストブックまたはメール <mshibata at emptypage.jp> まで。