【Scala入門】言語の特徴や環境構築・基本文法を解説!

Scala(スカラ)は、アメリカのIT企業で近年導入が進められている、プログラミング言語です。学習言語として知られるJavaとの互換性が高く、使いやすいため人気が高まっています。

Scalaの需要は今後増える可能性があるため、習得を検討している方も多いのではないでしょうか。この記事では、Scalaの概要や特徴とメリット、開発環境の構築方法について解説します。

公開日:2023年3月29日

Scalaとは?入門者向けに解説!

「Scala」とは、関数型とオブジェクト指向型の両方を扱えるプログラミング言語です。関数型とは、関数をメインに使用し、プログラムを成形するプログラミングスタイルのことを指します。関数は、計算など何らかの処理を行う部品のようなもので、関数を使い、定義・呼び出しをすることで、処理後の値を得ることができます。

一方、オブジェクト指向型とは、特定の処理を行うプログラムをひとつにまとめて、オブジェクトとして扱う考え方のことです。オブジェクト指向を採用することで、それぞれの役割にわけてプログラムが作れるため、メンテナンスがしやすいなどのメリットがあります。

Scalaは、関数型とオブジェクト指向型の特徴が統合されている、「マルチパラダイムプログラミング言語」です。オープンソースソフトウェアなため、無料で使用することができ、現在Webサービスの開発等で積極的に採用されています。例えば、ドワンゴやAmazonなどの大企業が採用しており、人気の高さが伺えるでしょう。

ScalaはJVM上で動作します。JVMはJava Virtual Machineの略で、Java仮想マシンのことです。これにより、ほかの言語との連携が容易に行えるので、柔軟性の高いスムーズな開発を実現できます。

Scala 入門 プログラミング言語

ScalaはJavaとの互換性が高いプログラミング言語

Scalaを開発したスイス連邦工科大学教授のマーティン・オーダスキーは、General Javaとjavacの開発に携わった経験があるため、ScalaはJavaとの互換性を重視して開発されたプログラミング言語となっています。そのため、 Scala はJavaのクラスをインポートしたり、ライブラリを使用することができます。

また、前述の通りJVMは、Javaをプラットフォーム上で動作するコードへ変換するソフトウェアを意味します。JVM上で動作するプログラミング言語は限られているますが、ScalaはJavaと互換性が高いためJVMでも動作が可能です。

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

Scalaの3つの特徴とメリット

入門者が知っておきたいScalaの特徴とメリットを解説します。

Scalaの3つのメリット

Scalaのメリットは下記の3点です。

  • オブジェクト指向と関数型プログラミング両方が扱える
  • 数式がシンプルでJavaとの互換性がある
  • オープンソースであるため改変が活発

それぞれの特徴を詳しく紹介していきましょう。

オブジェクト指向と関数型プログラミング両方が扱える

Scalaの大きな特徴として挙げられるのは、オブジェクト指向の機能と関数型プログラミングの両方を扱うことができる点です。これによって、Scalaでは関数をオブジェクトとして扱うことができます。

数式がシンプルでJavaとの互換性がある

そして、Scalaは関数型言語のため数式をシンプルに書くことができます。また、ScalaはJavaとの互換性を第一に考えて開発された言語のため、JavaのライブラリをScalaでも使うことができます。

オープンソースであるため改変が活発

Scalaはオープンソースのプログラミング言語です。そのため、コードを自由にカスタマイズでき、エンジニア自身が求める仕様に組み替えることが可能です。

Scalaはメリットが豊富な言語

特徴がつかめたところで、Scalaを使用するメリット3つを紹介します。

JVM上で動作するため、Javaの知識を活用できる

ScalaはJVMという、Javaのプログラムを動かすために必要なソフトウェア上で動作します。そしてScalaはJavaをベースにしたオブジェクト指向言語に加えて、関数型の機能が使用できます。

つまり、これまでJavaを使用してきたエンジニア、プログラマーはJavaの知識を活用しながらScalaで開発をすることができます。

非同期プログラミングのため処理が速い

Scalaは「Future」という、非同期の計算ができるようになるライブラリが標準搭載されています。そのため、同期のために必要なタイミングの一致がなくてもデータのやり取りが可能なので、スピーディな処理が可能です。また大量同時のアクセスにも対応できます。

Akkaによる並行・分散プログラミングのライブラリがある

さらにScalaには「Akka」という並行・分散プログラミングのためのライブラリもあります。Akkaを利用することで高い拡張性、そして耐障害性を維持することができます。

Scalaのメリット

【Scala入門】開発環境の構築

Scalaを使用してプログラミングをするためには、下記の3点をインストールする必要があります。今回のインストール環境はWindows11です。(※OSの環境によってインストール方法が異なる場合があります。)

  • Java Development Kit (JDK)
  • sbt
  • IntelliJ IDEA

それぞれのインストール方法について解説します。

Java Development Kit (JDK)のインストール方法

1. Java Development Kit (JDK)をインストールするためには、下記のURLにアクセスしてください。

https://adoptium.net/

2.画像のように、赤枠の部分をクリックします。

3.セットアップウィザードの通りにインストールを進めてください。

sbtのインストール方法

1.sbtをインストールするためには、下記のURLにアクセスしてください。https://www.scala-sbt.org/download.html

2.Windowsの場合は、インストーラーが提供されています。

3.MacはHomebrewを利用します。

4.Linuxはsbt-rpm.repoを追加の上、yumでインストール可能です。

IntelliJ IDEAのインストール方法

1. IntelliJ IDEAはこちらのURLからインストールできます。

2.環境に合わせて適切なOSを選択し、ダウンロードボタンをクリックします。

3.インストールウィザードの手順通りに進めればインストール完了です。

【Scala入門】実際にコードを書いてみよう

次は、Scalaで実際にコードを書きます。
Hello Worldの出力や簡単な計算プログラムの作成、関数の使い方について解説しますので、ぜひ参考にしてください。

Hello Worldを出力

1.下記のコマンドを実行してプロジェクトを作成してください。今回、チュートリアルにおけるプロジェクト名はhello-worldです。

2.cdコマンドでプロジェクト配下まで移動し、sbtを実行します。

3.無事にHellow , Worldを出力させることができました。

4.また、Hello,Worldの文字列を変更したい場合は、プロジェクト配下の『src』→『main』→「scala」の中にあるMain.scalaの下記の部分を書き換えてください。

5.Scalaで文字列を出力するときは、Predefオブジェクトのprintlnメソッドを使用します。 println(“Hello, World!”)

簡単な計算プログラムを作成

Scalaにおいても他言語と同様にさまざまな算術演算子、論理演算子が使用可能です。インタープリタで算術演算子等を実行し、演算子の挙動や型の変化をチェックしていきます。

1.下記のコマンドを入力してScalaのインタープリタを立ち上げます。

2.算術演算子の挙動は下記の画像の通りです。

3.論理演算子の挙動は下記の通りです。

関数を使ってみよう

Scalaの関数は、下記のように宣言をします。

def 関数名(引数):返り値のデータ型 = {処理}

引数は変数名:データ型の形式で定義し、データ型を省略することはできません。一方、返り値のデータ型は省略可能です。

それでは、簡単な計算プログラムの関数をチュートリアル形式で定義していきましょう。

1.先ほど作成したプロジェクトのMain.scalaを開き、下記のようにコードを編集してください。

2.上記で定義したadd関数は、xとyの合計を計算し、その値を返すように定義されています。そして、最後に出力させるためにprintlnメソッドを使用しています。今回は、10と20の合計が下記の画像のように出力されました。

おすすめのScala学習方法

Scalaが学習できるおすすめの方法は下記の2点です。

  • チュートリアルや動画講座で学ぶ
  • 書籍で詳細を学ぶ

それぞれの学習方法について解説します。

チュートリアルや動画講座で学ぶ

Scalaは、公式のチュートリアルをWebで公開しています。

初心者向け、リピーター向けに項目がわけられており、知識レベルに合わせた学習が可能です。また、動画講座で学ぶ方法もあります。例えば、下記の講座ではScalaの基礎やオブジェクト指向の概念など、プログラミングに必要な知識を習得可能です。

書籍でより詳細に学ぶ

書籍は情報量が豊富なため、Scalaの深部まで学ぶことができます。しかし、初心者が書籍から学ぶと挫折するリスクが高まるため、動画講座を視聴してある程度Scalaに触れた後、書籍を手に取るのがおすすめです。

ある程度知識を身につけることができたら、自作システムを開発してみると良いでしょう。自分で開発をすることで、今まで習得した知識をアウトプットできるため、さまざまなことを効率よく記憶できます。また、エラーが発生したり、バグが見つかったりするので、それに対する対応力も身につけられるでしょう。

学習を続けていくうちに独学では解決できないことも出てくるので、Scalaの勉強会やイベントに参加するのもおすすめです。Scalaエンジニアに直接質問することができます。そしてScalaを導入している企業のエンジニアの技術ブログや、SNSをフォローすれば最新のScala情報をキャッチしやすいです。

Scalaはこれから多くの国内企業の開発現場に導入される可能性が非常に高いプログラミング言語です。そのため今の段階から早めに習得して、エンジニアとしての市場価値を高めておくのがおすすめです。

Udemyおすすめ講座

Apache Spark with Scala - Hands On with Big Data!

Apache Spark with Scala - Hands On with Big Data!

4.6(17,944 件の評価)

99,155 人の受験生

作成者: Sundog Education by Frank Kane(Join over 900K students learning ML, AI, AWS, and Data Eng.)
Frank Kane(Ex-Amazon Sr. Engineer and Sr. Manager, CEO Sundog Education)
Sundog Education Team(Sundog Education Team)

Apache Spark tutorial with 20+ hands-on examples of analyzing large data sets, on your desktop or on Hadoop with Scala!

\無料でプレビューをチェック!/

講座を見てみる

評価:★★★★★
Very comprehensive and to the point, also the tutor has amazing verbal prowess, doesn’t feel boring at all.

評価:★★★★★
Thank you for all the information shared. This is a baby step towards spark development.