パスワードを忘れた? アカウント作成
485447 journal

keisukenの日記: きょうのふていきにっき

日記 by keisuken

[Scala][Java] 最近お気に入りの言語Scala

たまには/.J日記だけの日記も書こう.

最近Scalaにはまっている.ScalaはJVMまたは.NET上のCLRで動くプログラム言語環境で,欧米でそこそこ注目されている言語だ.

はっきりいって文法や機能が豊富でかなりカオスだ.Simple is best!なんて言葉はこの言語にはないwww.

しかし,興味深い.

たとえばこの言語の特徴は,オブジェクト指向的静的関数言語という言葉に表されるが,基本的に型は静的に決定され,実行前に殆どの型は静的に処理される(少なくとも文法上は静的型付け).ただし純粋な関数言語ではなく,どちらかというと手続き型の言語だ.そういう意味ではRubyぽいコンセプトも持つ.ただしRubyよりもOCamlなどの関数型言語にちょっとだけ近い.

またパターンマッチに使われるcase classに代表されるような,型を上手く扱うための仕組みをたくさん用意してくれるので,基本的にマクロも動的な仕組みもそう必要なくコードが組める.

さらにParser Combinatorを使って内部言語を作れるので,DSL(ドメイン記述言語)だけではなくEDSL(組み込み用DSL)としても使える.

どちらかというとScalaはErlangで使われてる並列機構「Actor」を取り入れたことで有名だと思うが,よく勉強するとActorが入っているかどうかはあまり問題じゃなくて,強力な言語機能に魅力を感じるはずだ.

ということではまっている.というか動的言語じゃなくてもいいやと思い始めている.

今のところ商用で使われている例はあまりないようだが,Life Web FrameworkというちょっとRailsにも似たフレームワークを使った商用サイトは既にあるようだ.

Railsとの比較で特筆すべき点は,性能だろうな.ScalaはJava言語とほぼ同じくらいの性能を持っているので,何かと重たいといわれるRailsよりは速い(ただしメモリ喰いかも)と思う.

それからRuby/Railsの流行で,どうも動的に解決することが本質とととらわれがちだが,たぶんそれは本質じゃないし,静的に解決したっていいと思わせる言語でもある.

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

読み込み中...