KIMURA PLUS(旧館)

個人の感想です

OS X Yosemite で Scalaの言語環境を整える

はじめに

Mac OS X YosemiteScalaを使う、はじめの一歩の環境構築メモを残しておきます。

なお、私はこれからScalaを学習したいと思っているレベルの人間です。
関数型言語をやればモテるかなとぼんやりと思っている程度でして
λとか高階関数とかイミュータブルとか圏論とかよくわかっていません。
sbtとかMybeモナドとか言われてもさっぱりピンときません。
この情報もどこまで正しいかわかりません。個人の感想です。
そこのところ何卒よろしくお願いいたします。

環境

準備

ScalaJava仮想マシン(JVM)上の言語で、コンパイルも実行もJava処理系が必要です。
ScalaソースコードコンパイルするとJavaバイトコードができて、
できたJavaバイトコードJVMで実行することでプログラムが動く、ということですね。

もし、あなたの環境にJava処理系が入っていなければ入れてみましょう。
Oracleのサイトにいって
JDKJREを選択してインストールすればOKでしょう。JDKにはJREも入ってます。私はJDKにしました。

さて、Java処理系であればどのバージョンでもいいのでしょうか?

公式サイトにはJava6 ( version 1.6) 以上のJava処理系が必要とあります。

The Scala software distribution can be installed on any platform with a Java runtime, version 1.6 or later.

Download | The Scala Programming Language

しかし、Scala 2.12ではJava 6( version 1.6 )のサポートを打ち切るという話もあるので、
できるだけ新しいバージョンのJava 8を使ったほうがいいでしょう。

導入

HomeBrewを導入している場合は、コマンド一発でインストールできます。
HomeBrewを導入していない場合でも、公式サイトからtgzファイルをダウンロードした後、任意の場所に展開してPATHを通せば動くと思います。

今回、私はHomeBrewを使ってScalaを入れますのでコマンド一発です。

$brew install scala 
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/scala-2.11.
######################################################################## 100.0%
==> Pouring scala-2.11.5.yosemite.bottle.tar.gz
==> Caveats
To use with IntelliJ, set the Scala home to:
  /usr/local/opt/scala/idea

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/scala/2.11.5: 46 files, 29M

バージョンの確認をします。2.11.5のバージョンのScalaが入ったようです。

$ scala -version 
Scala code runner version 2.11.5 -- Copyright 2002-2013, LAMP/EPFL

実行

Hello Worldしましょう。 scalaコマンドを引数なしで実行すると、Rubyirbみたいなインタラクティブな処理系が現れます。

$ scala
Welcome to Scala version 2.11.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_31).
Type in expressions to have them evaluated.
Type :help for more information.
scala> object HelloWorld {
     |     def main(args: Array[String]){
     |         println("Hello, world!")
     |     }
     | }
defined object HelloWorld

scala> HelloWorld.main(null)
Hello, world!

HelloWorldオブジェクトのmainメソッドを呼び出し、printlnで文字列を表示しました。 簡単でしたね。コンパイルもしてみましょう。

以下のコードをHelloWorld.scalaという名前で保存します。

object HelloWorld {
    def main(args: Array[String]){
        println("Hello, world!")
    }
}
$ scalac HelloWorld.scala # コンパイル
$ scala HelloWorld # 結果が返ってくる
Hello, world!

こんなところですね。

以降の学習

Scalaの特徴の触れるため、下記のQiitaのコンテンツを見てみます。

2014年こそScalaを始めよう - Qiita

えっと、ここを読まずに最初から↑を見ればいいですね。。

そのほか、Twitter社が出しているGitHub上の学習コンテンツを見てみようかと思っています。
Scala School

以上です。お疲れ様でした。