常に明るく振る舞うその裏で、理想と現実のかい離を常に思い悩み続けてきたamachang。幾つもの伝説を持つ一風変わった渋谷系ライフハッカーに「New Generation Chronicle」のWeb2.0系スレッドを継承していただいた。
天野仁史――インターネット上ではamachangとして知られる彼は、1982年1月7日生まれの26歳。「才能も、知識も、常識もなかった。プログラミングやPCに出会っていなければ、確実にニート」そう語る彼は、座右の銘であるという「ただただ、がむしゃらにソフト開発をしていたい」を実践し続けた結果、この連載のマエストロスレッドでも取り上げた小飼弾氏に「Javascriptは彼に教わったようなもの」と言わしめるほどJavascriptの世界では知られた存在となった。どのブラウザでもDOM 3 XPathを利用可能にする「JavaScript-XPath」の開発が代表的だが、日々「IT戦記」でつづられる内容は、JavaScriptを扱う方には新たな発見が得られるものも少なくない。
決して優等生なタイプではない。常に明るく振る舞うその裏では、理想と現実の自分があまりにかい離していることを常に思い悩み続けてきた。斉藤のり子さんにはじまった「New Generation Chronicle」のWeb2.0系スレッドを引き継ぐのは、哲学する渋谷系ライフハッカー、amachangである。ここでは、amachangにお願いした100の質問の回答からピックアップしたものをお届けしよう。なお、文中に登場する「><」は、タグの閉じ忘れでも何でもなく、彼がよく使用する顔文字である。
―― 現在、ブラウザ、メーラー、テキストエディタはそれぞれどんなものを?
それぞれFirefox、Gmail、vimです。FirefoxのエクステンションはFirebugがなければもう生きていけません><
基本的に開発はvimとsvnを使って行い、JavaのときだけEclipseを利用するといった具合です。「vim」「Firefox」「Firebug」は僕にとって開発の3種の神器で、FirefoxとFirebugのコンボは自分にとってなくてはならないもの。
今はノートとデスクトップを1台ずつ使っていますが、PCは自作したことがないので、どちらも市販のものです。OSはWindows XPとMac OS Xで、スペックはそれぞれこんな感じ。
ノート | デスクトップ | |
---|---|---|
CPU | Pentium M 1.73GHz | デュアルコアXeon 3GHz×2 |
メモリ | 2Gバイト | 2Gバイト |
OS | Windows XP Professional | Mac OS X 10.4 |
―― はじめてPCに触れたころの思い出を。
小学校3年くらいのとき、父が持っていたPC-9801 LVでゲームをしていた覚えがあります。プログラミングを始めたのは時期的にはWindows 2000のころで、最初に触れた言語はC。学んだというよりは、「触れた」という程度。そもそも、得意な教科もないし、勉強もできない。大学を出なくとも、卒業時点である程度就職できればいいか、というくらいの軽い気持ちで石川工業高等専門学校に決めたくらいで、今のようにプログラミングの世界にどっぷりつかるとはまるで思わなかった。
JNI(Java Native Interface)を使って社内ライブラリにJavaのAPIを作っのが一番最初に作成したプログラム。Javascriptをまじめに勉強し始めたのは、最初の就職先からガイアックスに転職する間です。最初の就職先では給料が上がるというのでXMLマスターの資格を取りましたが、試験の問題でDOMについての問題があったことなどもあり、Javascriptをかろうじて理解できました。
といっても、最初のころはまさに知ったフリをしているような状態で、Javascriptを本当に理解できるようになったのは、Perlを知ってからでした。ガイアックスに入った後、必要に迫られてPerlに触れると、2つの言語で共通している部分、それぞれにしかない部分などがみえてきました。僕は、JavascriptとPerl、2つの言語を知ることで、言語ごとの差異を理解し、それが結果的にJavascriptを深く知ることにつながったのです。
今はもっぱらJavaScript。シンプルさに引かれています。関数がファーストクラスオブジェクトで、シンボルがすべてプロパティ名というところが分かりやすい。付け加えるなら、クラスよりプロトタイプが好きです。
―― 理解するのに苦労したコンピュータ関連のトピックは?
ダイナミックスコープの概念が難しかったです。あと、関数プログラムの構造化を行うモナド(monad)。こちらはいろいろ調べてはいるのですが、いまだに理解できていません。
―― 自分のコーディングにクセやこだわりはありますか?
シンボル(変数や関数の名前)をなるべく使わないことですかね。
―― キーボードなど入力デバイスのこだわりは?
特にありませんが、少し前まではトラックボールが好きでした。
―― できるだけキーボードで操作を済ませたいタイプですか?
済ませたいですねー>< シェルまんせーです><
―― 今興味がある知識や技術はありますか?
人工知能関連のトピックです。自分が興味のあるものをサジェストしてくれるようなAIをプログラミングしてみたい。
―― 今の自分が形成される上で最も影響があったと思う出来事は?
金沢の仲間たちの存在。
Copyright © ITmedia, Inc. All Rights Reserved.