Scala試した

前から気になっていたScalaを試しました。その模様です。
例によって筆者はMacOSXなので、セットアップはMac版のみです。ごめんなさい。

セットアップ

portを使いインストールしました。

sudo port install scala29
sudo scala_select scala29

セットアップはこれだけで完了らしいです。

勉強してみる

以下の記事を参考に試してみました。
今からでも遅くない これから始めるScala 前・中・後編

こちらの記事が激しくお勧めです。読むだけでもscalaのことを知ることができるので、scalaが気になっている方は一通り目を通されると良いかと思います。

なお、筆者はjavaのソースを最後に打ったのが何時なのか思い出せないくらいの人です。javaの1.4の時が最後かも。。。そのあとspringとか試したような気もしますが、全く思い出せないです。ですが、scalaさんは結構何とか理解できました。Javaのことを知っている人が使うともっと良いのかもしれないですが、Rubyしかソースを書いていない人でも入っていける感じです。

次。「Lift」にいってみる。

scalaにはRailsのようにWebアプリを作れるフレームワークがあるらしい。名前は「Lift」というそうです。
http://liftweb.net/


概要についてはこちらで勉強しました。
ScalaによるWebアプリケーションフレームワーク「Lift」とは


と、ここで整理。どうやらこのLiftさん始める場合には2系統の方法があるらしいです。何せjavaのソースを最後に打ったのが何時なのか思い出せないくらいなので、もうわけ解らん。

  1. sbt
  2. maven

コンパイルしない言語な人なので、ビルドとか言われても「美味しいの?」なくらい全然ダメなんですが、頑張ることにしました。

どうやら必要なライブラリをダウンロードしてきたり、それらを使ってコンパイルしたりとそういったことを済ませてくれるものが上記の2つな感じがしました。厳密には違うんだろうがRails使いにしてみると、これくらいの理解でまぁいいやかと。。。

で、Railsでプロジェクトを作るように必要なファイルを作ってもらって始める訳なのですが、なかなかやっかいでございます。

まずはググって見つけた方法を試しました。2のmavenというのを使うパターンです。

mavenでlift

ではプロジェクトのファイルを生成してみます。

mvn archetype:generate -U (折り返し)
-DarchetypeGroupId=net.liftweb (折り返し)
-DarchetypeArtifactId=lift-archetype-basic (折り返し)
-DarchetypeVersion=1.0 (折り返し)
-DremoteRepositories=http://Scala-tools.org/repo-releases (折り返し)
-DgroupId=demo.helloworld (折り返し)
-DartifactId=helloworld (折り返し)
-Dversion=1.0

とか書くらしい。。。もうこの時点で発狂しそうです。実行すると泣きそうになるくらい何かPCが頑張っている感じ。どばーってダウンロードされるし。

軽く凹みましたが、終わったところでグッと気合いを入れ直し、

mvn jetty:run

と打ちます。

なんだか大量にログが表示された後どうやら「http://localhost:8080/」でサーバが起動した感じです。・・・home画面らしきものが表示されました。

sbtでlift

だいぶ精神的にはすでに一杯一杯なんですが、もう少し頑張ってみます。もう一つの方法です。

sbtと言うものを使うのだが、こちらの方がLiftのページでは紹介されています。手順は以下の通りです。

1,Liftのページからファイルをダウンロードする。

このページがだいぶわかり難いのですが、http://liftweb.net/downloadに行って「Lift 2.4-M1 release: TAR or Zip.」のTARをクリックです。

2,次にダウンロードされたファイルを解凍する。

  tar zxvf lift-lift_24_sbt-97fc76d.tar.gz

3、lift-lift_24_sbt-97fc76d というディレクトリができ上がるので、中を見る。

scalaの2.8と2.9用が別れているので、scala_29に入る。

4,そうすると何やらディレクトリが出てくる。詳細はREADME参照。

今回は「lift_basic」というフォルダを丸ごと適当な場所にコピーします。

5,コピーした「lift_basic」に入り作業

  ./sbt update

でしばし待ちます。どばーって感じです。

./sbt

これでコマンドプロンプトになります。この状態で色々とやるそうです。(./sbtのあとhelpと入力すると色々出てきた。)

今回はサーバを起動したいので

  > jetty-run

とすると

  [info] == jetty-run ==
  [success] Successful.

と出るので、ブラウザでhttp://localhost:8080/にアクセスしてみます。

お、出た。

なお、本当の1回目については何だか凄いファイルをダウンロードするので猛烈に遅いのですが、2回目以降や新しくコピーしたものでsbt updateをする分には速くなりました。ローカルにキャッシュしているってことですね。

まとめ

ま、ということで、今回は撮りあえず最初のページを出せたのでこれで良しとします。・・・お試しになっているのだろうか。。。まぁ、追ってということで。
Liftが凄いかどうかまでは、たどり着けませんでした。Railsもよくセットアップが大変だと言われるので、Liftキツイ!とかいうと「ふざけんな」と言われそうな気がします。

私は比較的なんでも重いものが好きじゃないので、ヘビー級IDEなどは使ってません。ScalaとLiftとsbtだと、javaではあるもののIDEの力を使わないでサクサクと作業はできる感じがしましたので、仕事の合間で今後も勉強してみたいと思います。

追記

sbtを実行し、その後で改めてjetty-runを実行しています。

これは、筆者がzshを使っている為なのか

sbt update ~jetty-run

と実行したところ、うまく動かなかったのでコマンドを二つに分けて実施したためです。bashで上記のコマンドを実行したところ正常に動いてますので、公式ドキュメントのとおりにやりたい方は、公式通りに実施してみて下さい。結果は同じです。