システム開発において用いられるプログラミング言語の中でも比較的新しく高い注目度を誇るScalaには数多くのフレームワークが存在しております。代表的な『PlayFramework』や『Finatra』は有名ですが、それ以外にも優秀なフレームワークが存在することをご存知でしょうか。Scalaのプログラマーとして活動するには人気を集める代表的なフレームワークついては把握をしておきたいものです。この記事ではScalaにおけるフレームワーク人気どころ6選をそれぞれの特徴を踏まえてご紹介させて頂きます。
『Scalaにおけるシステム開発を簡単に行えるように用意された枠組みのこと』
ScalaフレームワークとはScalaにおけるシステム開発のプログラミングを効率的に実施するために汎用的な機能群をまとめ、システムの骨組みとなるテンプレートまで用意してくれる枠組みのことです。フレームワークを活用することでプログラミングにおける記述コードを最小限に抑えることが出来ます。Scalaフレームワークの代表的な種類として『PlayFramework』『Finatra』『Skinny Framework』などが挙げられます。
フレームワークの特徴について解説された記事はこちら>>
Scalaとはスイス連邦工科大学のマーティン・オーダスキー氏によって2001年に設計されたJavaに影響を受けたオブジェクト指向と関数型言語の特徴を統合したプログラミング言語です。世に公開がされたのは2004年始めの頃でJavaプラットフォームにリリースされました。ScalaはJVM上で動作するため、Javaのライブラリを不自由なく使えるという特徴があります。他にも.NET Framework上でも動作するため、同様に.NETライブラリも使用することが出来ます。(※.NETサポートは2012年に中止)
2003年に誕生した比較的新しいプログラミング言語ですが、2019年に『GitHubPullRequest』によって発表されたプログラミング言語使用率ランキングによると第12位を記録するほどの人気度が伺えました。日本国内でも様々な有名サービスがScalaを用いた開発を行っており、代表的なものとして『SmartNews』『Chatwork』などが挙げられます。
Scalaの特徴・メリットについて解説された記事はこちら>>
Scalaによるシステム開発に用いられる代表的なフレームワークを6つ紹介させていただきます。
Play FrameworkとはJavaとScaraの2つのプログラミング言語でZenexity社のプログラマーギヨーム・ボルト(Guillaume Bort)氏によって開発されたオープンソースのWEBアプリケーションフレームワークです。Play FrameworkはRuby on Railsからの影響を強く受けたフレームワークとして有名です。その特徴として軽量で動きが速いという点が挙げられることから度々Webサービスの開発などにおいて好まれて利用されております。
FinatraとはTwitter社によって開発されたFinagleとTwitterServerの上にAPIサービスを簡単に構築するためのフレームワークです。Rubyのフレームワークである『Sinatra』をモデルに開発されており軽量Webフレームワークとなっております。高速でテスト可能であり、Twitter自社のサービスにも使われていることからScalaフレームワークとして高い注目を集めております。
Skinny FrameworkとはSkinny Micro上に構築されたフルスタックWebアプリフレームワークです。Skinny(スキニー)と略称して呼ばれることが一般的でScala on Railsがコンセプトとなっております。それからも分かる通り、Ruby on Railsに強く影響を受けておりサーブレットベースのWebアプリ開発の持続可能な生産性を実現するために最適化されています。
LiftとはScalaに活用されるデビッドポラック氏を中心に安全性を強く意識して開発されたWebフレームワークです。公式サイトでも『最も強力で安全なWebフレームワーク』を謳っております。Liftは「安全性・開発者中心・スケーラブル・インタラクティブ」の4点を強く掲げております。同フレームワークはコントローラーの概念が無いことも大きな特徴の一つです。
Xitrumとは非同期およびクラスタ化されたScalaのフルスタックWebフレームワークです。最も安全なフレームワークを心がけており、Scalaの思想に乗っとっております。非同期はNettyの思想に基づくものです。同言語のフレームワークである『Scalatra』より強力で『Lift』よりも簡単です。
Scalatraとはシンプルで簡単をテーマに開発されたWebマイクロフレームワークです。ScalatraはJVMのパワーとScalaの美しさと簡潔さを組み合わせ、高性能のWebサイトとAPIをすばやく構築が可能です。名称からも分かるようにRuby用のフレームワークであるSinatraをモデルに開発されました。
Scalaにおけるフレームワーク人気どころ6選をそれぞれの特徴を踏まえてご紹介させて頂きました。Scalaフレームワークを一言で表すと『Scalaにおけるシステム開発を簡単に行えるように用意された枠組みのこと』です。皆さんの既にご存知のフレームワークや新たな発見は有りましたでしょうか。こちらでご紹介させて頂いた代表的なフレームワークの理解を深めて置くことで関わることの出来るシステム開発の幅も広がることでしょう。