連載第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です。よかったらフォローしてください。
あとは,とにかくドキュメントを読む癖を付けることをお勧めします。

