目次


作って学ぶ、今どきのWebサービス: 第1回 何はなくともCPANを知ろう

Comments

今どきのWebプログラミング、教えます

この連載では今どきのWebプログラミングを解説していきます。Webプログラミングというと一見難しそうに思えますが、ライブラリが豊富な最近のスクリプト言語を使えば、かなり簡単に高機能なWebサービスが実現できます。本稿では、特にライブラリが充実しているPerlを使うので、各種Webサービスの開発も「実は結構手軽で簡単なもんだ」と理解していただけるかと思います。

今回から数回はその足がかりとして、Perlのライブラリ群CPAN * を使ったHTTPクライアントの作成、およびXML処理などについて解説していきます。

PerlでWebサービス!

Webサービス、という単語には主に2つの意味合いがあります。1つは「Web上のサービス」の意味。GoogleやYahoo!など、検索やニュースといった各種サービスを提供するサイトのことです。Webサービスを作る、というとなんだか開発のにおいがしますね。

もう1つは、XML Webサービス。インターネット上に配置された、プラットフォーム非依存のWebアプリケーションそれぞれが持つ機能を、XMLで組み合わせて新しいサービスを作る……何だかかっこいい響きですね。と、同時に何となく難しそうな印象も受けてしまいます。

そんな2つの意味を持つWebサービスですが、本連載ではその両者とも作ることにチャレンジしていきます。

さて、どちらのWebサービスを作るにしても、その手段を考えるに当たってまず思い当たるのは、どのプログラミング言語を選択するか、です。

Java、C#、PHP、Rubyいろいろありますね。でも、わたしは迷わずPerlを選択します。なぜならそこにPerlがあるから……では理由になりませんね。

ライトウェイトからヘビーウェイトまで幅広く対応できるから

Perlはご存じのとおりスクリプト言語で、ちょっとしたツールを作ったりするのには非常に高い生産性を発揮します。ほかの言語で十数行必要な処理が1行で書けてしまうなんてこともざらにあります。

わたしが働く会社 では月間3億ページビュー以上あるWebサービスをPerlで構築していたりします。Perlは数行のツールから億単位のトラフィックをさばくアプリケーションまで、幅広く対応できる言語です。

CPANがあるから

もう1つは、CPANの存在です。CPANのおかげでPerlプログラミングはとっても楽々です。

結構いろいろなものがPerlで作られている

最近よく耳にするWebサイトを挙げてみてください。Perlで作られているものが、結構あったりしませんか?はてなの各種サービスもそうですし、ブログツールで有名なMovable Type、それから最近流行のソーシャルネットワーキングサービスmixi、後、Amazon.comもPerlで作られている個所が結構あると聞いています。スケーラビリティを確保しつつスピーディーに開発していくのに、Perlは向いているんですね。

何はなくともCPAN

今どきのPerlプログラミングを体感する、そんなときに欠かせないのは CPAN の存在です。CPANは「Comprehensive Perl Archive Network」の略で、一言でいうと「Perlモジュール集積所」です (図1)

図1. Perlモジュール集積所CPAN
図1. Perlモジュール集積所CPAN
図1. Perlモジュール集積所CPAN

CPANには世界中のPerlプログラマー(Perlハッカーたち)の日々のHackの成果物が収められています。そこには、Perlハッカーなら誰でもモジュールを登録できますし、誰でもダウンロードして使えます。モジュールの検索 * や、ドキュメントの閲覧サービスも整備されています。モジュールのインストールも、後に説明するCPANシェルによって非常に簡単かつ効率的に行えます。

どんなモジュールがあるのか

CPANに登録されているモジュール(ライブラリ)にはどんなものがあるのでしょう?実は何でもありますが、例えば 表1 のようなものも、CPANからインストールして使えます *

表1. CPANに登録されているモジュールの例

このように、特定の目的に特化したものからアプリケーションの基礎となるフレームワークまで、ありとあらゆるライブラリがCPANに登録されています。Perlで何かしたいときに、CPANを探せばだいたいのものが見つかります。日付処理などの、よくあるけど面倒な処理をいちいち書かなくても良くなったり、それこそXML Webサービスを簡単に扱うようにしたライブラリなど多種多様なものがあり、一度使い出すとやめられません。

C#やJava、Ruby、PHPなど、ほかの言語でもクラスライブラリやモジュールを使ってプログラミングをするのが当たり前の昨今ですが、ことPerlにおいてはそれらライブラリを充実させようというコミュニティーの動きが非常に活発で、CPANはほかの言語の開発者からも一目置かれる存在になっています。

CPANモジュールをインストールしてみよう

本連載ではこれから、さまざまなCPANモジュールを使っていきますので、ここでCPANモジュールのインストール方法を紹介しておきます。

CPANモジュールのインストールには、シェルのコマンドラインから利用できるCPANシェルを使うのが便利です。CPANシェルはroot権限で次のコマンドを実行して起動します。

# perl -MCPAN -e shell

すると、

cpan shell -- CPAN exploration and modules
installation (v1.7601)
ReadLine support enabled
cpan>

といったプロンプトが表示されます。このプロンプトで対話的にモジュールのインストールが進められるようになっています。例えばXML::RSSをインストールするには、

cpan> install XML::RSS

を実行します。すると、CPANシェルがCPANのミラーサイトからソースをダウンロードして展開、必要ならコンパイル、テスト、ライブラリディレクトリにインストールといった一連の作業をまとめて実行します。

インストール以外にも、 表2 のように便利なコマンドがあります。より詳しい使い方はヘルプを参照してください。

表2. CPANのコマンド

次回は

CPANモジュールのインストールも終わりましたので、次回は手始めに、PerlにおけるWebプログラミングの要ともいえるLWP(Lib WWW Perl)を用いた、HTTPコンテンツをPerlでHackする手法を解説していきます。

このページで出てきた専門用語

CPAN
「しーぱん」と読みます(まれに「くぱん」と読む人もいるようです)。
モジュールの検索
search.cpan.org から検索することが可能です。
例えば表1のようなものもCPANからインストールして使うことができます
うち幾つかは、Perlの標準モジュールとしてPerlの配布パッケージに含まれています。

ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Web development, Open source, Linux
ArticleID=247525
ArticleTitle=作って学ぶ、今どきのWebサービス: 第1回 何はなくともCPANを知ろう
publish-date=03302007