Katsuyuki Ohashi Ohashi's Blog

月曜日 5 25, 2009

昨年あたりから少しずつ盛り上がりの兆しを見せていた Scalaですが、 「TwitterがRoRで実装した一部のサービスをScalaで書き換えているらしい」とか 「Google AppEngineでScalaを動かした」 というような具体的な事例が聞こえてくるようになると、 今後、更にScalaについて耳にする機会が増えてきそうですので、 どんなものかサラっとおさえておくことは悪くないと思います。

Wikipediaには

Scala (スカラ、Scalable Language) はオブジェクト指向言語と関数型言語の 特徴を統合したマルチパラダイムのプログラミング言語である。
と定義されています。 しかも、
ScalaはJavaプラットフォーム(Java仮想マシン)上で動作し、 既存のJavaのプログラムと容易に連携させることができる。 メインはJavaプラットフォームであるが、他も.NET Framework、 また携帯電話で使われている、 Java Platform, Micro Edition Connected Limited Device Configuration の実装もある。 Googleが中心になって開発が進められている携帯電話向けプラットフォーム・Androidでの動作も確認されている。
とのことでJavaとの親和性も高く、 Javaテクノロジー推進派の私たちとしてもとても興味深い技術です。 Scalaは静的型付けで、コンパイル時点でのエラー検出が可能なため開発生産性がとても高いと言われていますが、 型推論で自動的に型を補ってくれる機能があるため、Rubyのように簡潔なプログラム記述も可能です。これについては 「なぜScalaなのか?」というInfoQの記事に以下のように説明されています。
多くのプログラマがRubyを愛しており、好きで好きでたまりません。それはおそらくJavaが初めて登場して以来、最も激しく福音を説かれてきた言語のひとつです。彼らは大抵、柔軟で拡張性のある文法やクロージャ、そしてコードがどれほど簡潔で表現豊かかを引き合いに出します。

例えば、以下のようにシンプルなシンタックスでマップを作る事ができます。(Rubyでは”ハッシュ”と呼ぶ。ハッシュテーブルはマップを実装する唯一の手段です)
numberMap = {"one" => 1, "two" => 2, "three" => 3}

これをJavaで書くととても面倒です :
Map numberMap = new HashMap(); numberMap.put("one", 1); numberMap.put("two", 2); numberMap.put("three", 3);

では、Scalaだとどうでしょう?Scalaでのマップの例を見てみましょう。
var numberMap = Map("one" -> 1, "two" -> 2, "three" -> 3)

Ruby のコードと非常によく似ているのがお分かりでしょう。しかし、いくつか重要な違いがあります。具体的には、ScalaのコンパイラーはJavaのように、 numberMapがキーにはStringクラスを、値にはIntegerクラスを使うことを知っています。Javaとは違い、そうした指定を行う必要はありません。マップそれ自身が判断するのです!これは”型推論"と呼ばれています。

元々、Scalaは "Scalable Language" として開発されたこともあり、 Actorと呼ばれる軽量プロセスを使って、マルチコアCPUをおいしく使うことができるスケーラブルな プログラムを容易に作成することが可能ということも大きな魅力です。

他にも、ちょっと検索してみただけで、

Scalaを紹介するページがいくつか見つかりましたので、 お時間がある時にコーヒーでもすすりながら新たな刺激に浸るのはいかがでしょうか?

日曜日 5 24, 2009

Sun OpenDataアプライアンスのデータベースエンジンとして 使用されているGreenplumデータベースが、 5月27~28日に東京コンファレンスセンター(品川)で開催される Gartner社主催の ビジネス・インテリジェンス&情報活用サミット 2009でブース展示されます。 弊社の展示ではありませんが、 ぜひ会場でGreenplumデータベースのスゴさを体感していただければと思います。 ちなみに、Sun Microsystems Inc.は Greenplum社のInvestorsリストに名を連ねています。

もう春も終わりですが、南を向いて夜空をずっと見上げていくと、 ちょっとのけぞって首が痛くなるあたりで北斗七星が見つかります。 その柄杓の柄のカーブをそのまま延長していった線が春の大曲線と呼ばれていて、 その線上に橙色に輝くうしかい座のアークトゥルスと、 白色に輝くおとめ座のスピカがあります。 この2つとしし座のデネボラの3つを結ぶと春の大三角形です。 去年も一昨年も、もっとずっと前も、この時期の夜空はこんな感じで、 来年も再来年も、もっとずっと先のこの時期もこんな感じなのかと思うと、 自分たちの周りで日々起こっている変化なんてちっぽけなものなんだろうなと感じます。 大切なものはずっと大切で、何も変わらないってことなんでしょうね。

いつも案件のデリバリにご協力いただいている協力会社のT社長のおススメで、 ヘレン・メリルのCDを買ってじっくり聴いて見ました。 こういう声質が好きみたいです。早速、車に常備しました。 どうもありがとうございました。

木曜日 5 21, 2009

これまでここで何度か紹介してきたサンのデータウェアハウス・アプライアンス Sun Data Warehouse (SunDW) がSun OpenDataアプライアンスと名称変更され、 本日からjp.sun.comのトップページを飾っています。

Sun OpenDataアプライアンスはオープンなテクノロジーを利用し、 プロプラエタリなDWH製品の10分の1のコストで同等の機能/性能を実現する データウェアハウス・アプライアンス製品です。 データベースエンジンにはPostgreSQLデータベースを並列実行可能に拡張した Greenplumデータベース、 DB処理を実行するノードには 東京工業大学様のTSUBAMEスーパーコンピュータで実績のあるX4500シリーズを使用して システムを構成し、お客様に手軽にシステム導入していただくことができるよう アプライアンス製品としてパッケージングされています。 導入後の運用面においても、サン・プロフェッショナル・サービスの リモートサポート・サービスをご利用いただくことで、 運用監視からリモートでのバックアップ実行等、 お客様の運用の負荷を最小限にとどめて手軽にSun OpenDataアプライアンスを ご利用いただけるよう様々なサービスを提供しています。 ニューヨーク証券取引所Euronext様での導入事例等、 数々の実績があり、私たちとしても注目の製品です。 詳しい内容は こちらのページでご確認いただけます。

日々増加し続けているデータをどう取り扱うかは企業にとって重要な問題です。 こうしたデータをビジネスの中でどう活かしていくことができるか、 いわゆるビジネスインテリジェンス(BI)の重要性も日々高まっています。 サン・プロフェッショナルサービス (Sun PS)では、 お客様のデータウェアハウスおよびBIアプリケーションの導入から運用までを支援します。