今人気のプログラミング言語、Scalaとは?
はじめに
「Scala」というプログラミング言語についてご存知でしょうか?「Scala」とは、アプリやゲーム開発、データ分析など幅広い分野で採用され、近頃広く注目を集めている関数型言語です。今回はそんな「Scala」について詳しく紹介していきます。
Scalaとは?
Scalaは2003年ごろに開発された、オブジェクト指向と関数型プログラミングの両方の機能を扱うことのできるプログラミング言語です。 オブジェクト指向は仕様の変更に対して柔軟にプログラムを実装することができる手法、関数型プログラミングは関数の組み合わせでプログラムを記述する手法のことを指します。
Javaとの互換性が高く、Javaの後継言語としても注目されており、HackerRank社が実施した「2020 Developer Skills Report」の今後学びたい言語ランキングで6位にランクインしています。
ScalaとJavaの関係
ScalaはJVM(Java Virtual Machine)と呼ばれるJavaの仮想マシン上で動作する言語です。 JVMは、Javaで記述したソースコードをコンピュータで読み取る、いわば通訳機能のようなものです。Javaで記述されたソースコードはJVMで解釈され、JVMがWindows、MacOS、Linuxといった様々なOSに合わせ実行可能な形式のコードに変換してくれます。 Javaで行う膨大な処理をよりシンプルに記述でき、さらに不足部分を補足できるようにしたものがScalaであると言っても良いでしょう。
Scalaで作られたもの
Scalaはアプリ開発、ゲーム開発、Webサービス、データ分析、広告関連、検索エンジン関連などあらゆるシステムに対応しており、人工知能関連の実装にも使用されているようです。 Scalaで作られたものの中でも以下の4つが特に有名です。
Chatwork
Chatworkはクラウド型のビジネス向けチャットツールです。通常のチャット機能はもちろん、タスク機能やファイル共有機能、グループ通話機能、他社サービスとの連携など便利な機能が複数利用できる優れものです。セキュリティ水準は高く、官公庁や大企業などでも利用されているほどです。
SmartNews
スマートニュースは国内外の政治や経済、エンタメ、グルメ、スポーツなど1000チャンネル以上の豊富なコンテンツを扱う無料のニュースアプリで、自分のニーズに合わせて好きな情報を得ることができます。iOSとAndroidで配信され、主にスマートフォンやタブレットユーザーに向けニュース発信を行っています。
海外の企業が運営している、140文字以内の文章や画像を気軽に発信でき、世界中で年齢や性別を問わず広く利用されているSNSです。 月間のアクティブユーザーは日本国内で約4,500万人、世界全体では約3億3,000万人と言われています。
Linkdin
海外の企業が運営する、世界中で6億4500万人以上が利用しているとも言われる世界最大のビジネス特化型SNSです。経歴やバックグラウンド、現在のポジションを登録し履歴書代わりの自己紹介ツール、また上司、同僚、取引先などのビジネスでの繋がりを整理したり、仕事に役立つ情報を収集するためのツールとして使うことも可能です。人材採用にも利用されています。
メリット
JVM上で動作する
ScalaはJVM上で動かす事ができるため、Javaと同様OSを問わないプログラミング処理を行うことができます。また、これまで20年以上蓄積されてきたJavaのライブラリを利用できるので実装の手間が省け、より効率の良い開発が可能になります。
オブジェクト指向と関数型プログラミングの好きな方を選択可能
Scalaでは、オブジェクト指向と関数型プログラミングのどちらを使うかについてのルールはありません。そのため開発者はオブジェクト指向での記述と関数型プログラミングでの記述を自由に使い開発することが可能です。
優秀なフレームワークが存在する
Scalaには軽量でリソース消費が少なく、動作の速さが強みの「Play2」、 高性能のWebサイトやAPIを迅速に構築できる「Scalatra」や、"Scala on Rails"をコンセプトに開発されサーブレットベースのWebアプリ開発に向いている「Skinny Framework」、Twitterで開発されRPCシステムの開発に強い「Finagle」などのフレームワークがあり、利用することで開発効率の向上が見込めます。
デメリット
学習コストが高い
オブジェクト指向言語と関数型言語の両方について十分な理解が必要です。そうでないと、Scalaの良い要素をソースコードに反映させるのは難しいです。 プログラミング初学者が学習するにはかなりハードルが高く、学習コストは高いといえるでしょう。
IDEが発展途上である
Scalaはプログラミング言語の中でも後発組です。そのため、JavaやC言語などメジャーな言語と比較すると、IDEの種類や機能はまだまだ充実しているとは言えません。JavaのIDEと比べてもコンパイル速度や補助機能などでどうしても劣っている部分があります。
Scala自体の注目度は高いので、今後高機能のIDEが開発されるのではないでしょうか。
年収
株式会社ビズリーチが運営する求人検索エンジン「スタンバイ」の「プログラミング言語別年収ランキング2018」によると、Scalaは2位にランクインし、年収中央値600万円、最大提示年収1,300万とされています。
「平均年収.jp」によるとプログラマーの平均年収が416万円、システムエンジニアの平均年収が500万円とあるので、年収はかなり高めだと言えるでしょう。
おわりに
ここまで、Scalaとはどんな言語か、ScalaとJavaの関係、Scalaで作られたものやメリット・デメリットについて紹介してきました。 Javaの後継言語としても注目され、需要は高まっているもののScalaエンジニアは未だ少ないのが現状です。転職やキャリアアップのためにも、習得して損はありません。ぜひチャレンジしてみてください!