ソフトウェアエンジニアの英語力
「日本語が亡びるとき」...という本があります。この本で、著者は言語を以下のカテゴリーに分けています。
- 現地語: ひとつの言語圏で日常的に用いられている言語。
- 普遍語: ひとつの文化圏で普遍的に用いられている言語。
- 国語: 近代国家の誕生と共に発達した「ひとつの国において現地語が普遍語に昇格した」言語。
前に書いた書評から引用すると、
例えば、中世/近世のヨーロッパではそれぞれの地方で使われている現地語(ヨーロッパの各種言語)とは独立して聖職者や学者達によって「読まれるべき言葉」を残すために使われていた普遍語(ラテン語)が存在しており、この「普遍語」を使いこなすのは限られたエリート達だけであり、彼らは二重言語者であったということができる。この構造は中華文化圏でも同様で、漢文という普遍語にアクセスできる文化人は日本においても常に一部の上流階級や僧侶に限定されていた。
この状況が崩れたのは近代国家の誕生に伴う「国語」の発生で、ひとつの国家の中で「読まれるべき言葉」が蓄積・活用されるに伴って「普遍語」の役割の一部を「国語」がまかなうようになった。
さて、2017年(あるいはもっと前から)の現実として「インターネット文化圏では英語が普遍語としての地位を確立している」と言えると思います。何かしらのプログラミング言語やフレームワーク、それにサービスを使うにあたって、一次情報がほとんどの場合において英語のみに集約されており、かつソフトウェア開発に関するコミュニティーレベルでのコミュニケーション(RFC、StackOverflow, etc)も英語によるものが支配的になっている現状を考えると、中世/近世的な言語構造に近い状態にあると言えるのではないかと個人的には思います。
例えば、2016年に話題になった記事で、こんなのがありました。
英語ができれば優れたソフトウェア開発ができる、とは思いませんが、英語の読解力やコミュニケーションスキルによってインターネット上のソフトウェア開発に関する情報へのアクセシビリティが飛躍的に向上することを考えると、日本語の情報リソースに限定してソフトウェア開発をするよりも、ソフトウェア開発の生産性が著しく向上する可能性は大いにあるのかな、と感じます。
と同時に、日本語でのソフトウェア開発に関する情報も(一定のディレイを伴って)、多くの場合において十分と言えるレベルに豊富であり、多くの本が翻訳されたり、リファレンスやチュートリアルが日本語化され続ける限り、一定レベルの情報へのアクセシビリティは確保され続けるのではないかと思います。
**
日本の外に目を移して非英語圏のヨーロッパ人の同僚達の話を聴く限り、彼らはインターネットやソフトウェア開発に触れ始めた当初から、母国語での情報収集やコミュニケーションに期待できなかったため、ネットやソフトウェアに関しては英語を使わざるを得なかった…という現状が見えてきます。そもそもインターネット・ソフトウェア技術の技術ターム(例:TCP=Transmission Control Protocol)の大半は英語で、母国語でコミュニケーションをするにしてもいちいち母国語に訳したものを使うよりも、英語の呼称をそのまま使ったほうがはるかに効率的で、しかも他の技術タームとの統一性があります。
実は、これは自分が高校時代に英語圏の高校に転入して、はじめてまともに数学や物理と向き合った時に感じたことでもあります。日本語に翻訳された単語はどこかしら苦しさが残っている印象があり、日本語で何かを学んでもアウトプットが英語である限り再翻訳が必要になると同時に、他の単語との繋がりも悪く、(持ってきていた)日本語の教科書は早々に諦める必要がありました。
例えばですが、v=atという式があったとして、これを
v = Velocity
a = Acceleration
t = Time
と覚えられるのと、
v = 速度
a = 加速度
t = 時間
として覚えるのでいうと、前者の方にメリットがあるように感じます。これらの基本的な概念には直感的でわかり易い日本語訳が存在しますが、その他多くの単語と絡んでより複雑な概念の理解を進めていった時に、言語同士の繋がりそのものから直接的に意味を理解できることには圧倒的なメリットがあります。
**
「日本語が亡びるとき」の言語カテゴリーにおける普遍語を流暢に操るインターネットエリート層とも言える(実際、ソフトウェアエンジニアとして特別に優秀)人たちですが、こういった層が母国語コミュニケーションで技術の話をしなくなることは、その言語を話す人たちの普遍語学習のモチベーションを高める効果があり、ますます英語でのコミュニケーションが興隆する、というサイクルが出来上がっているように思います。
外資系企業のソフトウェアエンジニアの、日々の業務での英語コミュニケーションという観点からみると、社内のドキュメンテーションは全て英語で、コードレビューも当然ながら全面的に英語だったりするので、非ネイティブだろうと何だろうと、技術に関する議論で英語が使えないのは論外という風潮はあります。それと同時に、ある程度の技術レベルの持ち主で、義務教育レベルの英語を学んでいる人であれば、簡潔に伝えるべきことだけを(多少間違えていても)意味が通じるレベルで伝えれば、内容がしっかりしている限り全く問題はない、ということも確かだと思います。
そういう意味で、ソフトウェアエンジニアの世界というのは、すでに多くの技術タームが英語化しているのと同時に、(ネイティブ・ブロークン含めた)英語でのコミュニケーションが標準化しているので、仕事を英語を使う環境としては敷居は低いのではないか、と個人的には思います。