ScalaはJavaに影響を受けたオブジェクト指向と関数型言語の特徴を統合したプログラミング言語です。誕生したのは2003年とプログラミング言語の中でも比較的新しいものとなっておりますが、2019年時点でプログラミング言語使用率ランキングによると第12位を記録する注目度の高さです。この記事ではScalaを理解するために初心者でも分かる特徴、メリット、できること、基礎知識などを簡単に解説していきます。
Scalaとはスイス連邦工科大学のマーティン・オーダスキー氏によって2001年に設計されたJavaに影響を受けたオブジェクト指向と関数型言語の特徴を統合したプログラミング言語です。世に公開がされたのは2004年始めの頃でJavaプラットフォームにリリースされました。ScalaはJVM上で動作するため、Javaのライブラリを不自由なく使えるという特徴があります。
他にも.NET Framework上でも動作するため、同様に.NETライブラリも使用することが出来ます。(※.NETサポートは2012年に中止)2003年に誕生した比較的新しいプログラミング言語ですが、2019年に『GitHubPullRequest』によって発表されたプログラミング言語使用率ランキングによると第12位を記録するほどの人気度が伺えました。日本国内でも様々な有名サービスがScalaを用いた開発を行っており、代表的なものとして『SmartNews』『Chatwork』などが挙げられます。
Scalaの読み方は『スカラ』が一般的となっております。名前の由来は『scalable language』からきており「スケーラブルな言語」を意味しております。またScalaの名称にはもう一つの意味がこめられておりScalaはイタリア語で『螺旋階段』を意味します。この螺旋階段はプログラムの効率化という意味を込めて表現しており、公式ロゴのデザインモチーフにも採用されております。
Scalaはスイス連邦工科大学(通称:EPFL)のマーティン・オーダスキー教授が中心となって2001年に設計されて2003年に内部公開されました。マーティン・オーダスキー教授は過去に『Genaral Java』『Javac』などの開発にも携わっておりました。世に公開がされたのは2004年始めの頃でJavaプラットフォームにリリースされました。マーティン・オーダスキー教授は過去に携わった様々なJavaプロジェクトの経験を活かして実用性とシンプルさを掛け合わせることに成功しScalaを誕生させました。2004年6月には.NETプラットフォームにリリースされます。(※.NETサポートは2012年に中止)
そしてScalaが大きな注目を集めるキッカケとなったことがTwitter社がRuby on Railsで実装していたプログラムをScalaへと移行させてことです。これを機に世界的にも大きな注目を集め、日本でも2014年頃から関連する書籍の増加や採用事例など着実に人気を伸ばしております。
2019年になると『GitHubPullRequest(https://madnight.github.io/githut/#/pull_requests/2019/1)』によって発表されたプログラミング言語使用率ランキングにおいて第12位を記録する人気度の高さが伺えました。
年表 | 内容 |
2001年 | スイス連邦工科大学(通称:EPFL)のマーティン・オーダスキー教授が中心となって設計 |
2003年 | 内部で公開される |
2004年初頭 | Javaプラットフォームにてリリース |
2004年6月 | .netプラットフォームにてリリース |
2006年 | Scala2.0リリース Java仮想マシン(JVM)で動作を実用化 |
2014年 | 日本国内における注目度上昇。 書籍の増加や採用事例など増加 |
2019年 | プログラミング言語使用率ランキングにおいて第12位を記録 |
Scalaでできることを見てきましょう。
Webサーバー開発とはWebアプリケーションを動作する上で必要なWebサーバーの開発を行うことです。ScalaではJavaで実現できるほぼ全てのことを行えるため、Javaの得意なWebサーバー開発も同様に行えます。
Webサーバーの役割や種類を解説している記事はこちら>>
Webアプリケーション開発とはWebサーバーと通信を行って動作するWeb上のアプリケーションの開発を行うことです。Scalaで開発された代表的なWebアプリケーションとして『Twitter』『Linkdin』などが挙げられます。
Web系システム開発の特徴や種類を解説している記事はこちら>>
スマホアプリ開発とはその名の通り、スマートフォン上において動作するアプリケーションの開発を行うことです。主にAndroidのプラットフォームを対象に開発されます。Androidアプリは多くの場合Javaで開発されておりますが、Scalaでも開発することが可能です。Scalaで開発された代表的なスマホアプリとして『LINE』『SmartNews』などが挙げられます。
Scalaのメリットを見ていきましょう。
ScalaはなんといってもJavaとの互換性が高いという点が大きなメリットといえます。元々ScalaはJavaとの互換性を最優先に考えて開発された言語であり、Javaの後継言語ともいわれております。Javaの環境を利用でき、Javaの豊富なライブラリをほとんど使えることは非常に大きなメリットでしょう。
Javaのメリット・デメリットを解説している記事はこちら>>
Scalaはシンプルで効率的にプログラミング出来るというメリットがあります。Scalaのコードはとてもシンプルになっており、モデルとなったJavaと比較してもコード量が半分以下に抑えることができます。プログラマーによってシンプルな仕組みと少ない記述で済むことは好ましい大きな要素となるのでこのメリットも人気を集める大きな理由といえるでしょう。
Scalaは需要が高まることが予想されるというメリットがあります。今後Scalaを習得したプログラマーは優良企業からのオファーや年収アップなど様々な恩恵を受けられる可能性があります。現に世界的に見ると2019年時点でプログラミング言語において12番目の使用率を誇り、年収も増加傾向と言われております。特にこの年収部門においてはビズリーチ社が発表したデータによると2018年「プログラミング言語別年収ランキング2018(https://www.bizreach.co.jp/pressroom/pressrelease/2018/0807.html)」にてGo言語に次ぐ2位を記録しております。このことからも分かるようにScalaプログラマーの需要は増しており、今後もさらに重宝されることが予想されます。
Scalaの基本的な文法を見ていきましょう。
変数の宣言では以下の公式を覚えておく必要があります。
Scalaではデータ型で使用される基本的な種類は以下の通りです。
データ型 | 内容 |
Byte型(8ビット整数) | 8ビット符号付き整数(小数点を含まない数)の数値 |
short型(16ビット整数) | 16ビット符号付き整数(小数点を含まない数)の数値 |
Int型(32ビット整数) | 32ビット符号付き整数(小数点を含まない数)の数値 |
Long型(64ビット整数) | 64ビット符号付き整数(小数点を含まない数)の数値 |
float型 | 32ビット小数点の数値 |
Double型 | 64ビット小数点の数値 |
Biglin型 | 任意精度の整数 |
BigDecimal型 | 任意精度の固定小数 |
string型 | 文字列(記号、数値を含む) |
char型 | 16ビット符号なしUnicode文字 |
symbol型 | 文字列, 同じ内容ならインスタンスも等しい |
Scalaでは演算子で使用される基本的な種類は以下の通りです。
演算子の種類 | 概要 |
算術演算子 | 足し算や引き算を実行する |
論理演算子 | 複数のbool型を比較して、bool型を返す |
ビット演算子 | ビットごとの論理和、論理積、否定を返す |
比較演算子 | 左右の値の比較を行う演算子のこと |
関係演算子 | “a”と”b”の関係を表す演算子のこと |
制御文ではfor文、if文、Switch文、Defer文を覚えておく必要があります。
Scalaの代表的なフレームワークを見ていきましょう。
Play FrameworkとはJavaとScaraの2つのプログラミング言語でZenexity社のプログラマーギヨーム・ボルト(Guillaume Bort)氏によって開発されたオープンソースのWEBアプリケーションフレームワークです。Play FrameworkはRuby on Railsからの影響を強く受けたフレームワークとして有名です。その特徴として軽量で動きが速いという点が挙げられることから度々Webサービスの開発などにおいて好まれて利用されております。
Play Frameworkの公式サイトはこちら>>
Play FrameworkのGitHubはこちら>>
FinatraとはTwitter社によって開発されたFinagleとTwitterServerの上にAPIサービスを簡単に構築するためのフレームワークです。Rubyのフレームワークである『Sinatra』をモデルに開発されており軽量Webフレームワークとなっております。高速でテスト可能であり、Twitter自社のサービスにも使われていることからScalaフレームワークとして高い注目を集めております。
Finatraの公式サイトはこちら>>
FinatraはGitHubはこちら>>
Skinny FrameworkとはSkinny Micro上に構築されたフルスタックのWebアプリフレームワークです。Skinny(スキニー)と略称して呼ばれることが一般的でScala on Railsがコンセプトとなっております。それからも分かる通り、Ruby on Railsに強く影響を受けておりサーブレットベースのWebアプリ開発の持続可能な生産性を実現するために最適化されています。
Skinny Frameworkの公式サイトはこちら>>
Skinny Frameworkはこちら>>
Scalaを理解するために初心者でも分かる歴史、できること、基礎知識を簡単に解説させて頂きました。Scalaを一言で表すと『Javaに影響を受けたオブジェクト指向と関数型言語の特徴を統合したプログラミング言語』です。
Scalaを習得すると「シンプルで効率的」「Javaとの互換性が高い」というメリットの元、開発に臨むことができます。また需要が高まることが予想されるためプログラマーとしての市場価値も高まるでしょう。Scalaについてこの記事に記載されている最低限の内容は理解しておくようにしましょう。