LiftはScalaベースのWebアプリケーションフレームワークです。Ruby on Railsにインスパイアされており、同フレームワークと同様のメリットを実現することを目標にし誕生しました。Scalaフレームワークの中でも参考文献も多く、人気を集めております。この記事ではLiftを理解するために初心者でも分かる歴史、特徴などの基礎知識を簡単に解説していきます。
LiftとはScalaに活用されるデビッド・ポラック氏を中心に安全性を強く意識して開発されたWebフレームワークです。Ruby on Railsにインスパイアされており、同フレームワークと同様のメリットを実現することを目標にしております。公式サイトでも『最も強力で安全なWebフレームワーク』を謳っております。Liftは「安全性・開発者ファースト・スケーラブル・インタラクティブ」の4点を強く掲げております。同フレームワークはコントローラーの概念が無いことも大きな特徴の一つです。
Scalaとはスイス連邦工科大学のマーティン・オーダスキー氏によって2001年に設計されたJavaに影響を受けたオブジェクト指向と関数型言語の特徴を統合したプログラミング言語です。世に公開がされたのは2004年始めの頃でJavaプラットフォームにリリースされました。ScalaはJVM上で動作するため、Javaのライブラリを不自由なく使えるという特徴があります。
他にも.NET Framework上でも動作するため、同様に.NETライブラリも使用することが出来ます。(※.NETサポートは2012年に中止)2003年に誕生した比較的新しいプログラミング言語ですが、2019年に『GitHubPullRequest』によって発表されたプログラミング言語使用率ランキングによると第12位を記録するほどの人気度が伺えました。日本国内でも様々な有名サービスがScalaを用いた開発を行っており、代表的なものとして『SmartNews』『Chatwork』などが挙げられます。
Ruby on RailsとはRubyに活用されるデビッド・ハイネマイヤー・ハンソン(David Heinemeier Hansson)氏によって開発されたオープンソースWebアプリケーションフレームワークです。2004年7月に誕生し、基本理念を『同じことを繰り返さない』と掲げております。特徴としては基本理念の名の下同じソースコードを何度も記述しなくて良い効率よく実装するための仕様となっております。さらにデータベースを直感的に操作ができる機能が提供されており好評を集めております。Ruby on Railsの概念を参考に誕生したその他言語のフレームワークも多く存在しCakePHPもその一つとなっております。
Liftはデビッド・ポラック氏によってScalaベースのWebアプリケーションフレームワークとして開発され2009年に誕生しました。Liftの開発プロジェクトが開始されたのは2007年2月26日です。最初のバージョンである『Lift 1.0』がリリースされたのは2009年2月26日とプロジェクト開始からちょうど2年を迎えた日でした。次のバージョンとなる『Lift 2.0』は2010年6月にリリースされその後も順調にバージョンアップを繰り返しています。git hubに記録された最古のリリース記録は『Lift 2.3』です。
『Lift 2.6』以降のドキュメントは丁寧に記載されており改修ポイントが分かりやすいくなっております。現在(2021年7月時点)では最新バージョンを「Lift 3.4.3」としております。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2007年2月26日 | 『Lift』開発プロジェクト開始 |
2009年2月26日 | 『Lift 1.0』リリース |
2010年6月 | 『Lift 2.0』リリース |
2011年3月 | 『Lift 2.3-RC1』リリース git hub最古のリリース記録 |
2014年4月 | 『Lift 2.6』リリース ドキュメントが丁寧に記録され始める |
2016年11月 | 『Lift 3.0.0』リリース |
2020年11月 | 『Lift 3.4.3』リリース |
Liftの特徴を見ていきましょう。
Liftは安全性が高いという特徴があります。Liftアプリケーションは、OWASPの10大セキュリティ脆弱性の多くをはじめ、一般的な脆弱性に対する耐性があります。
Liftは開発者ファーストという特徴があります。開発者にとって重要視される「迅速な開発」「簡潔な記述」「メンテナンスが容易」といったポイントを満たすための設計をしております。
Liftはスケーラブルという特徴があります。パフォーマンスが高く保ちながら、現実の運用でも強力な柔軟性を発揮して膨大なトラフィックを処理することができます。
Lift以外のScalaベースによるシステム開発に用いられる代表的なフレームワークを紹介させていただきます。
FinatraとはTwitter社によって開発されたFinagleとTwitterServerの上にAPIサービスを簡単に構築するためのフレームワークです。Rubyのフレームワークである『Sinatra』をモデルに開発されており軽量Webフレームワークとなっております。高速でテスト可能であり、Twitter自社のサービスにも使われていることからScalaフレームワークとして高い注目を集めております。
Scalatraとはシンプルで簡単をテーマに開発されたWebマイクロフレームワークです。ScalatraはJVMのパワーとScalaの美しさと簡潔さを組み合わせ、高性能のWebサイトとAPIをすばやく構築が可能です。名称からも分かるようにRuby用のフレームワークであるSinatraをモデルに開発されました。
Play FrameworkとはJavaとScaraの2つのプログラミング言語でZenexity社のプログラマーギヨーム・ボルト(Guillaume Bort)氏によって開発されたオープンソースのWEBアプリケーションフレームワークです。Play FrameworkはRuby on Railsからの影響を強く受けたフレームワークとして有名です。その特徴として軽量で動きが速いという点が挙げられることから度々Webサービスの開発などにおいて好まれて利用されております。
Play Frameworkの公式サイトはこちら>>
Play Frameworkの歴史や特徴、基礎知識について解説された記事はこちら>>
Liftを理解するために初心者でも分かる歴史、特徴などの基礎知識を簡単に解説させていただきました、Liftを一言で表すと『Scalaベースでrailsにインスパイアされ安全性を強く意識したWebアプリケーションフレームワーク』です。特徴として「安全性が高い」「開発者ファースト」「スケーラブル」などが挙げられます。Liftについてこの記事に記載されている最低限の内容は理解をしておくようにしましょう。