Windows互換のAPIセット「Wine」が、初のメジャーリリースを迎えました。開発が始まった1993年といえば、まだMacはSystem 7系列の頃ですね。NeXTSTEPも、マルチプラットフォームの道を歩み始めた頃。2000年あたりから開発の進み具合をウォッチしていましたが、まさかIntel製CPUを搭載したMacで使うことになるとは……じっくり試飲してみたいと思います。

第279回 まだ見ぬ「雪豹」を勝手に想像する(その1)」に続き、今回も「雪豹」ネタ第2弾……ではあるが、7月にサービス開始予定の「MobileMe」など、敢えてWeb方面から斬り込んでみたいと思う。

AppleはWebアプリに無為無策だったのか?

なにかと話題豊富なWebアプリの分野。MicrosoftのSilverlightも、AdobeのAIRも、WindowsのほかにOS X (そしてLinuxも) をサポートしたマルチプラットフォーム戦略をとる。ソースはもちろんバイナリも共通という、「Write Once, Run Anywhere」的なランタイム環境はユーザにとってメリットが大きい。Flash / FLEXと.NETの両方を、OSの別なくWebから使えるいい時代だな、と素直に喜ぶべきところだろう。

一方、それらの動きにAppleは"知らぬ顔の半兵衛"を決め込んでいたフシがある。OSはいうまでもなく、Safari / WebKitという自前のWebブラウザをも擁しながら、発表する新技術はローカルで実行するものばかり。ソフトベンダー各社がWebベースへの移行を模索し始めた (Microsoftの「Office Live」やAdobeの「Photoshop Express」が好例だろう) ことを知らないはずはなく、業績も好調で各方面に積極姿勢のAppleが無為無策とは考えにくい。

実際、昨年夏には1つの兆しが現れている。昨年夏に機能強化された「.Mac」には、iPhoto 7の連携でCover Flow風のスライドショーが楽しめるようになっているが、そこにはSproutCoreが使われているのだ。SproutCore自体はApple純正の技術ではないが、プロジェクトは買収され開発者はAppleの.Mac開発チームに移籍しているという。基本はオープンソース (MIT Licenseに準拠) のため、Safari / WebKitのように、Appleが陣頭指揮をとり磨きをかけるという戦略と推測してもおかしくはないだろう。MobileMeは、実装の一形式ということだ。

もう1つが、Safari / WebKitの新しいJavaScriptエンジン「SquirrelFish」。JavaScriptをバイトコード変換してから実行するJITコンパイラとしての機能を装備、従来のJavaScript Coreに比べ1.6倍のパフォーマンスを発揮するという。この実装も、確かなニーズがあってのものと考えたい。

そしてもう1つが、AppleのiPhoneへの取り組み姿勢。そもそもiPhoneはWebアプリ指向で、ネイティブアプリの開発キットは (戦略の変更により?) 遅れて投入されたが、開発が容易で外観 / 操作性ともAppleらしさを備えていれば、今後もWebアプリを主軸として機能が整備される可能性がある。Flashのサポートに及び腰なところも、なにか意図あってのことかもしれない。

Appleらしい洗練されたUIとその処理系、そしてそれらを必要とするプラットフォーム。具体的にはMobileMeとSquirrelFishという形でしか見えていないが、Snow Leopardにもなんらかの形でWebアプリ指向の機能が投入されるのはなかろうか。

SproutCoreを試す

そのSproutCoreだが、バージョン0.9.10が6月18日に一般公開されている。.Mac / MobileMeのフル機能を利用できるわけではないが、その一部を試せることは確かだ。

準備はかんたん、Terminalから管理者権限で「gem install sproutcore」を実行すればOK。これだけで、必要な一式がリポジトリからダウンロードされ、しばらく後にSproutCoreの機能を利用できるようになる。

gemを利用してインストールする

% sudo gem install sproutcore 
Password:
Bulk updating Gem source index for: http://gems.rubyforge.org
Building native extensions.  This could take a while...
Building native extensions.  This could take a while...
Building native extensions.  This could take a while...
Successfully installed activesupport-2.1.0
Successfully installed abstract-1.0.0
……
……

SproutCoreの「Hello World」デモ

まずはお約束の「Hello World」から。最初にSproutCoreのプロジェクトを作成 (1行目) し、カレントディレクトリをプロジェクトに移してから (2行目) SproutCoreのサーバを起動 (3行目) 、たったこれだけで準備は完了。あとはSafariなどのWebブラウザで「http://localhost:4020/hello_world」にアクセスすれば、図のように確認できるはずだ。わずかな作業でカスタマイズ可能なWebアプリのひな形を作成できるという点が、Ruby on Rails的と評されるゆえんだ。

$ sproutcore hello_world
$ cd hello_world
$ sc-server

SproutCoreのデモ「Photos」。Webアプリの先入観が崩れるはず

開発に興味がないユーザは、こちらで公開されているデモを試してほしい。注目したいのは、フォトブラウザの「Photos」。利用できる機能は、写真のサイズ調整と並べ替え、回転 / 透明度の調整程度と、凝った編集機能はないものの、動作が実にディピーディー。前述した1.6倍速のJavaScriptエンジンではない、現行のSafari 3.1を利用していても、サクサクと動作する。

Snow Leopardの登場まで、あと1年ほど。それまでに、Safari / WebKitのような形で開発および機能強化が進められるのではないか、そしていずれはWindowsとMac OS Xいずれからもアクセスできる (Appleらしい) UIとして認知されるのではないか、と考えるのだが。じっくり観察を続けていきたい。