GAE開発の落とし穴
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Geoffrey Wiseman , 翻訳者 岡田 英久 投稿日 2007年10月16日
JavaFXが5月のJavaOneで初めて発表されて以来、Javaにおけるクライアントサイドのユーザエクスペリエンス向上に焦点をあてた活動が、にわかに活発になった。
SunのSwing Toolkitチームに所属するJoshua Marinacci氏(サイト・英語)は最近、JavaFXを構成していると考えることのできる一連の技術をアピールし、JavaFXイコールJavaFX Scriptではないことを強調していた。
JavaFXのマーケティング上の定義は、リッチなユーザエクスペリエンスを生み出すための製品とテクノロジの集合だ。
では、マーケティングを抜きにすれば、JavaFXとは何なのか?それは、私たちがクライアントサイドに、そしてユーザに焦点を合わせた多くの新しいものを作り出しているということを意味している。作り出しているものとは、見栄えの優れた新しいアプリケーションを開発するための新技術でもあるし、既存の技術をよりよいものに改善することでもある。JavaFXは、私たちが未来のアプリケーションを構築することができるようにするための基本となる機能である。私はここで、ユーザインターフェースという言葉よりも、ユーザエクスペリエンスという言葉を使いたい。なぜなら、ユーザエクスペリエンスという言葉には、単なるGUIコンポーネントとよい見栄え以上のものがあるからだ。そこにはJavaをインストールする経験、Javaのアプリを実行する経験、ソフトウェアのアップデートを行う経験までもが含まれる。要するに速度と信頼性だ。そして、開発時の経験だけでなく、実行時の経験も含んでいる。UIウィジェットも重要だが、これら全てがあなたの製品を利用するユーザの経験の重要な一部分なのである。
彼はJavaFXに含まれる技術を次のように項目分けしている。
InfoQはこれらおよびその他のトピックについてJoshua Marinacci氏にインタビューした。
JavaFX ScriptはクライアントサイドJavaアプリケーションを構築する新しい方法として順調に前進している。 最近のJavaFXチュートリアルは、基本的な(source)コンセプト(source)や2Dベクタ画像描画用のキャンバス(source)、そしてRMI(サイト・英語)とJAX-WS(サイト・英語)とを使ったクライアント/サーバコミュニケーションを紹介し、グラフィカル的にリッチなWebページ(source)を再現していた。
ツールもまたJavaFXPadデモ(サイト・英語)とJFXBuilder(サイト・英語)からJavaFX Script NetBeansプラグイン(サイト・英語)へと進化を続けている。
JavaFX Scriptはまだ実用できる段階ではなく(source)、今のところ速度もすこし遅い(source)のだが、作業は今まさに進行中である。とはいっても、JavaFX Scriptは十分成熟しているJavaのクライアントサイド技術の上に構築されているのだが。
JavaFX Script(JavaFXの一部分)はまだ開発の初期段階であり、幅広く利用されるための準備はまだ整っていない。まだ開発途中なので、私は、誰かがこれを製品に使って発表して欲しいとは思っていない。しかし、JavaFX Scriptは要するに成熟したJavaSEスタックのリッチな機能にアクセスする新しい手段である。早くて安定したランタイム上で多くの高品質なオープンソースライブラリを手にし、多くの異なる言語で開発を行うことができる。特に、強力なサーバサイドJavaアプリケーションを使って簡単に作業を進めることが可能だ。
JavaFXには、すでに述べたJavaFX Scriptに加えて、デザイナーとデベロッパーをターゲットにした別のツールが含まれる。
私たちはデザイナー用に新しいツールセットを作っている。もちろん私たちの他のツールとコードを共有することにはなるだろうが、単なるNetBeansのモジュールなどではない。デザイナーとコンテンツクリエイターを特に対象としたフルセットのツールだ。IDEよりもFlashのほうに近い。私たちは恐らくNetBeans GUI Builder(旧名Matisse)にもFXのサポートを追加することにはなるだろうが、それは純粋なデザイナーツールとは異なる。自分にとってこの新しいデザイナー用製品の開発チームにいるのは本当にエキサイティングだ。私たちはそこで作業する優秀な人たちに出会い、多くの素晴らしいアイデアを得た。この技術には多くの人が胸を躍らせてくれるだろうと思っている。
デベロッパー用には、オープンソースプロジェクトとして完成している本格的なコンパイラと同様、Java.netでNetBeansのプラグインを開発している(現在、α版を見ることができる)。私たちはもちろんコンパイラとNetBeansをうまく統合させるつもりだが、コンパイラはIDEとは別々に動作するように設計されている。
JavaFX Mobile(サイト・英語)は、モバイルデバイスのOSからフレームワークやアプリケーションにまでおよぶ完全なスタックを提供するためにSunがSavaJe(サイト・英語)から買収したスタックの上に構築されている。
JavaFXの(JavaFX Mobileの、ではない)ゴールのひとつは、プラットフォームの分裂に終止符を打つことだ。
私たちは、Javaが分裂しているのはよくないことだと常々言ってきた(当たり前だが)。そしてそれが、私たちがJavaのオープンソース化に非常に慎重だった理由である。Javaを分裂のない状態に保ち続けることは、Javaのエコシステム上、恐らく最も重要なことだ。もしそれが真実だとするなら(私はそう信じている)、デスクトップとサーバのJavaが統一される中でモバイル環境だけが取り残されるのは合理的ではない。
- JavaFX Mobileは完全なモバイルスタックであり実装である。ただの仕様の集合ではなく、実際の実装をひとつ含んでいる。基本的にはOS全体とアプリとAPIが全てJavaで書かれており、唯一、カーネルといくつかのデバイスドライバのみC言語で記述されている。
- システムをその場でアップデートできる。モバイル市場がバグフィックスや最新機能を欠いた古い実装によって分断されることはもうなくなるだろう。どのデバイスも同じバージョンのプラットフォームを用いることができるようになる。
- JavaFX Mobileはハイエンド機器用にデザインされている。これはつまりJavaSEの能力に近づくということだ。
三番目が最も重要だ。私たちの長期的なゴールはJavaSEとJavaMEをひとつに収斂させること。そこでは開発者は複数のAPIを知る必要はない。Javaはひとつしか存在しない。
Joshは、どのキャリアがJavaFX Mobileのデバイスをオファーリングする可能性があるかには言及しなかったが、Google Phoneの噂に対して「私は他の人と同じくらい熱心に噂サイトを読んでいる」とコメントしており、iPhoneのインパクトに関する洞察を披露している。
ひとつだけ言っておこうと思う。JavaFX MobileがどうやってAppleのiPhoneと戦うのかよく疑問視される。iPhoneは実際はJavaFX Mobileにとって素晴らしいものだ。あなたがAppleとの独占的な取引を得られなかった携帯電話メーカーかキャリアであると仮定しよう。もしあなたがiPhoneライクなデバイスを作りたいとしても、AppleはOSやアプリを販売してあなたを助けるようなことはしないだろう。でもSunは違う。今後数年にわたって、モバイル世界は今までよりずっとエキサイティングになりそうだ。
Cunsumer JRE(source)は最近はじめてのプレビューリリース(サイト・英語)が登場したばかりで、それ自体がこれまでとはまた別のひとつの技術クラスタとなっている。中にはNimbus(source)ルックアンドフィールが含まれている。
Cunsumer JREは、たまたまJavaで書かれたアプリケーションを利用することになったコンシューマーを助け、現時点で可能な水準よりも一層合理的で手間のかからない方法で利用を始めることができるようにしてくれる。また、クイックスタートのメカニズムとハードウェアの高速化によって、Javaはこれまで以上の速度で応答を返してくれるようになるだろう。
あまり理解されていないが、重要なことは、JavaFXの一部分がJava SE 6 Update Nであるということだ(Java SE 6 Update Nは、以前はプロジェクトHamburg、さらに以前はConsumer JREと呼ばれていた)。これは、インストールやデプロイのエクスペリエンスの劇的な向上を含んだJavaSE 6のニューリリースである。インストールやデプロイというとつまらなく聞こえるかもしれないが、それはユーザがJavaのアプリを使い始めるときやインストールするときに最初に体験することなので、非常に重要だ。まもなくJavaSEに訪れる変更は、JavaFXスタックの先端で目にすることのできる、一層クールな多くの機能の土台となるものだが、仮にJavaFXの他の機能を何も利用しなくても、それだけでも有用なものである。Java SE 6の最初のアップデートリリースは来年春に公開される予定なので期待していてほしい。
最後に、Nimbusルックアンドフィールおよびメディアの統合はJavaのエクスペリエンスをリッチで愉快なものにしてくれるだろう。
私の理解では、メディア(具体的に言うとビデオ)を扱うにあたって最大のチャレンジは法的なものであって、技術的なものではないので、Javaが速くないとか十分に強力ではないという問題ではない。新しいメディアサポートの最初のバージョンではプレイバックとフレームグラバーをサポートするはずだ。この二つで、通常Web上で求められるクールな効果は大体実現できる。私たちは、Quicktimeのような完全な編集用APIは作成していないが、利用者は基本的なことをとても簡単に実現できるようになるだろう。
現在進行中であるこれら全ての野心的な計画によって、SunとJavaは未来のメディアリッチでデラックス感をもったデスクトップアプリケーションの分野で重要な成果を生むことができるのだろうか?それとも、クライアント上のJavaはすでに訪れそして過ぎ去ってしまった夢なのだろうか?Josh はこれらの取り組みの信頼性について語る。
Sunは企業のクライアントサイド領域に取り組み、非常にうまくいっている。たくさんの大企業がSwingベースの課金や販売システムを使っているのに皆驚いているだろう。Sunは以前(少なくともここ10年)はコンシューマ向けのクライアントサイドを一度も追いかけたことがなかったが、今、私たちはそれを追いかけている。
私たちの言葉を信じて欲しいとは言わないけれども、代わりに、私たちが実際にやっていることを見てくれるようお願いしたい。JDK 7の開発ビルドをじっくり試してほしい。まもなく新しいJava SE 6アップデートのベータに導入される新しいデプロイ機能を見てほしい。JavaFX Scriptで遊んでみてほしい。NetBeansのGUI builderを使って欲しい。私たちはクライアントサイドに真の変化を作り出している。Sunはサーバの企業であってクライアントサイドでの信頼性はないと感じる人たちがいることは知っているし、だからこそ、実際の行動や発表する製品を見て欲しいと考えている。これが大きな変化であることには同意するけれど、世界は常に変化している。Webは5年前とは違ってきているし、モバイルの世界は大きな変革の最中にある。全てが変化しているのだ。もちろんSunも。
さらに詳しい情報を知りたい方はOpenJFXプロジェクト(source)に参加して、JavaFXに関するJoshの投稿(source)を見てほしい。そして引き続きInfoQのJavaコミュニティ(source)をチェックしてほしい。
原文はこちらです:http://www.infoq.com/news/2007/10/javafx-client-side-java
【豆蔵】「オブジェクト指向を現場で活かすリファクタリング入門」新規講座キャンペーン中
【豆蔵】大好評のため、Jenkins講座を追加開催致します!Jenkins作者の川口氏が講師です。
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式
本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。
前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。
Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。
スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。
No comments
スレッド表示 返信