YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

Scala事始め

はじめに

まえからちょっと気になっていた言語Scalaを始めてみようと思ったので、全くのゼロからとりあえずコードを書いてコンパイルするまでの手順をメモしてみる。

コンパイラ

サイトからプラットフォームにあったものをダウンロードしてインストール。執筆時最新版は2.7.6でした。ScalaJava VM上で動く言語なので、Java環境がなければなりません。上記サイトにある要件はJava Runtime version 1.5以降となっています。
なお自分はMacPortsで入れました。

$ sudo port install scala

開発環境

Emacs

自分はEmacsを使っているので、scala-modeみたいなのがないかなあと思っておもむろにダウンロードしたtar.gzを展開してみるとmisc/scala-tool-supportの中に諸々便利そうなものがあるじゃないですか。vim用設定とかもあるし。とりあえずemacs lisp.emacsに反映させます。

$ cd scala-2.7.6.final/misc/scala-tool-support/emacs
$ make  <-- .elcにする
$ mv -pv *.elc ~/.emacs.d  <-- 自分はsite-lispのディレクトリは使ってない
$ mv -pv scala-mode-variables.el ~/.emacs.d
$ which scala
/opt/local/bin/scala
$ cd 
$ emacs .emacs
(require 'scala-mode-auto) <-- 追加
Eclipse

一応記述量が減ったとはいえ、長い部分はあるのでIDEをつかいたい方にはこちらもありますよという程度。設定はリンクを見ればわかるけれど、下記をSoftware UpdateのLocationに設定すればよい。

http://www.scala-lang.org/scala-eclipse-plugin

ちなみにこちらよりもNightly Buildのパッケージの方が補完とかいろいろ気持ちよくしてくれる機能がたくさん入ってるらしいけど、自分は入れたらEclipseぶっ壊れたんでつかいません!

http://www.scala-lang.org/scala-eclipse-plugin-nightly

リファレンス/チュートリアル

まずは本家のDocumentationsを見る。結構いろいろそろっているので英語のドキュメント読むのが苦でなければここで十分。

O'reilly本家から出ているScala本がCreative Commonsで公開されている。しかもDjango Bookの要にパラグラフごとに読者のコメントがついている。

IBM developersWorksによる解説。

日本語のScalaの解説ページを調べた感じでは、若干文章が長い感じはあるものの丁寧に解説している気がする。

ちょっと触ってみて

とりとめもないチラシの裏

  • 拡張子は.scalaとするのが慣例。コンパイラはscalacで、インタプリタscala
  • Scalaはコンパイルしてゴリッと動かすのとスクリプトとして動かすのと2パターンあるということ。そして若干めんどくさいなーと思ったのがその2者でコードを書き換えないといけないという点。まあ当たり前といったら当たり前なんだけど、やっぱりどうせならインタプリタで走らせたコードをそのままコンパイル出来ればうれしいのに。
  • 生成されるバイトコードJavaのクラスファイル。
  • SbazというScala用のパッケージ管理ツールあり。Pythonのsetuptoolsみたいなもんか。Sbazscala本体をアップデート可能。
  • 関数宣言の時の=を忘れると予想しない結果になる(プロシージャとして見なされるため返り値なし)
  • 分散コンピューティング系のライブラリには力が入っている物の、それ以外はプラットフォーム(Java, .net)のものを使うべしとのこと
  • Staticじゃないよ、Object(Singleton)だよ!

これからいろいろ遊んでみるつもり。本も買ったし。