Subscribed unsubscribe Subscribe Subscribe

ソフトウェア技術者が英語を学ぶべき理由

※いろんな人の話の焼き直しですけれど、

 とりあえず適当な文書が見つからなかったので、書いておきます。

 間違いやおかしな点がありましたらぜひご指摘ください。

 出展やリンクがわかり次第、リンクしていきたいです。

- - -

今、私が使っているソフトウェアのほとんどは英語圏で書かれている。

OS, ブラウザ, データベース, プログラミング開発環境…。

例を挙げるまでもない。

それは昔から変わっていない。

しかし、ソフトウェア業界という観点でいえば、実は、大きく変わってきた。

英語で書かれたソフトウェアを日本語で動くようにするためには、

1:処理の修正

 日本語データが扱えない部位を特定し、扱えるように修正する。

 特に、英語を処理するためのソフトウェアは英語の文字コード(ASCII)を扱えればよいが、日本語は文字の数が多いため、英語をあらわす7bitのコード体系ではひらがなすら扱えない。8bit(1バイト)に増やせば、カタカナまでは入るが、漢字は無理なのでさらに拡張して2バイト分のコードで一文字をあらわす。つまり8bit対応に加えて2バイト対応が必要。

2:表現の修正

 英語が読めなくても操作がわかるように、メニューやヘルプの日本語化、つまり英語で書かれた文章の翻訳と埋め込みが必要。

この2点が必要である。

このなかで、1:処理の修正 は、英語と日本語のコンピュータ上での処理方法がわかり、ソフトウェアの内容自体も理解できるソフトウェア技術者が必要になる。全部できる人が必要。

しかし、2:表現の修正 は翻訳者さえいれば、埋め込みは英語だけわかればこなせる。なので、英語と日本語がわかる人と、英語でソフトウェアがわかる人が一人ずついればいい。ハードルは1よりずっと低い。

初期のソフトウェア製品は、日本市場を攻略するため、1:処理の修正 をこなせる人材を確保する必要があった。それは日本の中に多く存在した。なので、ローカライズ産業としてのソフトウェア産業は日本の中にあった。

英語圏で作られたソフトウェアのソースコードを日本に持ってきて、日本語処理のわかる日本人のソフトウェア技術者が日本語向けの修正に必要な点を抽出し、直す、ということをした。

日本語が処理できるソフトは日本国外にないから、その費用は価格に転嫁できた。

日本語版ソフトが50%高い値段で売られていたとしても、安いからといって英語版ソフトを買う人はいない。日本語が処理できないから。

しかし、2バイトを使う国は、日本だけではなかった。中国、韓国も2バイト必要であった。

日本、中国、韓国の市場を狙うならば、各国固有の2バイト処理を後から入れるより、2バイト処理そのものを、もともとのソフトウェアに埋め込んでおき、必要な点のみ各言語に翻訳すれば、手間が少ない。

なので、1:処理の修正 の作業が共通化できればコスト面でのメリットが大きい。

共通なのであれば、ソフトウェアを最初に作成する時点で2バイトを考慮するのもいいだろう。

そうすれば、英語圏でも日本語圏でも中国語圏でも、そのまま動くソフトウェアになる。

その方法を記した本が英語で出版され、英語圏の中で方法が確立していく…。

さらに、Unicode/UTF8という文字コード国際化の標準仕様ができ、その文字コードを扱えるようにソフトウェアを書けば目的を達することができるようになった。各国向けのローカライズではなくグローバライズだけを考えればいい、ということになった。

その結果、最近のソフトウェアは、ほとんどが国際化対応であり、そういったソフトウェアを作るためのソフトウェアも国際化対応である。

1:処理の修正 は、ほとんどが英語圏で完結するようになった。

英語圏でソフトウェアを開発して、英語圏以外でも動かしたいとしても、ソフトウェア自体の中身を詳しく理解している人は、英語圏にさえいればよい。

あとは2:表現の修正だけすれば、日本語圏でも中国語圏でも、多くの人が利用可能になる。最近は、翻訳はネット上でボランティアを募集してやってもらう、そういうWebアプリケーションもある。

オープンソースソフトウェアにいたってはすべてがボランティア(ないし寄付)だ。

一応、補足すると・・・、

世界中で動くソフトが作れるという恩恵は、日本語圏に対しても等しく降り注いでいる。

その点からすれば英語圏でも日本語圏でも条件は同じといえるかもしれない。

しかし、そこにはネットワーク外部性が働く。

ソフトウェアの多くが英語で生産され、作っている技術者の多くが英語でコミュニケーションをとっている以上、ソフトウェアの理論を学ぶ場としても、そういう人間が集まっている場所であることが、効率的になっていく。

現在、国際化したソフトウェアには、最低限、英語での説明がついている。それがノルウェーで作られようと、ハンガリーで作られようと、インドでつくられようと、日本で作られようと。

「このソフトウェアは世界の多くの人を便利にする力がある。」といっても、その言葉は日本人以外にはほとんど通じない。

"This software can help many people in the world." と、英語で書いてはじめて、国際化対応になる。文法がまちがっていたって、まだましである。「どんなひどい英語でも、日本語よりは通じる。」

英語で書かれた技術情報を、誰かが日本語に訳してくれるのを待つより、自分が英語を学ぶ方が早い、というケースもどんどん増えていくのではないか。

それは、完全な機械翻訳の実用化のスピードよりも、いまのところ早そうに感じる。