Scala
Scalaの歴史について丁寧に分かりやすく解説
Scala(スカラ)とは? Scala(スカラ)はオブジェクト指向言語と関数型言語の特徴を合わせて作られたプログラミング言語です。スイス・ローザンヌにあるスイス連邦工科大学 (EPFL)の教授であるMartin Odersky氏によって2001年に設計され、2003年にリリースされた比較的新しいプログラミング言語となっています。 オブジェクト指向言語はクラスという概念を用いて、仕様の変更に柔軟に対応できる言語となっています。代表的なオブジェクト指向言語はJavaやC++、関数型言語はHaskellやF#となっています。これらの良さを組み合わせて作られた言語がこのScala(スカラ)です。 Scala(スカラ)にはJavaの良さを受け継ぎながらも、Javaにはない新しい仕組みがあるので多くの企業・エンジニアに注目されています。 特に関数型言語の特徴も合わさっているので、記述が簡単でコード量が少なく済みます。実際にJavaだと20行も記述しなければならないコードが1行に短縮することもできます。 コードが短い分、修正もしやすくなっているため長期間に渡って使うシステムの開発に向いています。開発スピードと性能品質にこだわりたい方はScala(スカラ)はかなりオススメのプログラミング言語です。 テクフリでフリーランス案件を探してみる Scala(スカラ)が誕生したきっかけは? Scala(スカラ)はスイス・ローザンヌにあるスイス連邦工科大学 (EPFL)の教授であるMartin Odersky氏によって2001年に設計され、2003年にリリースされたものですが、どういうきっかけで設計がなされるようになったのでしょうか? 原点はMartin Odersky氏が携わっていた他のプロジェクトにあります。 Martin Odersky氏はGJプロジェクトというJavaにジェネリックスを実装するプロジェクトに参加しました。Integer型やString型などのデータの型が様々ありますが、これらを同じように処理することができる機能をジェネリックスといいます。 このプロジェクトではPizzaというJavaに高階関数やデータ型、ジェネリックスなどの機能を実装した新しい言語を開発しており、そこにジェネリックスも実装したという形で進み、実際に成功を収めました。 ただ、この新しい言語であるPizzaにJavaの互換性を持たせると共に、ジェネリックスを実装するということは限界があるとMartin Odersky氏は感じており、Funnelというシンプルな表記で実装できる言語を開発しましたが、実用性が無かったために評判はよくありませんでした。 そこで、GJプロジェクトの成功とFunnel言語の失敗から、実用性とシンプルさを掛け合わせた新たな言語Scala(スカラ)が生まれました。実際にScala(スカラ)はオブジェクト指向言語と関数型言語の特徴を合わせて作られたプログラミング言語となっており、実用性がかなり高いものになっています。 Scala(スカラ)の黎明期・成長期について ここからはScala(スカラ)の黎明期・成長期について見ていきましょう。Scala(スカラ)はリリースされた2003年は企業においてプログラムの実装に使えるほど実用化できる言語ではなかったのですが、2006年のScala2.0のリリースではコンパイラがScala(スカラ)で書き直され、またJava仮想マシン(JVM)で動作するようになったため少しずつ実用化に向けて動き出しました。 Scala2.7ほどから注目がなされるようになり、このバージョンアップではJavaのライブラリを読み込める機能の安全性が増し、ジェネリックスに関しても改善がなされました。ここからScala(スカラ)が開発に使いやすくなり、Javaとの互換性や実用性を更に高める機能が実装されることになりました。 実際にTwitter社がRuby on RailsからScala(スカラ)に開発言語を移行することになった際は大きな注目を浴び、この頃にScala(スカラ)の知名度と人気度が共にアップしました。 Scala(スカラ)は世界中の企業に使われており、2014年以降には日本国内でScala(スカラ)に関する書籍も増え、多くの企業に採用され始めました。海外に比べると、日本国内でのScala(スカラ)の採用や移行はまだまだなので、Scala(スカラ)は成長期だと言えそうです。 実際にScala(スカラ)は様々な企業に使われているため、開発においての実用性を更に高めるべく日々改善がなされています。 Scala(スカラ)は現在どのように使われている? Scala(スカラ)が現在どのように使われているかということについて見ていきますが、Scala(スカラ)は比較的新しい言語であり、Javaの後釜として将来性が高いと言われているため、多くの企業の開発に採用されている言語です。 Githubではどの言語でプルリクエストがどれくらい行われているかということを公開しているのですが、Scala(スカラ)は12位となっていてトレンドとして上昇しています。このように現在かなり人気のプログラミング言語となっています。 海外だと皆さんもお馴染みのTwitterやLinkedinが開発言語としてScala(スカラ)を採用しています。世界中で使われているWebサービスにScala(スカラ)が使われており、多くの企業がこぞってScala(スカラ)に目をつけています。 国内だとインターネット・Web業界にてWebサービスやソーシャルゲームの開発にScala(スカラ)が使われています。代表的な企業はドワンゴ・GMOメディア・NTTデータ先端技術となります。 Scala(スカラ)はJavaの後釜と言われていますが、Javaとの互換性を第一に考えられて設計されたプログラミング言語です。そのため、JavaからScala(スカラ)への移行は容易にでき、Javaコードとの連携も容易できます。 開発にJavaを使用しているが、今後はScala(スカラ)に移行しようとしている企業も数多くあります。 今見てきたように、海外の有名IT企業や国内のベンチャー企業を中心にScala(スカラ)は使われており今後もこの傾向は続きそうです。転職の面で見ても、実際にScala(スカラ)エンジニアを求めている企業は増えているのですが、日本でScala(スカラ)を使いこなせるエンジニアが少なく、希少価値が高くなっている現状があります。 Scala(スカラ)を使いこなせるエンジニアの需要は高いので、待遇面では好条件で転職ができ、求人検索エンジンスタンバイが発表したプログラミング言語別年収ランキング2017では、Scala(スカラ)が1位となる626万円に輝いています。 Scala(スカラ)は学習コストが高いので学習が大変と言われていますが、今見てきたように高待遇の求人が多いというリターンが大きさが大きな魅力となっているので転職についても一度考えてみてはいかがでしょうか。 まとめ 今回はプログラミング言語であるScala(スカラ)の歴史について見てきました。 Scala(スカラ)が誕生した背景やその後の歴史についてなかなか興味深い話が多かったでしょう。 今回の内容をまとめると Scala(スカラ)は実用性とシンプルさを追求したプログラミング言語Scala(スカラ)はTwitter社やLinkedin社が使用しており、トレンドになっているScala(スカラ)エンジニアは希少価値が高く、転職の条件が良い となります。 プログラミング言語の歴史については様々な話があり、常に人々の手によって進化しています。Scala(スカラ)もその言語の一つで、変化をしながらも従来の信頼度の高さは変わらずに、不動の地位になっています。 今回でScala(スカラ)に興味を持った方はまずScala(スカラ)を使ってみてください! テクフリでフリーランス案件を探してみる