Scala入門記002 初めてのScalaプログラム

すでに3ヶ月サボってしまいました。
Scala漬けになりたい所ではありますが、なかなかそういう訳にもいなかないですね。。。

前回Scalaのちょっとした実行とsbtを紹介したので、今回はちゃんとプログラムをファイルに書いて実行するための記録です。
Scala入門記の目次はこちらです。

コマンド(scalacとscala)でコンパイルして実行する

最初はHelloWorldですよね。
JavaでHello!と表示されるプログラムを書いて実行するときは

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello!");
    }
}

というHello.javaファイルを作り、コマンドで

javac Hello.java #Hello.classができる
java Hello #Hello!が表示される


という流れだったものが、Scalaでは

object Hello {
  def main(args: Array[String]) {
    println("Hello!")
  }
}

というHello.scalaファイルを作り、

scalac Hello.scala #Hello.classができる
scala Hello #Hello!が表示される

という流れになります。
まとめる程でもないですね(^^;


sbtでコンパイルして実行する

普通はEclipseとかのIDEを使うのでこんなことやらないのですが、sbtを使うとIDEがなくてもいいんじゃない?って感じにもなります。


上記のScalaのプログラムを書いたフォルダで

sbt ~run

として実行します。
本当は推奨のディレクトリ構造があるのですが、ルールに沿ってなくてもsbtは頑張ってくれます。


この時の「~」があるのとないのでは大違いです。
まず「run」によってsbtがプログラムを見つけて、実行してくれます。
sbtが出力出力するログに埋もれてしまって見づらいのですが、

Hello!

という出力があります。


そして「~」をつけたsbtはソースの更新待ちになっています。
sbtはそのままでHello.scalaのprintln("Hello!")をprintln("Hello world!")に変えてあげると、sbtは自動的に更新されたファイルをコンパイルして再実行してくれます。
便利ですね。

テキストエディタだけでもプログラムがかけてしまいそうです。

まとめ

プログラムのファイルから実行する流れを確認しましたが、私は結局はIDEを使うので今後はscalacはほとんど打たないでしょう(^^;
でも、sbtは今後もずっとお付き合いすることになると思います。
sbtは開発の中心にいつも存在することになりそうです。


Scala入門記の目次はこちらです。

Scala入門記001 初めてのScala環境

Scala入門の様子を記録してます。
3回目です。まだ書きためてあります。
Scala入門記の目次はこちらです。


Scalaのプログラムを実行するにはその環境が必要です。
今回はおそらく基本であろう2つの環境を紹介します。


Scala

Scalaを初めて使うために必要なのは普通にScalaインストールです。
ググってどこかのサイトを参考にして入れるといいと思います。

私はHomebrewで入れました。

brew install scala


実行環境としては、scalaに付属している対話型の実行環境(REPL)が便利です。
コマンドラインscalaと打つとそのままプログラムが書ける環境になります。

起動すると

scala>

とプロンプトが表示されるので

println("hello")

と書くとhelloが表示されます。


Javaな感じで

System.out.println("hello")

と書いてもhelloが表示されます。

tabで補完できるので、ちょっとした動きを確かめるときにすごく便利です。


sbt

もう1つの実行環境としては、sbtが非常に便利で強力なので是非マスターしたいところです。

私はとりあえず、始める sbtをさらっと読みました。


簡単にまとめると、

  • mavenやivyのリポジトリで依存ライブラリを管理できて
  • 定義ファイルはScalaで簡潔に書ける
  • 開発もしやすいビルドツール

でしょうか。


このツールを使いはじめることがScalaに入門することになるんじゃないかと思います。
これも私はHomebrewで入れました。

brew install sbt

sbtのセットアップはこの辺が参考になります。
http://scalajp.github.com/sbt-getting-started-guide-ja/setup/


sbtでどうやって実行するかは次回以降にまとめる予定です。
今回はここまでです。


Scala入門記の目次はこちらです。

Scala入門記000 前提条件

Scala入門の様子を記録してます。
目次はこちらです。

前提(私のこと)

  • 基本はJavaエンジニア
  • Javaの次のステップとしてScalaを使いたい
  • 普段はEclipseでコーディング
  • リファクタリング機能Love
  • プロジェクト管理はmaven
  • 最近は2年くらいGAEばっかりやってた
  • 今年からAWSな感じ
  • 仕事でScalaを使う

目的

  • Scalaのコードをストレス無く読める
  • Scalaでコードをストレス無く書ける
  • Scalaフレームワークでシステムを作れるようになる
  • 自力で複雑なプロジェクトを作れるようになる

手段

と、いい環境があれば色々使ってみたいところ。

環境

手元の資料

今回はここまで。

目次はこちら

 

以下、広告。

Scalaスケーラブルプログラミング第2版

Scalaスケーラブルプログラミング第2版

プログラミングScala

プログラミングScala

ボクらのScala ~ 次世代Java徹底入門

ボクらのScala ~ 次世代Java徹底入門

Scala逆引きレシピ (PROGRAMMER’S RECiPE)

Scala逆引きレシピ (PROGRAMMER’S RECiPE)