Javaの後継?!Scalaって何だ??

こんにちは!ぐちです。

Java言語を用いたプログラムは皆さん組まれたことがあると思います。ここ数年ではAndroidアプリもJava言語を使いますしWebシステムでも基幹システムでも多く用いられている言語ですね。

そんなプログラミング界の有名なJava言語ですが完璧ではなくカバーしきれない欠点といいますか苦手分野もありましてそういった部分を改善した新しい言語をご紹介したいと思います。

Scalaとは

Wikipediaによると

オブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。名前の「Scala」は英語の「scalable language」に由来するものである。

とのことです。

スケーラブルというだけあって拡張性には非常に優れている言語だそうです。ちなみにスカラと読みます。

特徴

ScalaはJavaプラットフォーム(Java仮装マシン)上で動作するため既存のJavaプログラムと容易に連携させることができるほか下記のような特徴があります。

  • 開発生産性を高める簡潔な表記が可能である
  • Javaの豊富なライブラリが使える
  • 全てがオブジェクトとして扱われるオブジェクト指向言語である。
  • 静的型付けを行う関数型言語である。静的型付けのため、コンパイル時点でのエラー(特に型関連の)検出が得意である。
  • 型(クラス)をJavaなどと比べてより容易に作ることができ、また、型を使った条件分岐をはじめとして、型に関する機能が豊富なため、メソッドやメンバ変数を束ねるだけのクラスではなく、型に積極的な意味を持たせてのプログラミングが可能である。
  • 型推論があるため、多くの場所で型を自動的に補ってくれる

REPL

REPLとは「Read Eval Print Loop」の略でコマンドライン上でScalaのコードを対話形式で実行出来るものです。ちょっとした動作確認等に重宝します。

案件で採択するか

簡単にいうとコーディング量が減りバグが潜在しにくく開発生産性を高めてくれる夢のような言語なのかもしれませんね。ただ学習コストはかかるので案件で採択する際はメンバーのスキルレベルと予算など熟考が必要だとは思います。

詳しい構文などは改めてご紹介します。