アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » DEVELOPER STAGE » 連載 » モダンPerlの世界へようこそ » 第9回 Jifty:一足早いクリスマスプレゼント

モダンPerlの世界へようこそ

第9回 Jifty:一足早いクリスマスプレゼント

Perl 6チームからのクリスマスプレゼント

この連載でも何度か名前が出てきたPerl 6ですが,「クリスマスまでにはリリースされることになっている」という話はみなさん先刻ご承知のことと思います。

もちろんこの話には「どのクリスマスかは秘密です」というオチがつくわけですが,2000年の設計開始以降,これまでにも何度か「今年こそはひょっとするとひょっとするかも」という期待を持たれた年がありました。

オードリー・タン(唐鳳)氏がHaskellの勉強がてらわずか2ヶ月でPerl 6の処理系(Pugs)を実装して話題になった2005年は,まさにその筆頭格といってよいでしょう。

実際,この年はPerl 6とその関係者にとって非常に大きな意味を持つ年になったのですが,この年はまたRuby on Railsが本格的にブームになった年でもありました。ただでさえPerlからRubyに転向する人が後をたたなかったというのに,「クリスマスプレゼント」のひとつもないようでは,ますますPerl離れが加速するおそれがあったわけです。

この年前任のアリソン・ランダル(Allison Randal)氏からPerl 6のプロジェクトマネージャーの職を引き継いだジェシー・ヴィンセント氏は,世の父親がよくするように,それとなく「クリスマスプレゼント」の希望を聞いてまわりました。なかには「お父さん,私ポニーを飼いたいの!」という現実離れした要望もありましたが,そのような無茶振りにもなんとか応えてしまうのがドラえもんもといPerl使いの真骨頂。

残念ながらPerl 6そのものではありませんでしたが,その年のクリスマスに,氏は「ごちゃごちゃとデータベースをいじり回す必要のない」「Ajaxに対応した」「クリーンでシンプルな」「CPANを活用した」「バズワード満載の」クリスマスプレゼントを公開します。

それが,Jiftyというウェブアプリケーションフレームワークの始まりでした。

どこまで本当の言語らしく書けるか

Maypoleという既存の成功したフレームワークからユーザを引き継いだCatalystに比べると,ほとんどまっさらなところから生まれたJiftyは最初からそれほど多くのユーザを引きつけたわけではありません。

が,Jiftyのドメイン特化言語(DSL)を多用した宣言的なプログラミングは,モダンPerlの世界に大きな衝撃を与えました。翌2006年春に登場したMooseがいまのような形になった背景には,あきらかにJiftyの影響が見られます。

2007年のYAPC::Asiaでも紹介されていましたが(※1),Jiftyのドメイン特化言語は,Mooseの世界で見られるような「わかりやすい名前がついている(だけの,ふつうの)関数」ではありません。ソースフィルタリング以外のありとあらゆるPerlの黒魔術を駆使して,なるべく自然言語に近い書き方ができるように工夫されています。

その背景にある技術についてはまた次回以降取り上げますが,今回はまず,筆者が2006年にまるごとPerl! Vol.1にJiftyの入門記事を寄稿したあとでJiftyの世界で起こった変化をふまえながら,TwitterWassrのようなサンプルアプリケーションをひとつつくってみましょう。コードはgithubに置いておきますので,必要ならcloneしてお使いください。

※1

Abusing Domain Specific Languages for Fun and Profit

環境を構築する

ご多分に洩れず,Jiftyも多くのモジュールに依存しているので環境によってはインストールに苦労するかもしれません。Windowsユーザの方は筆者が管理しているPPMリポジトリなどを駆使して環境を構築してください。また,Jiftyのリポジトリから最新版をチェックアウトしたい方は下記のコマンドを実行してください。

> svn co http://svn.jifty.org/svn/jifty.org/jifty/trunk

Jiftyのインストールが済んだら,適当な作業ディレクトリでひな形をつくりましょう。

>  jifty app --name MyApp

新しくできたMyAppディレクトリのなかには,設定ファイルや管理用のスクリプトなどが用意されています。

ログインまわりはプラグインを使えば簡単

今回は自分だけではなく,ほかのユーザも使えるものを目指したいので,Jiftyに同梱されている認証用のプラグインを利用することにしましょう。エディタでこのような内容のetc/site_config.ymlを用意してください。

framework:
  Database:
    Version: 0.0.1
  Plugins:
    - LetMe: {}
    - User: {}
    - Authentication::Password:
        login_by: username

内容については直感的にわかると思いますので特に説明しませんが,CPAN版のAuthentication::Passwordプラグインにはバグがあるので,そちらを使っている方はlogin_byの値をemailに変えてください(リポジトリのほうでは修正済みです)。

続いて,シェルからこのようなコマンドを実行します。

> jifty model --name User

lib/MyApp/Model/User.pmにひな形ができるので,エディタで下のほうに次の3行を追加してください。最後の sub check_read_rights { 1 } は「このモデルのデータはだれでも読み取り可能」という意味です。

use Jifty::Plugin::User::Mixin::Model::User;
use Jifty::Plugin::Authentication::Password::Mixin::Model::User;
sub check_read_rights { 1 }

この段階で一度サーバを起動してみましょう。

> jifty server --start

これで自動的にデータベースの設定が行われて,「サインアップ」と「ログイン」というメニューが追加された初期画面にアクセスできるようになります。

著者プロフィール

石垣憲一(いしがきけんいち)

あるときは翻訳家。あるときはPerlプログラマ。先日『カクテルホントのうんちく話』(柴田書店)を上梓。最新刊は『ガリア戦記』(平凡社ライブラリー)。

URLhttp://d.hatena.ne.jp/charsbar/

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

読むウェブ ~本とインタラクション

ディスプレイで読む活字とそのインタラクション(interaction:相互作用)について,最新Webを紹介しながら読み解いていく。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

Windows phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows phoneアプリケーションの開発をしてみませんか?

ここは知っておくべき!Windows Server 2008技術TIPS

5年ぶりのサーバOSとなったWindows Server 2008が出荷されて早2年。2009年にはR2が出荷され,再び注目を集めています。発売前から実施したトレーニングによって感じた,インフラエンジニアの方々に知っておいていただきたい機能を中心にご紹介します。

キーパーソンが見るWeb業界

本連載はWeb Site Expert/gihyo.jpとの連動企画です。阿部淳也, 長谷川敦士, 森田雄のお三方による,Web業界をテーマにした座談会です。

きたみりゅうじの聞かせて珍プレー

ソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。みなさんからの投稿もお待ちしてます!

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス