OS X Yosemite で Scalaの言語環境を整える
はじめに
Mac OS X YosemiteでScalaを使う、はじめの一歩の環境構築メモを残しておきます。
なお、私はこれからScalaを学習したいと思っているレベルの人間です。
関数型言語をやればモテるかなとぼんやりと思っている程度でして
λとか高階関数とかイミュータブルとか圏論とかよくわかっていません。
sbtとかMybeモナドとか言われてもさっぱりピンときません。
この情報もどこまで正しいかわかりません。個人の感想です。
そこのところ何卒よろしくお願いいたします。
環境
準備
ScalaはJava仮想マシン(JVM)上の言語で、コンパイルも実行もJava処理系が必要です。
ScalaのソースコードをコンパイルするとJavaバイトコードができて、
できたJavaバイトコードをJVMで実行することでプログラムが動く、ということですね。
もし、あなたの環境にJava処理系が入っていなければ入れてみましょう。
Oracleのサイトにいって
JDKかJREを選択してインストールすれば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コマンドを引数なしで実行すると、Rubyのirbみたいなインタラクティブな処理系が現れます。
$ 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のコンテンツを見てみます。
えっと、ここを読まずに最初から↑を見ればいいですね。。
そのほか、Twitter社が出しているGitHub上の学習コンテンツを見てみようかと思っています。
Scala School
以上です。お疲れ様でした。