gihyo.jpキーパーソンインタビュー~気になる“あの”人に逢ってきた!

#02 面白法人カヤック村瀬大輔氏に訊く―Perl開発の楽しさ・面白さ

この記事を読むのに必要な時間:およそ 4 分

連載第2回目は,湘南にオフィスを構える面白法人カヤックにて,「こえ部」を担当する傍ら,ラボチームBM11に所属し,オープンソースソフトウェア「Ark」「nim」などの開発を行うPerl Mongerである村瀬大輔氏(ネット上ではtypesterのほうが著名ですね)に会ってきました。

ちょうどgihyo.jpでの特集ついに出た!最新Perlフレームワーク「Ark」徹底解剖が一段落したタイミングで,Ark開発の裏側,さらに村瀬氏ご自身の開発に対するスタンス・考え方について迫りました。

聞き手:馮 富久(株式会社技術評論社,http://twitter.com/tomihisa

村瀬大輔氏。1981年2月生まれ。2004年9月株式会社カヤックに入社。カヤックでは自社サービス「こえ部」を担当する傍ら,ラボチームBM11に所属し「Ark」「kamaitachi」といったオープンソースプロダクトを開発。また「Shibuya.pm」「YAPC::Asia」にスピーカーとして参加するなど,Perlプログラマとして活躍の場を広げている。

村瀬大輔氏。

Arkお勧めポイント

Q:まず,連載でフォーカスした「Ark」について伺います。開発者である村瀬さんから見て,Arkのお勧めポイントを教えてください。

A:私はPerlを使った開発をしていて約2年ほどPerlフレームワークのCatalystを使っています。Catalystに対する印象は使いやすい一方でCGI環境では使えないという不満がありました。元々Arkを作ろうと思ったのは,その不満を解消したかったからです。

そのため,Arkの基本的な使い方はCatalystを踏襲していて,これまでCatalystを使っていたデベロッパであれば,新たに開発方法を身に付けることなく,すぐに開発を始められます。この点は,まずお勧めポイントの1つです。

また,CGIにこだわったのはWebアプリケーションのリソース占有に関する問題です。常駐型のWebアプリケーションの場合,システムリソースを占有し続けるというデメリットがありますが,CGIであればリクエストごとにリソースを占有する,つまりリクエストがないときにはリソースをまったく使わないという点で小規模なアプリケーションでは有効です。もちろん,Catalyst同様FastCGIやmod_perlなどもサポートしていますのでリクエスト数の多い実用的なWebアプリケーションを作成することもできます。

ですので,たとえば最初はCGIでサービスを開発しはじめ,その後アクセス数が増えてきたらFastCGIにスイッチするというようなことがアプリケーションのコード変更なしに行えるというのもお勧めポイントですね。

あとは,(オフラインの)ローカルで開発を進めることを想定している点もArkの特徴の1つです。

PerlでWebアプリを開発する方へのアドバイス

Q:村瀬さんは豊富なPerlアプリケーション開発の実績があると伺っています。これまでのご自身の経験から,PerlでWebアプリを開発する方へのアドバイスをいただけますか。

CPANに触れる

A:Perの魅力,それは何と言ってもCPANです。CPANには本当に豊富なPerlモジュールが集まっていて,自分が欲しいと思ったモジュールがほとんどあると言っても過言ではありません。それらを組み合わせることで,自分が考えている機能を実現できます。Perlでアプリケーションを開発する方は,ぜひCPANを活用してください。

CPANを活用する

CPANモジュールを検索できるサイトとして「The CPAN Search Site」があります。最初は,ここでいろいろなモジュールを探していくことをお勧めします。

CPANを見ているだけで,自分が何を作りたいかを見つけられることもあります。そして,組み合わせて見てください。そのとっかかりとして,Arkを活用してもらえたら嬉しいです。ArkでもいろんなCPANのモジュールセットアップを使っています。

流行りのプロダクトを見る

ただ,初めてPerlの開発をする人や経験が浅い人には,どうやってCPANを活用したらいいか難しいかもしれません。

そこで,オープンソースで今,流行っていると思ったプロダクトに触り,そのプロダクトの中で使われているCPANモジュールを見てみることでCPANを学習できます。そのようなプロダクトはPerlコミュニティを引っ張る人たちによって開発されていて,そのプロダクトの中で使われているCPANモジュールは定番なものや,先端なものが多く,モダンなCPANモジュールを知るためには一番の近道と言えます。

そのような(学習の意味での)目的で個人的にお勧めするプロダクトは,Plagger,Catalyst,HTTP::Engine,DBIx::Classなどです。またそれらのプロダクトのコミッターが作っている他のプロダクトも参考になるでしょう。

ちなみにArkの中で使用しているお勧めモジュールとしては

などがあります。どちらも大変軽量で高速に動作するモジュールになります。

ただ,トレンドを追うのはとても大変な作業でもありますし,すべてを把握するのは難しいです。そこで,最近であればTwitterやWassrなどのマイクロブログなどを活用し,コミュニティやオンライン・雑誌の記事で著名な方の発言を閲覧すると良いでしょう。

私のTwitterアカウントはtypesterです。よかったらフォローしてください。

あとは,とにかくドキュメントを読む癖を付けることをお勧めします。

コメント

コメントの記入