Scalaについて

プラットフォーム

主にJavaプラットフォーム(Java仮想マシン)上で動作し、既存のJavaのプログラムと容易に連携させることができます。
バージョン2.13.0時点ではほかにJavaScriptへのトランスパイルやLLVMもサポートしています。
また、過去には.NET FrameworkやJava Platform、Micro Edition CLDCのプラットフォームもサポートしていましたが、現在は開発が中断しています。

Scalaの歴史

Scalaは2001年にスイス・ローザンヌにあるスイス連邦工科大学 (EPFL) のマーティン・オーダスキー(英語版)教授によって設計されました。
マーティン・オーダスキー教授はFunnelという関数型言語のペトリネットを合わせた言語の開発に携わっていて、オーダスキーは過去にGeneral Javaとjavacの開発に携わった事がありました。
ScalaがJava言語と共通部分が多いのはここからきています。

Scalaの特徴~メリット~

一つ目はJVMで動作する点です。JVM上で動作することは、macOSやWindows、Linux等JVMが動作していればどのOSにおいても実行可能ということです。
Javaという言語は20年以上業務システムの現場で利用されています。この言語はサン・マイクロシステムズという企業から始まり、現在はオラクルという会社の元で管理されている言語です。
多くの業務システムで作られたライブラリが存在するということは、そのライブラリを利用することで、再度その部分の実装をする必要が無いのです。
つまり、実装する手間を少なくするという大きなメリットがあります。

二つ目に、フレームワークが優秀。フレームワークとは、よく使用する実装方法を柔軟にかつ簡単に実装する方法をあらかじめ用意してくれている枠組みのことです。
ScalaのフレームワークにはPlay2の他に、RubyのSinatraに影響を受けたScalatraや、Ruby on Railsに影響を受けたServletベースのSkinny Frameworkや、Twitterで開発されているFinagleなどがあります。
これらの優秀なフレームワークが存在することは、開発効率を格段に向上することになります。

三つ目に静的型付け言語であるということです。静的型付き言語は、変数や、引数や返り値などの値の型が、プログラムの実行よりも前に仕様として実装済みになっています。
プログラムの実行前に実装済みになっているエラーが発生する可能性を未然に防ぐことができるので、エラーの発生するリスクが少なくてすみます。

Scalaの特徴~デメリット~

デメリットとしては、学習コストの高さがあります。理由として学習時間の長さです。Scalaを言語として上手く開発に活用するには、オブジェクト指向言語と関数型言語の二つを学習し内容を理解したうえで初めてプログラムに反映できます。この二つの言語を理解しないといけないのが学習時間の長さに繋がってしまいます。

取り入れている企業

実はScalaで作られているものは皆さんの身近にあります。海外企業であれば、SNSのTwitterの一部はScalaで作られていますし、PayPalなどにも使用されています。
日本企業でも使用している企業がどんどん増えていて、「ニコニコ動画」で有名なドワンゴやChatWork、フリューなどのゲーム業界などでも使用されています。他には、株式会社はてな、グリー、SmartNews、ChatWork株式会社、フリュー株式会社などでも使用されています。

Scalaの国内の立ち位置

Scalaは衰退傾向にある

結論から言ってしまうとScalaは国内では右肩下がりで衰退傾向にあります。

理由として、先ほどお伝えしたScalaの学習コストの高さです。そしてそれによる技術的負債化の進行です。学習コストが高くてもScalaが人気があった時代であればScalaを学習したい、Scalaを学習してScalaを取り扱ってる企業に就職したい人が多くなりScalaという言語が中心にビジネスも上手く回っていたのですが、Scalaの人気があった時期が過ぎて注目度が下がっていくとScalaをやりたいエンジニアも当然右肩下がりに減っていきます。そうすると会社からScalaエンジニアが抜けていってもScalaを扱える新しいエンジニアをすぐに雇うことが難しくなります。

エンジニアが少なくなればScalaを使っているサービスを保守したり新機能を追加することが難しくなってしまいます。この負のスパイラルにより「技術的負債化」が進行してしまい、会社のビジネスに大きな悪影響を与えてしまうわけです。

さらに、元々Scalaを利用していた企業が新規開発案件で使用する言語をScalaではないものにしたり、それを知った他の企業さんがScalaという言語を利用するには大きなリスクがあると判断し、Scalaを使わなくなっていくことでScalaが右肩下がりで衰退している要因になってしまっています。

最後に

最終的に、Scalaという言語はすぐに消えることはないですが、日本国内では数年後にはマイナー言語になってしまう可能性が高いかもしれません。ただ、海外では使われている言語として非常に優秀で人気もあるので、国外でもエンジニアとして活躍したい、人材価値を高めたい、戦えるフィールドを広げたいと思っている方にはオススメの言語だと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です