0
0

More than 1 year has passed since last update.

Scalaとは・環境構築

Posted at

概要

最近業務でScalaを用いることが多くなってきた。Scalaの日本語文献が少なく、初学者にはハードルが高い言語だと自分の中で思っているが(筆者も苦しんだ。。。)、なにかまとまったサイトがあればいいなと思い執筆している。

Scalaとは

一言で表すと、オブジェクト指向と関数型プログラミングが融合された言語である。歴史を辿ると、スイス・ローザンヌにあるスイス連邦工科大学の教授であるMartin Odersky氏がJavaにジェネリクス(様々なデータの型を同じように処理することができる機能)を実装するプロジェクトに参加したのが始まりである。すなわち、Scalaの基となった言語はjavaなのである。そのため、Scalaを実装するにあたりjavaの知識も必要だし、なおかつ関数型言語の知識も必要である。

では、Scalaの良さとはなんなのだろうか。それはつまり、コード量の少なさが挙げられる。具体的にはJavaだと20行も記述しなければならないコードが1行に短縮することが可能である。

現在ではTwitterやLinkedInの開発言語としてScalaを採用されており、日に日にその需要は増している。Scalaを学習することでオブジェクト指向と関数型プログラミングの両方を学ぶことができ、マスターすれば引く手数多な人材(実際にScalaの求人広告の単価は非常に高い)になっていることだろう。

環境構築

今回はsbtと呼ばれる、ScalaとJavaのビルドツールを用いて実行やビルドなどを行えるように環境構築を行なっていく。大まかな手順としては

  1. JDK (Javaの開発環境)をインストールする
  2. sbtをインストールする

の2つである。
JDKがインストールされているかどうかは、以下のコマンドで確認できる。

> javac -version

ちなみにjavacのcはコンパイル(compile)の省略語である。

1. JDKをインストールする

JDKはOracle社が提供しており、以下のHPから最新版のJDKをダウンロードする。

「Java SE Development Kit 17.0.1 downloads」(2021年11月26日現在)をダウンロードする(Javaの環境も整うキットとなっているが、中にJDKも含まれている。)

Windows人は環境変数を自身で設定する必要があるため、以下の手順に従って環境変数を設定する。

  1. コントロールパネル > 全てのコントロールパネル項目 > システム から「システムの詳細設定」(左側にある)をクリックする。
  2. 詳細設定タブを押し、下部の環境変数をクリックする。
  3. システム環境変数の「Path」をクリックし、編集ボタンを押す。
  4. インストール時に置いた場所(デフォルトの場合はC:\Program Files\Java\jdk17XX\bin)をコピペする。(\binまで書く必要あり)
  5. 最後にシステム環境変数の欄にJAVA_HOMEがない人のみ新規作成で環境変数の設定を行う。変数値としてC:\Program Files\Java\jdk17XX\を設定する。(\binは不要)

無事にPathが通っているかは上記で書いたJDKがインストールされているかどうかを実行すれば確認可能である。

2. sbtをインストールする

次にscalaのビルドツールのインストール方法を説明する。下記HPからmpiインストーラーをクリックしよう。

mpiインストーラーをダウンロードしsbtがインストールされたことを確認するために以下のコマンドを叩こう。

> sbt sbtVersion

実際に書いていこう

scalaが正常に起動できたため、コマンドラインでscalaを実際に書いてみよう。

scala

と打つとscalaが起動されるため、最初にHello Worldを表示させるコードを実装しよう。

println("Hello World")

無事にHello Worldが表示させることができたなら、次のブログではScalaでつまづくobject/trait/classに関して説明していく。(編集中)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0