会社で 発見  赤岩くんに 感謝

社内で Scalaで開発しているメンバの面談.某社の会計システムで 使っているらしい.
並行処理といえば Erlang なのだが.それでSIPサーバを構築した私としては 少し 開発を覗く.
 赤岩くん さすがですね.


TwitterScalaを採用
 TwitterRuby on Rails で構築されたそのインフラを徐々に Scala に置き換えているそうだ。「Fail Whale」出現の原因となったりしていた。
このため Twitter の開発チームは代替言語として Scala を採用、少しずつバックエンドやインフラを Scala に置き換えているそうだ。
スイス連邦工科大学ローザンヌ校の Martin Odersky 氏によって開発された比較的新しいプログラミング言語である Scala は並列プロセスの処理に長けている点が Twitter に向いており、また言語としてのフレキシビリティも開発にとっては魅力とのこと。

Twitterツイッター)は、インターネット上でメッセージをやりとりするサービス。
多くのユーザーが利用しているので、大量のメッセージを処理しなければならない。
メジャーなWebサービスで採用されたScalaとは、どんなプログラム言語なのだろうか?

Scalaとは?
Scala (スカラ、Scalable Language) はオブジェクト指向言語関数型言語の特徴を統合したマルチパラダイムプログラミング言語である。
Scala開発の動機
Martin Oderskyによると、Scala開発の動機は2つの仮説による。
1. 汎用言語はスケーラブルでなくてはならない。同じ概念で、小さいプログラムも大きなプログラムも記述できるべきである。
2. スケーラビリティは関数型言語オブジェクト指向言語の2つのプログラミングの概念を統合し、一般化することにより実現できる。

ScalaJavaで動く
ScalaJavaプラットフォーム(Java仮想マシン)上で動作し、既存のJavaのプログラムと容易に連携させることができる。
メインはJavaプラットフォームであるが、他も.NET Framework、また携帯電話で使われている、Java Platform, Micro Edition Connected Limited Device Configuration の実装もある。
Googleが中心になって開発が進められている携帯電話向けプラットフォーム・Androidでの動作も確認されている。
Scalaは豊富なライブラリが使える

Java.NET Frameworkの豊富なライブラリが使える
全てがオブジェクトである
標準ライブラリとして、Actorと呼ばれるErlangライクな文法の軽量プロセスが提供されている
構文解析のための、パーサーコンビネータが標準ライブラリに入っている
ユニットテストのためのライブラリが標準ライブラリに入っている

Erlangのように並列処理も得意なら、大規模なアプリケーションの開発にも向いているのかな?

SIPサーバをErlangで構築私には Erlangのほうが と思うのだが、すこし気になった言語でした