InfoQ

News

JavaScriptをMVCに適応- Sprout Core

作者 Shane Witbeck, 翻訳者 編集部 投稿日 2007年8月26日 午後11時29分

コミュニティ
Java,
Ruby
トピック
Webフレームワーク
タグ
AJAX

SproutItがJavaScriptに新たなるフルMVCアプリケーションフレームワークであるSproutCoreを発表した。SproutCoreはMailroom製品用にSproutItで開発され現在ではアップル社にて.Mac Web Gallery用に使用されている。Tucowsでは以下のように述べている。

SproutCoreとはブラウザ内で全体的に作動するJavaScriptフレームワークである。どんなサーバでもバックエンドで動くようつくられている。Jolleyの会社SproutItではRailsをバックエンドとして使用している。SproutCoreフレームワークと共に含まれているカスタムRailsプラグインを通してコネクションを促進させているのだ。
JolleyはApple社ではSproutCoreをWenObjectsとWebDAVサーバーに反して作動させていると述べている。

既に有効なAjaxライブラリの数を知り、InfoQはSproutCoreの特異性に関して調べるためSproutCoreの開発者であるCharles Jolley氏を尋ねた。まず初めに既にいくつかJavaScriptが存在するのに関わらず、なぜ新たにまたそれを書こうとしたのか理由を尋ねた。

私達が新たなMailroom(中小企業用の電子メールマネジャソフト-http://www.sproutit.com/mailroom)のバージョンを作るとき単なるWebアプリケーションではなくて、デスクトップソフトウェアのような何かもっと優れたものを作りたかったのだ。

問題は他のフレームワークがAjaxやアニメーションでWebページに味を出すのを補助するためにつくられたものだということだ。 つまりWebブラウザ内でフルアプリケーションを作るのにはまったく助けにならないということだ。だから私がMailroomを作った時、この優れたインターフェースをサポートするため作ったものを全てそのフレームワークに取り込んだのだ。

現在のフレームワークにはないSproutCoreが持っている機能に関して彼はこう述べている。

SproutCoreと他のフレームワークの一番の違いはSproutCoreが本物のデータで実際に作業できるツールを与えてくれるところです。言い換えると自分のサーバからデータをダウンロードすることができ、またSproutCoreを使用してユーザインターフェースを作ることができます。
 ユーザがデータで作業するときSproutCoreはサーバーに戻ることなく自動的にユーザインターフェースを更新します。

とても簡単な例を出してみます。:Mailroomでは即座に返答する必要のあるメールを表示する"Needs Attention"というスクリーンがあります。メッセージに返答するときNeeds Attentionのページからそれをすぐに削除します。

伝統的なフレームワークやWebアプリケーションではサーバに戻り返ったり余分なJavaScriptを書く必要があります。With SproutCore it is automatic. SproutCoreではそれが自動的に行われます。メッセージのステートを"replied"に変更するとメッセージリストが更新されます。

次にSproutCoreを使用するに適応したアプリケーションに関して尋ねた。

デスクトップと同様のレベルのソフトウェアを作りたければ絶対にSproutCoreを勧めます。
自分のページでツールバー、メニューやソースリスト等を追加し始めるとたくさんの微妙なステートを保持しなければいけないことに気づくと思います。SproutCoreはこれを簡単にかつ正確にさせてくれます。

もしあなたがウェブページを持っていてAjaxやアニメーションで装飾したければSproutCoreはちょっと行き過ぎだろう。私だったらScriptaculousの様にもっとシンプルなフレームワークを使うだろう。実のところSprout itのマーケティングのページとブログの部分にはScriptacaulousとPrototypeを使用しているのです。 しかしながらウェブアプリケーションの構築にはSproutCoreを使用しています。

そして話題はApple社へと移った。Jolley氏はアップル社の.Mac Galleryと自身のコラボレーションの経過について説明した。Jolley氏はアップル社がSproutCoreのフレームワークを見た時彼らのアプリケーションの構築を手助けするようチームに参加して欲しいと彼らに尋ねられたことを説明した。 .Macのチームはパフォーマンス性とAPIに磨きをかけるという観点においてSproutCoreに多大な機能を付け加えた。これによって現在SproutCore APは以前のものより4倍から4倍も速くなったのだ。クロスブラウザサポートも向上した。

最終的にJolley氏にSproutCoreの未来について語ってもらった。

現在はソースリスト、ツールバー、ドラッグアンドドロップのような新しい機能をたくさん作っている過程にあります。でも多分もっと重要なのはサンプルアプリケーションやチュートリアルを制作していると言うことです。なぜならそれが現在アダプションに対する一番の防御策だと思っているからです。

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

特集コンテンツ一覧

トップスポーツチームの監督に教わる秘訣

この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。

事例研究:Dutch Railwaysのプロジェクトにおける分散拠点でのスクラム・プロジェクト

この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。

Agile2008チーム参加レポート - 帰国そして変化

Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。

SilverlightとJavaのインターオペラビリティ

マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。

Agile2008 チーム参加レポート - カンファレンス参加編

Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。

Agile2008 チーム参加レポート - 動機/準備編

筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。

Javaトラブルシューティングメルマガ総集編 2008/08~09

エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。

モデル駆動アプローチがうまく機能しない(しなくなる)8 つの理由

この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。