shioyama 曰く、
東京住まいの外国人プログラマーが日本人のプログラミング世界について記事を書いて (Jawaad Mahmood 氏のブログ記事)、その記事が Hacker News で取り上げられて、話題になった。
"My hypothesis is that a lot of Japanese companies produce little new because they have people solving solved problems over and over again."
以下、拙訳。(*) がついているところは訳していて意味がくみ取れなかった部分なのでコメント頂ければ幸い。誰か Hacker News へのコメントも要約してくれると助かる。
昨日、コーヒーを飲みながらアール氏とアキバに関する話題やらボードゲームやビジネスについて話していた。まじめな話題としてはプログラミングについて、より正確には、なぜ日本企業は大量のコードを書きながらもまるで成長していないのか、についてである。端的に言えば、マネージメントに失敗してるんだという事が分かった。アウトプットを増大させるようなフレームワークを利用してコーディングする事に失敗している。
僕がよくある一般論 (日本人は良いコーダーとは言えず、日本人の仕事環境には多くのおしゃべりと少ない実務があること) について触れると、アール氏は彼が働いていた会社では優れたコードを量産していた事や、3 時間にわたるクソミーティングをプロジェクトマネージャーが対処していた事について触れた。公平を期すなら、僕もそうだった。じゃあ、何が問題なんだろう。
その問題に対する答えについて、最初のヒントは僕にとってもアール氏にとってもフレームワークだった。アール氏はとある会社で数週間、組み込みとかとは何の関係もない単純なシステムに表を加える仕事に従事していた。僕も Pinki を開発したり小さな検索とリスト表示をするウェブサイトを作るのに 1 年を費やしていた頭の痛い日々を思い出していた。
僕にとっての大きなヒントは富士通で、どうやってあの会社は自社製フィーチャーフォンのために Sybmian やその他ちゃちいモバイル OS での開発要員として数十人を確保し続けているのだろうか、ということだ。特にフィーチャーフォンについて言えば、端末ごとの違いは極めてささいなものだが、プログラマは古いソフトが新しい端末で動くよう低レベルプログラムにばかげた時間を割いている。彼らが終電前に帰るのを見かけるのはまれである (彼らは日本で最も優れたプログラマに属する。彼らには家族があって、そこまで仕事をする理由は残業代のためというわけでもない) 。
これらの例に共通するのは、企業は人々がずうずうしくも強大な力を奮う手段としてプログラミングを使おうとしないというところにある。富士通は未だに古くさい Symbian OS を使っている。この環境で開発を行うことはもはや苦痛であり、サポートやコミュニティも貧弱である (特に Android や Windows 7 における環境と比べて) 。僕はウェブサイトをフレームワークなしで構築するぐらいにアホだったし、数個の問題について車輪の再開発をしなければならなかった。アール氏の前の勤め先では適切な DB レイヤーすら持たないような日本語にしか対応していないゲットー (ガラパゴス) フレームワークを採用していた。
多くの日本企業はほとんど新しいプロダクトを作れないというのが僕の仮説だ。なぜなら日本企業では既に解かれた問題を何度も何度も解くための人材が揃っているからだ。きっと、多くの問題をコミュニティの誰かが解決してくれるような素晴らしいコミュニティに恵まれた新しいフレームワークを取り込む能力がないことに起因しているんだろう。
それに多分、言語の問題もある。数十億人の英語圏の人々がいて、その X % が良いプログラマとする。日本語圏の人々で 2 X % が良いプログラマだったとしても、日本語ネイティブなバージョンのコンピュータ言語を開発するのに必要とされる深い才能など持ってはいない。良くも悪くも人はフレームワークのサブセットに制約されていて、日本語しかしゃべれない上司に説明することができる(*)。その上司は多分リスクをひどくいやがるタイプで、最新のプログラム技法やショートカットにも精通していないだろう。上司が Excel をデータストアとして使っているような状況で (驚くべきことに日本ではよくあること) 、Python や Django を使った開発をすることをどうやったら了承してもらえるだろう。
世界中の weeaboos (= 日本大好き外国人) が「Ruby はどうなんだよ!」と叫んでいるのが聞こえるが、Ruby がまさにその証明のようなものだ。モルモン教徒の日本人 (注: 英語の読み書きができる、世界が注目する、非オタク、非ぼっちの習慣(*)) が素晴らしいフレームワークと合わさって世界中で名声を得た。日本人の優れた Rubyist たちがいることは素晴らしいが、Rubyist に Ruby の人気の責任があるわけではない。
他の説明の仕方もあるだろう。優れたソフトウェア開発のトレーニングに割く予算がないことだとか、裏取引による会社命令、オープンソースソフトウェアへの恐怖、間違った推定 (つまり、日本はあらゆる種類の world class code のソースである、とか(*)) とか。でもどれも僕にはピンとこない。
もし僕が正しいなら、解決方法は難しいことじゃない。日本人プログラマーに良いフレームワークとライブラリを教えてあげればいい。Google 翻訳に頼らずにすむような訓練をすればいい。それで改善されるはずだ。