吠えるだけじゃなくて、行動しなくちゃ──IT戦士・amachang田口元の「ひとりで作るネットサービス」探訪

このままじゃだめだ……という思い。エンジニアとしての軸を固めるために試行錯誤を繰り返す。ブログは断定口調で書く。そのためには、しっかりと調べ、勉強する。仕事の愚痴を言うのではなく、行動を──。そこから始まったJavaScriptとAjaxのスペシャリストの背景とは。

» 2007年12月21日 01時30分 公開
[田口元,ITmedia]

 ひとりで作るネットサービス──第20回目は「IT戦記」のブログで知られるamachangこと天野仁史さん(25)にお話を伺った。JavaScriptとCSSを活用してブラウザだけで動くプレゼンテーション・ツールや、主要なブラウザでXpathが使えるようにする技術などを1人で開発するamachang。その背景にはどういった苦労や悩みがあったのだろうか。

「今のamachangは吠えているだけだよね」で変わる

 「今のamachangは吠えているだけだよね。君の言っている理想に近づきたかったら、もっと人を巻き込まなくちゃだめだよ」。当時のamachangはmixi日記に、仕事の愚痴を垂れ流していた。自分のやりたいことが分からない、何を勉強していいか分からない、上司とうまくいかない……。そうした愚痴を書き込んでいたら、エンジニア仲間に冒頭のように言われた。ショックだった。

 もっと人に会わなくちゃだめだ。愚痴を言っているばかりじゃなくて、もっと自分が変わらないと。そう思ったamachangはmixiのコミュニティ機能などを使い、オフ会を開きまくった。

 「石川県出身の人、会いませんか?」「渋谷で働くエンジニアで呑み会しませんか?」

 数カ月で200人を越える人と会った。「具体的に何をどうしたいいかは分かりませんでしたが、人と会うことが自分の強みにつながるはず、という確信があったのです」。amachangは当時の心境をそう話す。

自分の力で会社を変えることはできない。だったら外に出よう

 amachangは石川県出身。学校は工業系で、Cなどのプログラミング言語も教わったが、ほとんど勉強しなかった。遊びすぎて留年もした。ただ、友達と遊んでいるときでも「このままじゃダメだよな、親のすねをかじって生きていくわけにはいかないし」と、漠然とした焦りを感じていた。

 そのときに出会った遊び仲間とはとことん遊び、とことん語り合った。同じ学校の同級生ではなかった。出会ったきっかけは家出。「理由は覚えていないのですが、母親と喧嘩しちゃって。父親が帰ってくる前にとにかく出なくちゃ、と思って家を飛び出しました」。その後、友達の家を転々としているうちに「家出してきた面白い奴がいる」ということでいろいろな人と出会うことができた。とにかく喧嘩が強い奴、やたら賭け事が得意な奴。同じ学校にはいないタイプの人間だった。彼らと出会えたことがとにかくうれしかった。

 街に繰り出してナンパもしたし、バカなこともした。仲間の一人がある日、5万円でクルマを買ってきた。塗装は剥がれ落ちているし、廃車寸前のコンディションだったが、よくみんなでドライブに行った。ある日、集まったときにクルマの天井に自分の夢を書き合った。

 「僕は『とにかく俺はお金持ちになってやる!』と書きました。今思うとちょっと違うような気もしますが、ほかの人にできない、何かで一番になりたかったのだと思います」。amachangはそのときの思い出をそう振り返る。

 楽しかった遊びも長くは続かなかった。卒業して就職する奴、県外に出る奴。一人、また一人と仲間が新しい進路を選び始めた。「仲間もばらばらになったし、僕も金沢を出なくちゃ」。そう思ったamachangは東京の通信系開発会社に就職する。手がけたのはコールセンターなどのシステム開発。CやJavaを使ってプログラミングをする毎日だった。

 「この時期は何を勉強していいか分からなかった時期でした。たくさん勉強しましたし、資格もいくつか取ってみましたが、何1つカタチになりませんでした。自分はもっとできるはず、という思いだけが空回りしていました」。この会社には2年半勤めることになるが、このままじゃだめだ……という思いを抱き続ける。そうした焦りは会社への愚痴となり、mixi日記へ流れ込んでいった。

 そうした時期に出会ったのが、ネット上ではZIGOROuのハンドルネームで知られる凄腕エンジニアの山口さんだった。当時ガイアックスに勤めていた山口さんは、mixiでamachangを見つけたのだ。同じエンジニアとしてamachangの日記に共感し、コメントを残すようになった。しばらくコメントの交換が続いたあと、「ちょっと会いませんか」と山口さんはamachangを誘った。

 「amachangにはまだエンジニアとしての軸がないと思う。自分の軸をしっかり作ってから、その軸でしっかり立ちつつ、もう片足で自分が立てるところを広げていくといいと思うよ」。山口さんと会ったとき、そうアドバイスされた。そのとおりだと思った。何を自分の軸にするべきか……。自分の方向性を見失いつつあったamachangはとにかく人に会うことにした。そして、とにかく自分から行動を起こしていかないと何も変わらないということを学んだ。

 「自分で変えられるなら変える、変えられないなら外に飛び出す。そうしていかなくてはいけない、と感じるようになりました」。自分の力では今の会社を変えることはできない。だったら外に出よう。転職を考え始め、山口さんに誘われてガイアックスに入社する。2005年12月のことだった。

Ajaxを自分の軸に

 「amachang、何したい?」「そうですね、Ajaxとかやりたいですね」「そか、じゃ、それにしよう」。入社後に山口さんと交わした会話がきっかけで、JavaScriptにどっぷりとはまっていった。前職でXMLやDOMについての知識はあった。JavaScriptもちょっといじっていたので、当時注目されていたAjaxを自分の軸にしてみよう、と思ったのだ。

 そのころからamachangはブログをつけ始めた。最初は覚えたことをそのままメモしておくだけだった。そのうちJavaScriptやAjaxでできることをまとめるようになった。当時流行していた技術だけに周りの反響も大きかった。「IT戦記」というamachangのブログが業界内で知られるようになるまでそれほど時間はかからなかった。

 ガイアックスでは「散財.com」というコミュニティサイトの構築を手がけた。もちろんAjaxでインタフェースも作りこんでいった。はじめてのWebサイト構築の仕事だった。「とにかく何もかもが楽しかったです。リリース前などは辛かったですが、多くのユーザーに使ってもらえているという実感がとにかくうれしかったですね」

 JavaScriptという自分の軸を見つけたamachangは、もっとこの技術を追求したいと思うようになる。ガイアックスの仕事は楽しかったが、もっと技術の研究に時間を使いたい──そう思い、サイボウズ・ラボへの転職を考え始めた。サイボウズ・ラボには自分を引っ張ってくれた山口さんが数カ月前に転職していた。ラボでは自分のやりたいことができそうだった。思い切って履歴書を提出し、2007年6月に無事サイボウズ・ラボに入社した。

JavaScriptでプレゼンツール

 サイボウズ・ラボで現在研究しているのは、JavaScriptとCSSを使った新しいプレゼンテーション・ツール。ブラウザだけでPowerPointのようなプレゼンテーションを作ることができる。

 「PowerPointは持っていないし、買うつもりもない」ときっぱり主張するamachangは、技術系のイベントではいつもブラウザだけでプレゼンをしてきた。イベントごとにプレゼンを作りこむうちに、「きちんとした汎用的なツールにすればみんなに使ってもらえるのではないか」と思いついた。このツールはオープンソースで公開されており、多くのエンジニアに利用されている。

 このプレゼンツールを作る際、必要に迫られて作ったのがJavaScript-XPathだ。

 XPathはこのプレゼンツールをシンプルに作るのに必須の技術だが、Internet Explorerでは使うことができない。そこでどのブラウザでも、JavaScriptからHTMLの特定の要素をピンポイントで抜き出せるようにライブラリとしてJavaScript-XPathを作り始めたのだ。

 そう思いついて作り始めたJavaScript-XPathだったが、簡単にできるものではなかった。「最初に作ったバージョンではCSSのセレクタを使った場合に比べて1千倍遅くて使い物になりませんでした。泥臭い高速化やアルゴリズムの改良を経てなんとかカタチになりました」。JavaScript-XPath開発時の苦労をamachangはそう語る。

 今はプレゼンツールの更なる改良に余念がない。「どうしたらきれいなコードでプレゼンを記述できるか、その仕様を日々考えています。自分の頭をいったん白紙にして、どういうプレゼンをどう記述すべきかを紙に書きまくる毎日です」

ブログは断定調で──そのために勉強する

 日々、技術の研究に没頭するamachang。そのためのツールとしてブログは欠かせない。「ブログの良いところは書いているうちに自分が知らないことがはっきりしてくることです。例えば『XPathはXMLのためにできた仕様だ』という、たったそれだけのことを断言するためには調べなくてはいけないことが山ほどあります。調べては書いて、書くために調べます。言葉にするといままで自分の中でもやもやしていたことがはっきりしてきます」

 「ブログは断言口調できっちり書きたい」と話すamachang。その言葉の裏にはブログ炎上の経験があった。「以前、JavaScriptのsetTimeoutについてブログに書いたら『お前は全然分かっていない』といった批判を受けました。人の言うことを気にしてしまう性質なので辛かったですね」

 批判を受けたamachangはカチンときて、「これはコードで自分の正しさを証明するしかない」と思い立つ。Firefoxの内部コードまで引っ張り出して調べ上げた。だが、結局は自分が間違っていたことを知った。「ブログで批判を受けたのは辛い経験でしたが、勉強になりました」

 炎上や批判が怖いからといってブログをやめる、ということはない。「自分から始めたストーリーは追いやすいですよね。その分、勉強になります」。amachangはそう教えてくれた。

 よく使っているのはTwitter。人に会いまくった時期があったこともあり、amachangには2000名を越えるフォロワーがいる。「Twitterでちょっとした疑問をつぶやくと、大勢の人がそれにコメントしてくれます。自分が言っていることが正しいのか、正しくないのか。常識なのか、そうではないのか。失礼にあたるのか、そうでないのか。そうしたことをすぐに教えてくれる仲間がいるのは本当にうれしいことです」

 数年後の具体的な目標はないが、漠然と米国に行ってみたいと考えている。2007年11月にJavaScriptの仕様を考えているJohn Resig氏に会って感銘を受けた。英語はできなかったので、JavaScriptで筆談したらなんとか通じた。「本場はすごいな、と思いました。そこに行ってみたいと思っています」

 吠えるだけじゃなくて、行動しなくちゃ……。そう決意して走り続けてきたamachang。彼が作り上げるものが世界中の人を巻き込む日が来るのかもしれない。

関連キーワード

JavaScript | プレゼンテーション | Ajax | IT戦士


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ