hakobera's blog

技術メモ。たまに雑談

はじめてのlift Web Framework その0 お試し編

Scalaの文法を調べていたら予想以上に書くことができてしまったので、
そのエントリーは週末に書くことにした。

で、今日は息抜きがてらにScalaで書かれたWebアプリケーションの
フレームワークであるliftを試してみたいと思う。
ちなみに本家のサイトはここ

サイトURLにdemoが入っているからかは知りませんが、まだβで鋭意開発中。
現在のバージョンは0.8で、特徴として次の点をあげている。

  • Scalaでかかれてる
  • Javaのwebコンテナ(Servlet2.4)上で動く(Tomcat, Jettyなどなど)
  • 既存のフレームワークから良いとこどりをしている
  • Seasideのような細かいセッション管理と高いセキュリティを実現
  • Railsのような生産性*1を実現
  • Djangoの"more than just CRUD is included"*2
  • Erlywebのようなスケーラビリティー(Commetみたいなつなぎっぱなしアプリを作った場合)
  • 実行速度がRailsの6倍速い

適当な英訳なので、細かいニュアンスは違っているかもしれないが大体あってると思う。
「〜のx倍速い」ってフレーズは初期のRailsを彷彿させるが、これは開発効率じゃなくて実行速度のことなので注意。

というわけで、ここを参照してサクッと導入。

導入にはmavenを利用する。
幸いmavenは導入済みだったので、いきなりコマンド実行。

アプリ作成
mvn archetype:create -U  
 -DarchetypeGroupId=net.liftweb             
 -DarchetypeArtifactId=lift-archetype-basic 
 -DarchetypeVersion=0.8                     
 -DremoteRepositories=http://scala-tools.org/repo-releases  
 -DgroupId=net.liftweb.hello
 -DartifactId=hello-lift

表記の都合で改行しているが、実際は1行で打つこと。
artifactIdで指定した名前が作成するアプリ名になる。

作成したアプリのディレクトリに移動
cd hello-lift/
ビルド&デプロイ&サーバー起動
mvn install jetty:run

jettyが入っていないとすごい量のダウンロードが始まるのでしばらくまつ。常時10Mbpsくらいでる環境で5分くらいずっとダウンロードしてた。

これで http://localhost:8080/ にアクセスすると無事サンプルが表示された。
maven 使うだけで手順がまったくrailsと同じでいい感じ。
さすが、良いとこ取りフレームワークと公言することだけのことはある。

今日はここまで。

次回はできたサンプル(雛形)にアプリに機能を追加していきたいと思う。

*1:原文だとRails fast flash-to-bang。作ってすぐ公開できんよ、みたいな感じなのかも

*2:ただのCRUDには興味がありません、ってことか?