2012年12月4日火曜日

ゆるふわScalaプログラミング・振り返り(2)

11月30日に開催されたBPStudy#63で「Scalaプログラミング・マニアックス」の振り返り第2弾です。

後から気づいた書き忘れの項目として 「Scalaを採用する理由」があります。具体的には以下の5つを考えていました。

  • 静的型付け
  • JavaVM
  • 関数型によるアルゴリズム記述力
  • メニーコア(並列プログラミング)
  • DSL

静的型付けとJavaVMは、個人的にプログラミング言語を選ぶ時の必須項目と思っているものです。

静的型付けはよいとして、JavaVM上で動作するプログラミング言語であるというのは地味に大事です。Javaで開発された膨大なクラスライブラリが再利用できること、異なったプラットフォーム間での可搬性、マルチスレッド動作の安定性、といった要素を考えると、余程のことがない限りJavaVM以外は選びにくいというのが個人的な考えです。

関数型言語はリスト処理の機能が充実しているのと、高階関数といった機能を使っていろいろな技が使えるので、手続き型言語よりもアルゴリズムの記述力は高くなります。

Javaの場合、処理の記述は「手続き型」ですから「関数型」が可能なScalaの方が記述力が高くなるわけです。

とはいえ、以上の点だけであれば、今までどおりJavaを使いつつ、Project Lambdaのような関数型系の記述方式の拡張を待つという選択もあります。拡張を待つ間、部分的にGroovyやxtendといった言語を併用して凌ぐという手もあるでしょう。

ただ、Javaに「関数型」的な機能を拡張する方式で克服が難しいのではないかというのが、後の2つ「メニーコア」と「DSL」です。

それはなぜか…ということでセッションのディテイルに入るような流れを考えていたわけです。

0 件のコメント:

コメントを投稿