このブログ記事に書かれている内容は、アイロニーだらけである。
つまりだ。俺は英語を書いてるわけだ。
他の言語も覚えようとしてるんだけどさ、英語こそが、俺の一番得意な言語なわけだしさ。
もし英語の知識とやらが、正しい文法とかスペリングだと言うのなら、そもそも俺だって、英語ができないということになるかもしれん。
まあ、それはさておく。エラーメッセージをローカライズすべきかどうかというスレタイのスレで、こんなレスつけたやつがいた。
エラーメッセージはローカライズされるべきじゃないし、分かりやすくあるべきでもない。
エラーメッセージというのは、共通の言語を使うべきだ。たいていは英語だ。一般的に言えば、開発チームの使ってる言語だ。そうすれば、そのAPIを使う開発者は、インターネットでテキストを調べることができる。フランス人の開発者が、フランス語のエラーメッセージを得たところで意味がない。
エラーメッセージというのは、開発者は理解できるが、実行環境の詳細は漏らさない形で書かれるべきだ。単なるユーザーに対して、エラーメッセージを表示すべきではない。つくっているものがAPIフレームワークで、ユーザーというのが開発者である場合はともかく。
このコメントには、マイクロソフトのレドモンドの悪習がふたつある。とくに、最近のマネージドコードにあるわけの分からんエラーメッセージに共通する悪習だ。
- 読みやすく、理解しやすいエラーメッセージは邪悪であるという掟
- 「ネットで探せ」というのが、エラーメッセージに英語を使う理由であるという掟
このアホくさいクソな悪習に賛同する奴は、根本的な問題を分かってない。たとえ英語ネイティブであろうと、英語で書かれているものがすべて理解できるわけではないし、そもそも、まともな開発スタイルでもない。ユーザーの手を縛り上げるような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.