( ꒪⌓꒪) ゆるよろ日記

( ゚∀゚)o彡°オパーイ!オパーイ! ( ;゚皿゚)ノシΣ フィンギィィーーッ!!!

scalaのWebフレームワーク liftで遊ぶ(1) - liftってなんなの?javaなの?

目次はこちら。
scalaのWebフレームワーク liftで遊ぶ 目次 - ゆろよろ日記



まずはliftについて簡単に説明するよ。
ものすごくおおざっぱにいうと、


「最近のフレームワークをいいとこどりしたやつです。」


特徴をあげると

  • Scalaで書かれている。Scala関数型言語型推論に加え、既存のjava資産が利用できる。
  • Rails,Django,Wicket,Seasideなどのフレームワークのいいとこどり。
  • インストールやサーバの起動はrailsみたいにコマンド一発。データベースも最初からついてる(derby)
  • Snipetアプローチ。
  • ActiveRecordみたいなモデル+DjangoのAdmin CRUD
    • モデルとデータベースのマッピングはCoCで簡単に記述
    • 簡単にCRUDフォームを作成
  • Ajaxサポート
    • JQuery同梱。
    • Ajaxによる呼び出しはajaxCallメソッドでシンプルに実現
    • サーバサイドから簡単にJavascriptを実行。
  • Commetでスケーラビリティ
  • 設定はCocとScalaコード。XMLなし。
  • SiteMapやACLを最初から組み込んである。
  • アプリケーションのテンプレートを使えばユーザ管理、サインアップなどが組み込まれた状態で開発できる。

以下は、の超約。

liftへようこそ

Lift is an expressive and elegant framework for writing web applications. Lift stresses the importance of security, maintainability, scalability and performance, while allowing for high levels of developer productivity. Lift open source software licensed under an Apache 2.0 license.

liftは、表現力豊かでエレガントなWebアプリケーションを作成するためのフレームワークだ。
liftはセキュリティの重要性を認識しており、保守性、拡張性と高パフォーマンス、高レベルの生産性を開発者に提供する。
Apache 2.0のソフトウェアライセンスで提供されるオープンソースプロダクトなんだぜ。

Lift borrows from the best of existing frameworks, providing

* Seaside's highly granular sessions and security
* Rails fast flash-to-bang
* Django's "more than just CRUD is included"
* Wicket's designer-friendly templating style (see Lift View First)

And because Lift applications are written in Scala, an elegant new JVM language, you can still use your favorite Java libraries and deploy to your favorite Servlet Container. Use the code you've already written and deploy to the container you've already configured!

liftはほかのフレームワークからいいとこをパクってきてる。それは、

  • Seasideのような細かいセッション管理と高いセキュリティ
  • Railsのようにすぐに動かせる
  • DjangoのAdmin CRUDフォーム生成の手軽さ
  • Wicketのデザイナーにやさしいテンプレート

そして、liftアプリケーションはエレガントな新しいJVM言語であるScalaで書かれてるんだ。
開発者は今までどおり好みのJavaライブラリを使えるし、好きなサーブレットコンテナーにデプロイできるよ。
だから、今まで書いてきたjavaのコードは使えるし、すでに設定済みのコンテナで動かせるんだ!

おなじみのJava環境

Familiar Java Environment

Lift application development is a lot like Java development. Lift applications are packaged as WAR files and deployed on any Servlet 2.4 engine (e.g., Tomcat 5.5.xx, Jetty 6.0, etc.) Lift programmers use standard Java environments like Eclipse and IDEA. Dynamic content can be authored using standard xhtml editors. Lift applications benefit from the performance and portability of the JVM, the Java development toolchain, and the extensive collection of available Java libraries.

Liftアプリケーションの開発は、javaアプリケーションの開発に非常によく似ている。
LiftアプリケーションはWarファイルとしてパッケージングされて、Serlet2.4以上をサポートするアプリケーションサーバ(たとえば Tomcat 5.5.xxやJetty 6.0など) に配置できる。


Liftで開発する場合には、EclipseやIDEAのようなJava開発環境を利用することが可能だ。
動的なコンテンツを作成するには、は標準のxhtmlエディタを使用すればよい。
JVMの可搬性・移植性やパフォーマンス、Java開発ツール、および利用可能なJavaライブラリの膨大なコレクションなどの恩恵を、Liftアプリケーションは受けることができるんだ。

Scala

Scala

Scala is an elegant modern relative of Java and Haskell that is rapidly growing in popularity. Scala programs run on the JVM and can freely intermix with existing Java code and libraries. Scala also adds powerful new features such as:

* mixin inheritance
* lightweight actors
* first class functions
* a uniform object model

Scala programs are typically about one quarter the size of equivalent Java programs and contain significantly fewer defects. Scala's improved syntax and type inferencing eliminate unnecessary repetition and Scala's advanced abstraction features enable writing simpler programs.

Scalaは、Javaと最近人気急上昇中のHaskellの仲間と言っていい。
ScalaプログラムはJVMの上で動作して、既存のJavaコードとライブラリと自由に組み合わせることができるんだ。
また、Scalaは以下のような強力な新機能を追加している。

ScalaプログラムはJavaプログラムに比べて1/4程度のサイズになり、バグが少ない。
Scalaの改良された構文と型推論は、Scalaの高度な抽象化を利用したコンパクトな(コードの重複が少ない)プログラムをより簡単にコーディングできるんだぜ?