小飼弾のアルファギークに逢いたい♥
#18 コミュニティーエンジン 森田 創(omo)
注目しているWebサービス
弾:注目しているWebサービスってなんかありますか?
森:全然なくてですね(笑)。
弾:そういうことはばんばん言ってください。Webつまんねえとか。
森:いや,そういうわけじゃないんですけど。結局,月の半分は断線活動(注6)なので,あんまりWebは使わないようにしているんですよ,あえて。(Web上では)暇つぶしは飽和してると思うんですよね,個人的に。おもしろいものもあるんでしょうけど,なんかいかに暇をうっかりつぶさず,がんばってちょっとめんどくさいけど,本読むとか。という
のがあって,断線してるんです。弾:本読むのめんどくさいんだ。僕は一番楽なんですけど。
森:あー,それはすばらしいですけどね。
弾:風邪ひくと,普段はうっとうしくないものも,急にうっとうしくなったりするじゃないですか。本を読むというのは,かなり最後までうっとうしくないんですよ。
森:すげえなあ。
弾:39度5分を超えない限りは本を読むというのは残ってるんで。
森:それはギフトですよ。
弾:そうなんだ。そういうとらえ方をしたことがなかった。
森:何を抵抗なくできるかがその人のギフトだと思うんです。
弾:良い言葉ですね。だとすると,ギフトって本人には絶対わからないもの。
森:それはほんとに思うんですよ。僕の友達で,すごいプログラマがいて,ペイントソフトを作ってる人なんですよ。趣味で。彼は2年位前に「作る」って宣言して,ライバルはPhotoshopだって。特定用途に限れば勝つっていう話なんですけど,なんか無理そうじゃないですか,普通。そもそも趣味のコードなんですよ,飽きますよね。ちょっとめんどくさいことがあったらすぐ挫けるとか。というのはお金のプレッシャーとかないので,普通,挫けるっていうのが趣味プログラマの最大の敵なわけです。で,彼は2年くらい普通に続けていて。2年間,そのコードをずっといじってるんですよ。それで最近1.0をリリースして。
弾:すごーい。
森:1.0って一区切りになるじゃないですか。一区切りして違うことやるとか旅行行くとかするのかなって思ってたら,なんか翌日から普通に機能追加を始めていて,全然区切りなんてついてないという。続けるのが平気なタイプなんですよね,あるコードベースをいじることについて。彼はWebは苦手で,Webだとなんかいろいろ組み合わせますよね。Apacheをインストールしたり,設定ファイル書いたりとか,そういうのはほんとつらいらしくて,無理って言うんですけど,そのペイントソフトは延々と作ってて,普通にできがいい。
弾:すばらしい集中力ですね。
- 注6)
- 森田さんが自身のブログ「steps to phantasien」で展開している活動。
プログラミング力の鍛え方
弾:プログラミングの力を鍛えるにはどうしたらよいでしょう?
森:自分が聞きたいですよ。
弾:ねえ(笑)。ぼくも聞きたい。
森:コードゴルフ(注7)とかをやってる人を見ると,もしかしたらあれは鍛えられるのかなと淡い期待を抱いたりしますけど。普段のプログラムってやっぱりトリビアル(とるにたりない・瑣末)じゃないですか。ああいうプログラミングコンテスト系ってたまにちょっとやってみると,現実的には絶対こういうもの使わないよっていうのを集中的に集めた,トリビアルじゃないものの集合ですよね。
弾:確かにちょっとまだプロコードゴルファーって食えないしね(笑)。
森:ゴルファーまでいかなくてもトップコーダー級の人っていうのは仕事で活躍してるんじゃないかなあって気はしてるんですけど。最近,「Hack the Cell 2009」っていうPS3のCellのチップのチューニングのコンテスト(注8)やってるのを見てて,全然わけわかんないんですよね,なんで速くなるのか。ああいうのとトップコーダーとかよくわからない複雑なものを解くっていうのは近い気がしていて,ああいう人たちはプログラミングの能力を鍛えてる気がしますね。やってないんで憶測ですけど。
弾:ひたすら書く,比べるなのかもしれないですけどね。
森:食わなきゃダイエットできるとか毎日走ればやせるとかそれに近いかも。
弾:それに近いですよね。
森:やればできるのはわかってるけど,できやしないさっていう。人間そんなに根性ないさっていうのはありますよね。
弾:根性は確かにギフトかもしれないですね。
- 注7)
- より少ないバイト数で設定された課題をクリアするもの。
- 注8)
- Cellはソニーの家庭用ゲーム機PlayStation 3などに搭載されているマルチコアCPU。コンテストでは,課題プログラムをCellに移植し,その実行速度を競う。http://cell.fixstars.com/challenge/
優れたエンジニアとは
弾:優れたエンジニアとは?
森:「ソフトウェアの名前」の「なんとかさん」ていうのはいいと思うんですよね。逆はたぶんダメで,「なんとかさん」の「ソフト」っていうのは口だけのほうが勝ってますよね。Jcode.pmとかEncode.pmのdankogaiっていう順番はいいと思うんですよね,逆じゃないと思うんですよ。
弾:逆じゃないですね。やっぱりプロダクトで評価するべきだと思います。誰が作ったじゃなくて,何を作ったかで評価するべきだと思います。
森:ブランドとかで,どこの会社が作ったとかで買う人はいると思うんですけど…。
弾:作ったでも作らせたでもいいんですけど,「AppleのJobs」であって「JobsのApple」になっちゃうとやばい。やばくなってるときというのはたいてい「JobsのApple」になってるときで。
森:そうですね。
読者に一言
弾:読者に向けて一言メッセージを。
森:Web以外のことをすると,Webのすばらしさがわかるんじゃないかなと思います。
弾:良い答えですね。ぼくもそう思う。
森:ネットゲームとか書いてると,Webってよくできてるなと思うんですよね。できないことも含めてよくできてて。プッシュとかできないじゃないですか。
弾:何がいいってステートレスなところ。
森:それですよね。それがどういうことかっていうのは,Web開発者の人にはステートレスじゃない状態は想像つかないと思うんですけど,普通のコネクション持ってやってると本当に面倒くさくてしょうがない。
弾:Web以前はそういうのがデフォルトだったんですよ。SMTPだって何回通信するんだか,HELOでしょうMAIL FROMでしょ,SEND TOでしょ,DATAでしょ,少なくとも4往復するわけですよ。
森:ステート遷移図とか書かないといけないじゃないですか。Webなんて関数呼ぶのと一緒で,CALLで終わり。すばらしいですよね。Webの人には当たり前なことかもしれないですが,いかにほかがクソかっていうのをぜひ知っていただきたい。
弾:くやしかったらFTPサーバ書いてみやがれて,ホントあれは地獄(笑)。涙が出てくる,あれはほんと。


