Scalaとは

今回はプログラミング言語の利用率の指標となる「GitHubPullRequest」にて、2019年1月から3月の統計で第12位にエントリーされた、Scalaについてご紹介いたします。

Scala は2003年に公開された、非常に野心的なプログラミング言語です。

昨今、俗にJVM言語などと言われる、“Java仮想マシン(JVM)上で動作するプログラミング言語”が注目を集めていますが、それらJVM言語の中でも、比較的歴史のあるプログラミング言語の一つです。

また、現在は開発が止まってしまっていますが、Scalaは “Microsoft .NET Framework”など“Java仮想マシン”以外のプラットフォーム上での動作もサポートしていました。

Scalaの特徴は、他のJVMプログラミング言語同様に、Javaの問題点の克服を目指すと同時に、JVM上で動作し、Javaとの高い互換性を維持している、という点が挙げられます。

特にScalaは、Javaよりも短くスマートなコードが記述できます。

なお、Scalaの欠点として、プログラミング初学者には学習難易度が高い、と言われがちです。

原因の一つは、Scalaの仕様が玄人志向で初心者には難しくなっています。

そもそもScalaの開発者はJavaの開発者の一人なのですが、ScalaはJavaよりも、ベテランプログラマー目線で作られたプログラミング言語です。

もっといえば、“できるプログラマーの使い勝手”を優先して作ったプログラミング言語です。

“誰でも簡単にプログラミングができるように仕様を作っているプログラミング言語”と比べて、プログラミング初学者にとって厳しい仕様なのは、ある意味、当然です。

そして、Scalaが難しいと指摘される原因の二つ目は、Scalaがオブジェクト指向言語と関数型言語の特徴を併せ持ったプログラミング言語である、という点が挙げられます。

オブジェクト指向というのはJavaなど他の主要プログラミング言語でも、よく見られる性質であり、多くのプログラマーにとって、なじみのある考え方です。

一方で、関数型というのは、Scalaが登場した当時、第一線で活躍していた主要プログラミング言語では、あまり見られない性質でした。

そのため、Scalaに対して、とっつきにくい、という印象を持ったエンジニアが多かったのは確かです。

ただし、近年、登場したモダンなプログラミング言語の多くが関数型言語としての特徴を持っており、「これからのプログラミングは関数型プログラミング」という論調すら一部から聞こえてくるようになっています。

そのため、以前より、Scalaは習得度が難しい、とは言われなくなったように思います(Rustという、Scalaよりも習得難易度が高いと言われるプログラミング言語が登場したことも理由にあるかもしれません)。

しかし、依然として、Scalaの習得難易度がScalaエンジニアが少数に留まっている原因になっている、と言われています。

さて、他のJVM言語に勝る、Scala最大の強みは大規模システムでの実績です。

比較的、歴史の長いJVM言語である分、他の言語よりも信頼性があると見なされているのか、FacebookやTwitter、日本でもニコニコ動画など、非常に影響力の大きいサービスでScalaが利用されていることが知られています。

このようにJVM言語の中でも、実装例の“質”では、群を抜いており、大手ITサービスの利用が呼び水になって、他の企業やサービスでもScalaが使われる好循環が起きているように思います。

昨年の順位と比較して考察

2019年1月から3月の統計で第12位にエントリーされたScalaですが、2018年1月から3月の統計でも第12位でした。

他のJVM言語や、より世代の新しいプログラミング言語との間で激しい利用率争いが起きる可能性も否定できませんが、ひとまずは、主要プログラミング言語の一つとして、安定した地位を得た、と言えるのではないでしょうか。

ただ、Scalaはエンジニアが少ない、という課題を抱えています。

扱えるエンジニアが少ないと、どうしても案件での採用率の低下へと繋がってしまいます。

今後、順位の変動が起きる可能性は十分にあります。

Scalaは転職に強いのか

転職

Scalaは転職市場において強力な武器となるプログラミング言語です。

ひょっとすると最強のプログラミング言語と言えるかもしれません。

詳しくは後述しますが、求人市場でもっとも提示平均年収が高いプログラミング言語の一つといわれています。

理由は単純明快で、需要と供給のバランスが崩れていて、完全に売り手市場だからです。

日本国内おいてScalaを使っている企業はニコニコ動画だけではなく、いくつもあります。

しかし、Scalaを扱えるエンジニアは日本国内において、十分な人数がいるとは言えません。

繰り返しになりますが、学習難易度が高いですから、身に着けているエンジニア自体、かなり少数なのです。

さらに求職中のScalaエンジニアとなると、輪をかけて少ないです。

結果、転職者が応募先企業よりも優位に立っているような状況です。

活躍できる業種と年収

すでに、お伝えしましたが、Scalaは求人市場でもっとも提示平均年収が高いプログラミング言語と言われています。

どれくらい、年収が良いかというと、ほとんどの企業で「下限が500万円」です。

大事なことなので、もう一度言いますが、「“下限が”500万円」です。

「上限500万円」とは違います。

500万円を下回っている企業でも、450万円を下回ることはほぼないです。

上限は企業によって異なり、800万円~2000万円まで大きな差があります。

とはいえ、サラリーマンの平均年収は約430万円と言われていることを考えると、800万円でも相当な高給取りと言えるでしょう。

フリーランス市場においても、Scala案件であれば、月収100万円超えはあまり特別なことではありません。

週2、3日の勤務で、並みのサラリーマンよりも年収の高いScalaプログラマー、Scalaエンジニアも結構いらっしゃるかと思います。

なお、業界ですが、基本的にはIT業界やゲーム業界です。

大規模なオンラインゲームを提供しているゲーム会社や、いくつものスマートフォンゲームアプリのタイトルを抱えているIT企業は、非常に強大なゲーム提供プラットフォームを構築しています。

そのゲーム提供プラットフォームにScalaが使われていることが多いのです。

ゲーム事業の肝となるところですから、そこで活躍するエンジニアに対する報酬も高くなるのは、ある意味、当たり前といえますよね。

他にも、今後、大規模なサービスに育てていきたいと考えているITベンチャー企業が、Webサービス開発にScalaを利用していることが多いです。

ちなみに、私は「どちらかと言えば、ベンチャー企業より大企業に就職した方が良い」という考えを持っていますが、Scalaエンジニアであれば、ベンチャー企業で働くのもアリだと思います。

なぜならば、すでに何度もお伝えしていますから、Scalaを扱えるエンジニアは非常に高給取りです。

そんな高給取りのScalaエンジニアに給料を払えるITベンチャー企業は限られており、いずれの企業も非常に将来性のある高付加価値サービスを提供しています。

そのベンチャー企業に残り続けても、辞めて他社に転職したり、フリーランスになったとしても、十分、メリットになる経験を積ませてもらえる可能性が高いと言えます。

さらにいえば、Scalaはエンジニアが不足しているので、万が一、“悪い会社”だったとしても、次の会社探しにあまり困らないはずです。

まとめ:Scalaは高年収を目指せるプログラミング言語

何度もお伝えした通り、Scalaは転職市場においてとっても強いプログラミング言語です。

高年収を目指すのであれば、身に着けるべきプログラミング言語と言って間違いありません。

ただし、プログラミング初心者にとって学びやすいプログラミング言語ではありませんし、プログラミング経験のある方でも、関数型プログラミングの経験がない方にとっては、苦戦する可能性が高い相手です。

習得には覚悟がいるプログラミング言語です。

今すぐシェアしよう!
今すぐシェアしよう!