ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    プログラム言語「Scala」

    このエントリーを含むはてなブックマーク はてなブックマーク - プログラム言語「Scala」 あとで読む
    なんか、Scalaというプログラム言語が熱いらしい。

    ●TwitterがScalaを採用
    Twitter、Ruby on RailsからScalaへ - スラッシュドット・ジャパン

    2009年04月10日
    Twitter は Ruby on Rails で構築されたそのインフラを徐々に Scala に置き換えているそうだ。

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


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

    ●Scalaとは?
    Scala - Wikipedia

    Scala (スカラ、Scalable Language) はオブジェクト指向言語関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。


    Scalaは、スカラと読むんだな。(そのまんまだけど)
    「Scalable Language」という意味なんだ、なるほど。

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


    1番目の仮説はOKとして、2番目の仮説はどうなんだろう?
    大規模なアプリケーションであっても、バグが発生しにくくて、コードの記述量が最小で済む~そのためには、関数型言語の特徴、機能を積極的に採用しようということかな?
    いいとこ取りによって便利になるならいいけど、機能てんこ盛りで整合性が破綻しないだろうか?

    ●ScalaはJavaで動く

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


    Scalaは、Javaの動作環境があれば使えると。
    これなら、普及のハードルが低くて、みんな簡単試せるな。

    ●Scalaは豊富なライブラリが使える

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


    Javaや.NETのライブラリが使えると。これは、実務で即戦力になりそう!
    Erlangのように並列処理も得意なら、大規模なアプリケーションの開発にも向いているのかな?

    ●その他、Scalaの情報
    検索したら、たくさんヒットした。
    scala の検索結果 約 20,400,000 件

    Scalaの本家サイト
    http://www.scala-lang.org/

    Scala作者のMartin Odersky(マーティン・オダースキー)さん
    http://images.google.co.jp/images?q=Martin%20Odersky

    Scalaのまとめ記事があった。
    Scala チュートリアル集

    ●プログラム言語のデザイン
    Lispの勉強の次は、ScalaでWEBアプリを作ってみるべきだろうか?
    Twitterみたいなアプリを作ったりして(笑)

    …というか、プログラム言語をデザインできるようになればいいかも。
    =プログラム言語を使う側から、作る側に回る。

    「オーディエンスになるな!プレーヤーになれ!」

    Programming in Scala: A Comprehensive Step-by-step GuideProgramming in Scala: A Comprehensive Step-by-step Guide
    (2008/11/26)
    Martin OderskyLex Spoon

    商品詳細を見る

    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/343-e266077e

    FC2Ad