2010年6月6日日曜日
ScalaはHaskellっぽいJava
Scala ってどうもとっつきづらくて、サンプルソースを見ていて「この記号ってどういう意味よ?」って考え込んでしまう。Java っぽいけど Java とは別の思考が必要なのだ。
ふと思ったことは、「Scala って Haskell っぽい Java」なんだってこと。ネットを見ていいて、Scala に熱狂的な人を見かけるんだけど、そういう人って Haskell を触ってそれを気に入っていた人なのかなって思う。Haskell を実務で必要とする機会は皆無なのだけど、それが JVM 上で動くとなると、Scala に熱狂してしまうんだと思う。
確かに、Scala の Actor は魅力的で、Twitter が採用したのは納得できる。Twitter のようにメッセージ処理が主要な機能のシステムには良いが、小・中規模のWebアプリケーションにはActorのようなメッセージ処理は必要無い。
Scala は実務で採用しても開発メンバーの生産性が向上するまで数ヶ月はかかるはずだ。動的言語としては既に Ruby, Python, Groovy があるし、習熟度による生産性の問題を考えれば、そちらの方が良いと思う。
でも、Haskell 大好きな人たちからは、Scala はあまり好意的でも無いようだ。
「Haskell 大好きっ子から見ると Scala は気持ち悪いことこのうえない言語である」 http://madscientist.jp/~ikegami/diary/20080512.html
2010年5月27日木曜日
Java のスクリプト言語サポート
今更ながら、まとめ。
Java(JVM上)でスクリプト言語が動くのは Java SE 6 以降。
ただし、
・Ruby や Python は Java SE 6 以前から動作可能であった。
・Scala はコンパイルしてバイトコードにしてから実行するので、スクリプト言語サポートの機能を利用しているわけではない。
・JDKに組み込まれていて、すぐ使えるのは JavaScript(Rhino)だけ。
確認してみたら、Javaで動作するスクリプト言語って、かなり前からあったんだな。
安藤幸央のランダウン これは使える!Java風スクリプト
http://www.atmarkit.co.jp/fjava/column/andoh/andoh10.html
Java(JVM上)でスクリプト言語が動くのは Java SE 6 以降。
ただし、
・Ruby や Python は Java SE 6 以前から動作可能であった。
・Scala はコンパイルしてバイトコードにしてから実行するので、スクリプト言語サポートの機能を利用しているわけではない。
・JDKに組み込まれていて、すぐ使えるのは JavaScript(Rhino)だけ。
確認してみたら、Javaで動作するスクリプト言語って、かなり前からあったんだな。
安藤幸央のランダウン これは使える!Java風スクリプト
http://www.atmarkit.co.jp/fjava/column/andoh/andoh10.html
2010年2月20日土曜日
柔らかい言語
「動的言語」って良く使うけど、変数の動的型付けや、スクリプト言語であるか無いかで分類していいのだろうか。Mac, iPhone の Objective-C はガチなC言語がベースでコンパイル言語だけど、なんだか「柔らかい」。
反面、PHPは「動的言語」だけど、「固くて」肩がこって仕方ない。
プログラミングしていて感覚的には、
「柔らかい言語」 --- Ruby, JavaScript, Groovy, Perl, Objective-C
「固い言語」 --- C/C++, Java, PHP
って分けかたもいいのではないかな。
反面、PHPは「動的言語」だけど、「固くて」肩がこって仕方ない。
プログラミングしていて感覚的には、
「柔らかい言語」 --- Ruby, JavaScript, Groovy, Perl, Objective-C
「固い言語」 --- C/C++, Java, PHP
って分けかたもいいのではないかな。
登録:
投稿 (Atom)