開拓者から改革者へ ネタで未来を切り開く男 大沢和宏New Generation Chronicle(2/6 ページ)

» 2008年06月16日 00時00分 公開
[西尾泰三,ITmedia]

初心者でも近代的なPerl使いに

Yappo氏 「なぜか口が半開きな人に思われがち」と笑うYappo氏

 頭に浮かんだネタを実際に世に送り出すために、大沢氏はコードを操る。BasicからCGIとしてのPerl、PHPと操る言語を変えてきたが、もっとも頼りになる相棒として選んだのは、Perlだった。


―― はじめてPCやプログラミング言語に触れたのはいつごろですか?

幼稚園か小学校1年生のころで、たぶん近所のジャスコのMSXとかじゃないですかね。ワープロとかと同じノリで店頭に並んでいて、それで遊んでいたのだけは覚えてます。小学校低学年当時は、こどもの城でMSX使いたい放題コーナーがあったので、そこでBasicを打ち込んでました。もちろん家にはPCとかないので、週末遊びたいゲームを自宅で作文用紙に手書きしていましたね。脳内インタプリタ、脳内デバッガをフル活用して本番に臨んでいました。

 高校のころポケコンを買って、授業がつまらないからアセンブラでいろいろ書いていたりしたのですが、しまいには学校に行かなくなり、神保町でコンピューター書籍読みあさってました

―― 最近メインで使っている言語は? なぜその言語に引かれたのですか?

Perlですね。Mooseを使えばキッチリとオブジェクトしたコードが書けるのに、自重しなくなれば文字リテラル無視するコードまで書けてしまう変態さを持っているところはすばらしいです。

 CGIとしてのPerlから入ったのですが、最初のころはPerlの使い方もよく分からないし、ラクダ本読んでも面白そうなのに使えない機能(dump)とかで難しいな……Cとかで書くのと変わらないじゃん。と間違った方向に進んでCでCGIを書く生活をしていたころにPHPに出会いました。

 そのころ、Perlかいわいでは「なんとか弾」とかいうアグレッシブそうな人が「Jcode.pm作ったJcode.pm作った」とかどっかのMLでアナウンスしていたりするのですが、僕はストレスを感じながらもPHPを使い続けていました。4年くらいPHPを隅々まで使おうとしたのですが絶望し、「やはり別の言語を使った方がいいんじゃないだろうか」と考え、またPerlに戻ってきたという感じです。少し前に、難しい難しいとか言われていたHaskellに興味があり、本買ったりしてみたのですけど、難しくないことが分かった時点で飽きちゃいました。Haskellのコードは一文字も書いていないけど飽きました。

 Perlに引かれた理由は、CPANと人。この2つはセットですね。いまだにCGI的なところからPerlに入ってくる人は、jcode.plとかを使っちゃったりしてる(jcode.pl作者の人すら絶対に使うべきではないというくらい古いもの)ので、そのあたりの初心者をどう近代的なPerl使いにするかというところに焦点を当ててPerl-users.jpを作り始めたりしてます。

 今、「Perl」でググると、1位がWikipediaで、2位がkent-web.comのPerl基礎入門といったように、旧来からのコンテンツが上位にあって、初心者がモダンなPerlの書き方を探すのが少しめんどくさい状況にあります。例えば、PerlのOpen関数で、引数を3個使うのがモダンな書き方なのにもかかわらず、そういった知識を伝えるコンテンツが集約されていないので、いまだに2個しか使わないような状況にあるのです。これを変えていきたいですね。*-users.jpとかいって乱立されまくってDNBKしてますが将来的に結果オーライとなるでしょう(JPRSにごちそうしてもらいたい気分だけど)。

―― perlフレームワークである「Soozy」誕生の背景と、Soozyを使うメリットを3つ挙げてみてください。

その当時(2005年)のイケテルPerlコードを勉強したくて、Sledgeからコピペしたりして作ったのが始まりですね。その後はCatalystからコードを流用したりとかしてバージョンアップしています。

 メリットは、自分で作ってるので手足のように使える、Catalystとかの嫌な部分が体感できた。そんな感じです。やっぱりフレームワークは使うものじゃなくて作るものだと思うので、そろそろSoozyの次の別のフレームワークを作ろうとしています。

―― 今興味がある知識や技術はありますか?

分散処理全般でしょうか。これは数年前から変わっていません。PerlでMapReduce実装しようとしていたのですが、naoyaさんが先に作ってしまってDNBKしてるところです。

―― 自分のコーディングにクセやこだわりはありますか?

CPANモジュール作るときのクセは冗長(公共心的な意味で)。こだわりは特にないですね。何でも吸収してみて太りすぎたら、必要な物だけ残して次世代の仕組みを作るのの繰り返し。

―― インタプリタ言語でプログラミングのニーズはどの程度満たせると思いますか?

だいたいのプログラミングニーズは満たせるでしょうが、パフォーマンス的なものやら実用的なニーズの話になると厳しくなるでしょう。Perlで書かれたOS(実在する)を実務で使えますか? と。インタプリタ言語を超最適化してコンパイルできる仕組みがもっと増えれば状況は一変するでしょうね。

―― これを読んでおくと幸せになれるという開発者必携の一冊を教えてください

Dan the Houseの1単位がこちらです。ご参考まで

デカイ本屋さんのコンピュータ関連書籍コーナーに行って隅から隅までどういう本があるかを見て、気に入った本を買えるだけ買ってください。自分にとって良い本を探すのにAmazonなんて使わないでください。真に自分の血肉になる知識をつけてくれるものを選ぶときは、実物を手に取って選ぶべきです。いかにネットで買えて便利だからといって通販するべきではありません。結果的に幸せになれません。

 近所にでかい本屋がない人も一度でいいのでデカイ本屋へ行ってみてください。小飼弾邸2個分(これをDan the House x 2と表記する)くらいの広さのコンピュータ関連書籍コーナーだとベストです。

―― 開発系の雑誌で購読してるものはありますか? 雑誌にはどんなコンテンツを期待したいですか?

SoftwareDesignとWeb+DB PRESS。東京IT新聞も速報度の面でがんばっているなと思います。ぶっちゃけ雑誌媒体というのはWebの情報に比べると鮮度が悪いわけですが、紙には紙の良さがあってじっくりと読むのには向いていますよね。言語は問わず(商業的な取捨選択はあるけど)今風のモダンでcoolなコードの書き方などをメインにした「プログラム専門誌」が欲しいですね。月刊で。

―― 英語の読み書きは簡単?

excite先生さえいれば何の心配も要りません。ircなどでは、たまに怒とうのような質問を英語でされますが、そういったときは米国人になったつもりで無心に英語を書いているとたいていコミュニケーションが図れます。変なこと書いてると、突っ込みやら添削やら入れて頂けるので助かっています。英語に対して日本語で受け答えをしてやり取りが成立するのも珍しくないので面白いですよ。

―― コードを書きたくて書いてますか? それとも自分の欲求を満たす方法としてコードを書いていますか?

yesでもありnoでもある。コードを書きたくないからコードを書くのです。コードには書いた人の人生がすべて出ていると思います。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ