2011-05-18

Sorting it all Out: 英語を強制させないことだってできるさ。あるいはアホになるか。どっちでもいいけど

You can choose to *not* impose a "Non-English Tax" on your feature. Or you can be a jerk. Whichever.... - Sorting it all Out - Site Home - MSDN Blogs

このブログ記事に書かれている内容は、アイロニーだらけである。

つまりだ。俺は英語を書いてるわけだ。

他の言語も覚えようとしてるんだけどさ、英語こそが、俺の一番得意な言語なわけだしさ。

もし英語の知識とやらが、正しい文法とかスペリングだと言うのなら、そもそも俺だって、英語ができないということになるかもしれん。

まあ、それはさておく。エラーメッセージをローカライズすべきかどうかというスレタイのスレで、こんなレスつけたやつがいた。

エラーメッセージはローカライズされるべきじゃないし、分かりやすくあるべきでもない。

エラーメッセージというのは、共通の言語を使うべきだ。たいていは英語だ。一般的に言えば、開発チームの使ってる言語だ。そうすれば、そのAPIを使う開発者は、インターネットでテキストを調べることができる。フランス人の開発者が、フランス語のエラーメッセージを得たところで意味がない。

エラーメッセージというのは、開発者は理解できるが、実行環境の詳細は漏らさない形で書かれるべきだ。単なるユーザーに対して、エラーメッセージを表示すべきではない。つくっているものがAPIフレームワークで、ユーザーというのが開発者である場合はともかく。

このコメントには、マイクロソフトのレドモンドの悪習がふたつある。とくに、最近のマネージドコードにあるわけの分からんエラーメッセージに共通する悪習だ。

  1. 読みやすく、理解しやすいエラーメッセージは邪悪であるという掟
  2. 「ネットで探せ」というのが、エラーメッセージに英語を使う理由であるという掟

このアホくさいクソな悪習に賛同する奴は、根本的な問題を分かってない。たとえ英語ネイティブであろうと、英語で書かれているものがすべて理解できるわけではないし、そもそも、まともな開発スタイルでもない。ユーザーの手を縛り上げるようなiPhoneアプリケーションは、iPhoneの利用の妨げになるのと同じだ。

開発者の心得:インターネットでエラーメッセージを探すのは、「エラーメッセージが理解出来ないから」である。どんな言語を使っても同じだ。

世界には大勢の開発者がいる。英語が分からない者も大勢いる。英語を学ぶ者も大勢いる。どの程度、英語ができるようになるかは、人それぞれである。本文で使われているようなとんでもない方言だってあるのだ。大抵は、英語を学ぶのにとても苦労しているので、代わりに別の言語を学ぶ。例えばC#とか。そういう人間には、英語より、フランス語とか日本語の資料でC#を学んだほうが、仕事を見つけるのが楽なのだ。

英語を学んだ者は、英語で情報を得ることができるが、だからといって、英語を理解しないものより優れているとは限らない。だから、そういう堅苦しい問題よりも、より多くの開発者を集めることに労力を割くのだ。

英語を話し、英語限定のソフトウェアを作っている開発者よ。英語に流暢な人間であっても、お前の書いたものが理解出来ない奴は必ずいる。物事を他人に伝えるという能力が如何に劣っているかを自覚しろ。そういう態度を改めることこそが、分かりやすいソフトウェアを作ることにつながるのだ。

英語を話すということは素晴らしいことだ。ある国では、英語が分かるということは、仕事を見つけるために必須である。しかし、ある言語習得が必須である理由というのは、他の国の開発者だって同じだ。

結局、物事をより広く、便利に提供するということは、何の害もないのだ。

しかしまた同時に、英語が分からない人間に物事を理解させるというのは、恥ずべきことではない。ぶっちゃけ言うと、奴らに英語を強制させるほうが恥ずべきことじゃないのか?

そんなわけで、.Netフレームワークを使う開発者で、世の中のプログラミング作業を簡単にしたいのならば、自分の制作物の使用に際して、英語を強制させないという選択肢を取れるわけだ。

あるいは、アホになるかだ。

どっちでもいいけど。

本文で最大のアイロニーは、当然、本文がすべて英語で書かれているということである。私の能力上の都合で、私は読者に英語を強制しているわけだ。でも、お前らは俺よりうまくやることだってできるさ。

この英語は翻訳しづらかった。理由は、一文が長いためだ。

No comments:

Post a Comment

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.