Scala2.9

Posted 2011年6月12日 by

5月25日に2.9がリリースされました。
新機能としては、「並列コレクションのサポートによって新たに追加された「par」メソッドを呼び出すことで、すべての順列コレクションを並列コレクションに変換できる」と、いたるところで掲載されています。

 2月から5か月間このページを更新しておりませんでしたがLiftも2.4が近々リリースされそうなので新しいScalaの可能性を探っていきます。

 この5ヶ月間はScalaから離れて、システムの実行環境について調査しておりました。
プログラム言語ではRuby on Rails、Python、PHP、JavaScriptと検証しておりました。実行環境ではクラウド。AmazonEC2/S3、Google Apps、Salesforce、Microsoft Azureと、Amazon EC2互換オープンクラウド環境のEucalyptus。
 最近はTwitterやfacebookの影響なのでしょう、以前のようにプログラミング言語やフレームワークではなく、サービスをいかに早く構築し、サイト成長を妨げるアクセス数の増加にいかに対応できるかに興味が移っています。

 クラウド環境で使える言語環境は何がいいのか?

メインに使っている言語は Java と JavaScript なので、Ruby on RailsやPythonやPHPとScalaとの言語的な比較は、比較対象となる言語を熟知していないのでわかりません。
Ruby on Railsが使えるクラウドがあるのでRuby環境について調べると、Ruby on Railsには純粋RubyとRubyインタプリタのJavaによる実装であるJRubyがあります。企業システムとしての実行環境からみると2つの課題が見えてきました。

Ruby on Rails

 Scalaが注目される理由に、「Twitter は Ruby on Rails で構築されたそのインフラをScala に置き換え」とあるように、

  開発速度 < 実行速度 に重点が置かれること。CUP当たりの処理性能にあります。少ない資源で多くのアクセスをさばくには処理性能は重要なポイントです。2011年、Evernoteとロンドン証券取引所は.NETとWPFで書かれてシステムを C++のネイティブ・アプリに書き換えられことからも裏付けらます。  Ruby on Railsのもう一つの課題は、フラットフォーム最新版へのマイグレーション保証とデータベース接続性。 実際に Ruby on Railsの実行環境を構築しデータベースとの接続を行おうとしたとき、fedora14+MySQL5.5の環境がうまく作れませんでした。古いバージョンのRuby on Railsではうまくいくようですが最新版ではインストールが途中でアウト。Ruby on RailsのデフォルトDBがMySQLからSQLite3へ変更されたことも原因なのかもしれません。  Oracleとの接続となるとお手上げ。エンタープライズではOracleDBがいまでもメインですから厳しいです。もうひとつ、Ruby on Railsがリレーショナルデータベースを隠蔽してSQL言語を意識することなくプログラムするという戦略が、データベースをチューニングするというファクタへの自由度を制限してしまいます。JRuby on RailsはJavaをフラットフォームにしているので魅力的に見えるのですがデータベースを隠蔽することはかわりません。  スクリプト系とネイティブ系の比較は実行速度を第一評価ポイントにするとネイティブ系には敵いません。 Scalaのスクリプト系として使い方できるWebフレームワーク環境が欲しいです。

Post Details

  • Post Title: Scala2.9
  • Author: admin
  • Filed As: Scala
  • Tags:
  • You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

コメントを残す