Scala試した
前から気になっていたScalaを試しました。その模様です。
例によって筆者はMacOSXなので、セットアップはMac版のみです。ごめんなさい。
勉強してみる
以下の記事を参考に試してみました。
今からでも遅くない これから始める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のソースを最後に打ったのが何時なのか思い出せないくらいなので、もうわけ解らん。
- sbt
- 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
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をする分には速くなりました。ローカルにキャッシュしているってことですね。