CodeIQ MAGAZINECodeIQ MAGAZINE

美しいコードに触れたとき、涙があふれ、アメリカに行かなければと思った ──中島聡流プログラミングの原点 #OpenGL

2014.02.05 Category:【連載】ギークたちの『仕事の流儀』 Tag: ,

  • 21
  • このエントリーをはてなブックマークに追加

シアトルと東京に拠点を置き日米を往復しながらプログラミングを続ける、UIEvolutionの中島聡氏。未知の技術への飽くなき好奇心と、それを短期間でモノにするための驚異的な集中力は、50歳を過ぎた今も決して衰えることはない。

美しいコードを紡ぎ出す秘訣は何か、優れたエンジニアを見出すコツは何か。プログラム談義はまだまだ続く──。
by 馬場美由紀 (CodeIQ中の人)

仕様書を書いているだけでは、絶対にアーキテクトにはなれない

──中島さんは、MicrosoftでWindows95などのソフトウェア・アーキテクトとして活躍されていた方ですが、アーキテクトの資質や条件については、どうお考えですか。

アーキテクトというと、机上で考えるだけの人というイメージがあるがそうではないんです。最低必要条件は自分一人でコードを書けること。これを分かっていない人が多すぎます。

一人でプロトタイプをつくり、つくっては壊し、そのアーキテクチャが正しいかどうかを検証し、そしていい設計にたどり着く。そこまでは一人でやるべきです。ある程度、骨組みができた段階で初めてチームを呼び込む。

それができないとアーキテクトとは言えないと思いますね。ソフトウェアの設計は決して紙の上だけでは良い物は作れない。紙に仕様書を書いて、それを下請けに出している人は絶対良いアーキテクトにはなれない。

──そのように一人で書いたコードも、上手なものと下手なものがあります。中島さんにとって優れたコードとはどのようなものですか?

シンプルで読みやすいもの。だらだらではなく、コンパクト。一目で何をやろうとしているかどうかがわかる──それに尽きますね。たしか作家のマーク・トウェインが「短い文章のほうが書くのに時間がかかる」って言ってたけれど、コードも短いものほど難しいのはたしかです。

優れたコードというのは、それを見たとき、ああ、こうすべきだったんだ。こうやるに決まっている。これ以外にない、とストンと腑に落ちるもの。俺はなんで気づかなかったんだろうと、涙が出ることさえあります。そこまでたどり着いたプログラムは美しい。

──その涙は悔し涙なのかもしれませんね。中島さんにとって、涙が出るほど美しかった最初のプログラムは何でしょうか。

Windowsの日本語化を日本のマイクロソフトでやっていたとき、そのころはGPUがなかったから、グラフィックの処理をCPUでやるしかなかった。それでGDIというモジュールを米国本社の誰かが書いたんですが、あれは美しかったですね。

道具としてのコンピュータをどう使いこなすか、ヒントやアイデアが短いコードに一杯つまっていた。自分もこういうものを書けるようになろうと思った。こういう人が書ける人たちと、コンピュータの本場で一緒に仕事をしたくなった。それが渡米した動機なんです。

最近はオープンソースにもいいものがあります。例えば、jQueryは僕がMicrosoftの外に出てから、一番美しいと思ったコードですね。

ベンチャーを始めるのなら、最初から世界を相手にせよ

──前回は日本のソフトウェアがアメリカになかなか勝てない理由について伺いましたが、企業の問題以前に学校教育や文化風土の問題もありますね。

僕が日本人文化で一番嫌いなのが「空気を読め」というやつなんですよ。この前大企業の入社風景をテレビで見ていたら女子のスカートが、その丈の長さまでぴったり同じというので驚きました。

入社式にはそういう格好をすべしという情報がネットにあって、みなそれに倣う。周囲の空気を読んで、自分一人が目立ちたくない。こういう文化がある限り、イノベーションなんて無理ですよ。

──それでも、日本の若いエンジニアへの期待感はおありでしょう。

それはありますよ。最近はエンジニアの勉強会なんか盛んですしね。大きな会社を辞めて起業する人も増えてきている。ただ、僕が彼らに期待することは、やはり、日本という狭い分野にとらわれずに事を起こしてほしいということ。

日本にいると、どんな話をするにしても「日本は……日本では……」というフレーズを枕詞のように使うけれど、アメリカではめったにそういう言い方はしないですね。そもそもアメリカの企業はGoogleでもなんでも、自分たちが「アメリカの」企業だという発想がないですしね。最初からグローバルなビジネスを意識している。それが当たり前だという考えなんです。

日本のネット企業でも、ミクシイは実にもったいなかったと思う。成長期に日本で上場したから小さくまとまってしまった。アメリカのベンチャーキャピタルから調達し、世界市場を獲りにいかなければならなかった。それだけのユニークなサービスなんですから。

つまりベンチャー企業を始めるのなら、最初から世界を相手にせよ、というのが僕からのアドバイス。幸い、インターネットは世界に一つ、世界同一市場であるというのは、この世界に身を置く人にとっては利点ですから。

──中島さんがまずアメリカで起業されたのも、そういう理由からですか。

株式の発行や分割の方法が簡単、というかビジネスライクにできているんですね。どんなに実績のないスタートアップでも、買い手がつけば高く売れる。会社の売買なんて市場で決めればいいという考え方。日本のようにそこに介在する法規制が少ない。そのことが気に入りました。

そもそも日本の社会には、裏社会というほどではないけれど、ゆるいマフィアのようなものがあって、一流大学、官公庁、上場企業がお互いに補完し合っている。大企業が潰れそうになるとすごい神経質になるけれど、中小企業の倒産には無関心でなんの救済策もない。これでベンチャー育成なんて言われても、ちゃんちゃらおかしいですよ。

エレガントに答えを引き出す「100倍力」のプログラマはいないか

──なるほど。それでもUIEvolutionには優秀な人材が集まってくるようですね。

前回も200人応募して来たエンジニアの中から一人を選びましたが、採用のハードルは高いですよ。うちのエンジニアが出題してプログラムを書かせる。僕も、その入社試験を通して、いかに論理的に、システィマティックにモノを考えられるかを見定めるようにしています。

例えば、これは僕のブログの「ビル・ゲイツの面接試験」というエントリーに書いた話ですけれど、8個の金貨の真贋を、天秤を使って見つけ出す「金貨クイズ」。ビットという情報量を考える上でも重要な問題ですが、その解答の仕方にその人の力量を見て取ることができます。天秤を一度使ったときの情報量は、一見すると1bitなんだけれど、正確にいうと1bitではない。そこに気づけるかどうかですね。

解答のエレガントさ、シンプルさは、プログラマとしてのプロダクティビティに如実に影響します。プログラマというのは実に人によって生産性の差があって、その差は100倍以上だと僕は思っているから、できるなら「100倍」の力を持つ人を選びたいものです。

──100倍というのは知識量のことですか。

いや、現在の知識量よりも、これから学んでいくスピード、吸収力のほうが大切です。例えば、Javaのプロジェクトがあるからといって、Javaエンジニアしか採用しないわけではない。Javaを10年やっている人よりも、「Java知りませんが、これから2週間で勉強しますよ」という人のほうが、実は役に立つということがあるんです。

──伸びしろのある人ということですね。

この業界で求められるのは、常に伸びしろ。どんどん新しい技術が出てきて、これ勉強しなくちゃと思って先延ばしにしているうちに時代遅れになってしまう。たしかに常にキャッチアップするためには、体力も気力も必要。だからこそ、この業界は面白いと思うんです。僕だってWindowsのプログラミングでは誰にも負けなかったけど、それにしがみついているだけなら今はないわけですからね。

前回の記事を読む

(執筆:広重隆樹/撮影:刑部友康)

【中島聡さんインタビュー記事】
ビデオ・フィルター言語「Video Shader Script」を開発者・中島聡氏が語る!
未明の2時間半。一心不乱にコードに集中 ──中島聡流プログラミングの流儀
【ウチに来ない?の問題】
ぐちゃぐちゃになったログファイルからフルーツの数を数えてください
【結城 浩さんからのアルゴリズムの問題】
王女様の求める宝石パターンが何日目に登場するのかを見つけよう!

中島聡氏(なかじま・さとし)
1960年、東京生まれ、早稲田大学大学院理工学研究科卒業。UIEvolution Inc.のファウンダー。 マイクロソフトでWindows95、Windows98、Internet Explorer 3.0/4.0のチーフアーキテクトなどを務めた。現在シアトル在住。有料メルマガ「週刊 Life is beautiful」でも活躍。
UIEvolution: UIEvolution
ブログ: Life is beautiful

CodeIQコード銀行にあなたのコードを預けてみませんか?

  • CodeIQコード銀行ではあなたのコードを財産と考えます。
  • お預かりいただいたコードは、CodeIQコード銀行がしっかり評価し、フィードバックいたします。
  • 当コード銀行にお預けいただいたコードは、企業がみてスカウトをかける可能性があります。
  • 転職したい方や将来転職することを考えている方で、今の自分のスキルレベルを知りたい方はぜひ挑戦してみてください。
  • 企業からスカウトがきたら困る人は挑戦しないでください。

興味を持った方はこちらからチャレンジを!

  • 21
  • このエントリーをはてなブックマークに追加

■関連記事

中島聡氏が次世代スマートカー向け新事業をスタート!ユーザーに新しいカーライフ体験を提供する... 次世代スマートカーに求められる究極の“おもてなし” インターネットやスマートフォン(以下、スマホ)の普及はクルマの車載環境を大きく変えつつある。スマホと連動したカーナビ、カーラジオなどが登場する一方で、「iPhoneとGoogleマップがあれば、カーナビは要らない」とまで言い切るドライバーもいる。...
中島聡氏が米シアトルで【次世代スマートカー向け新規開発に携わる】ITエンジニアを募集中!... インフォテインメントのプラットフォーム構築で高い実績 前編でも紹介したとおり、もともとUIEvolutionは、インフォテインメント・プラットフォームの開発実績を豊富に持つ企業。まずサーバーエンジン技術としては、GUI特化のシンクライアント・ソリューション「UIEngine」がある。 GUIを生...
未明の2時間半。一心不乱にコードに集中 ──中島聡流プログラミングの流儀 #OpenGL... 未明に起きて仕事。昼寝は「18分間」と決めている ──現在はアメリカを拠点に活動されていますが、最近の中島さんの関心事は何ですか? いま「VideoShader」というiPhoneアプリを書いています。OpenGLを活用したビデオフィルター開発のための開発環境。アプリの中のプリセットを使ってビデ...

今週のPickUPレポート

新着記事

週間ランキング

CodeIQとは

CodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。

CodeIQご利用にあたって
関連サイト
codeiq

リクルートグループサイトへ