![]() |
安藤幸央のランダウン[31]
JavaプログラマはAjaxに乗るべきか
安藤幸央(yukio-andoh@exa-corp.co.jp)
株式会社エクサ
2006/4/28
|
「Java FAQ(What's New)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集局) |
■Ajaxプログラマに必要なスキルとセンス
Ajaxアプローチを活用したWebアプリケーション開発には数々の技術的スキルと、センスを要求される。もちろん統合開発ツールや整ったライブラリをうまく活用すれば、すべての知識に習熟している必要はない。しかし下記に挙げる各項目が得意であるかないかで、設計や全体の出来に反映してくるのは明らかであろう。
●Ajaxに必要なスキルセット
|
また、Ajaxアプローチを活用したサービス特有のユーザーインターフェイスYFT(Yellow Fade Technique)や、AjaxLoadといった独特のユーザーインターフェイスを熟知し、うまく取り入れていく必要もある。さらに設計段階でどの部分をクライアント側(JavaScript)に任せ、どのタイミングで非同期通信し、データを効率よくやりとりする方法を考えなければいけない。さまざまな点で従来のWebアプリケーションとは少々違い、リッチクライアント的開発要素が必要になってくる。
こういったユーザーインターフェイスのセンス、データのやりとりに関する設計のセンスは従来のWebアプリケーションの概念の範疇(はんちゅう)にありながら、使いやすいものが求められている。Ajaxに必要なスキルセット一覧を見ると、Javaプログラマ(特にサーバサイド、エンタープライズ分野のJavaプログラマ)が得意とする領域である。まずは使えるところからAjax的操作感、軽くて使いやすいユーザーインターフェイスを提供していけば、より良いWebアプリケーションを構築することができる。
■Ajax統合開発ツール
Ajaxに関して、横目で見ながら興味を持ちつつも、あと一歩踏み出せない理由に、統合開発ツールの充実度がまだまだ低いことが挙げられる。実際、現在主流のAjax開発スタイルは、JavaScriptのXmlHttpObject()関数を直接コントロールしたり、Prototype.js、Dojo、DWR、Script.aculo.usなどのJavaScriptライブラリを活用するのが一般的となっている。
ただ、少しずつではあるが、従来のWebアプリケーション開発ツールがAjaxと親和性を持ってきており、Ajaxライブラリの取り込みや、Ajaxコンポーネントの扱いが可能なツールも登場してきた。 まずは、JavaScriptで用意された各種エフェクトや、ユーザーインターフェイス部品を組み合わせて簡単に手早く開発していくのが主流になっていくと考えられる。
では、Ajaxアプローチで開発する際に役立つ各種開発ツールをいくつか紹介していこう(Ajaxライブラリ、コンポーネントは除く)。
| ●TIBCO:General Interface Builder(無料) ドラッグ&ドロップで部品を配置していくタイプの開発ツール。開発したAjaxアプリケーションはGeneral Interface Framework上で動作する。 ●Morfik:WebOS AppsBuilder XML、HTML、CSS、JavaScriptを記述することなしにAjax的アプリケーションを構築できるツール。Morfikの技術 JST(JavaScript Synthesis Technology)をベースとしている。
●JoyiStar:WebShop 2.2オブジェクト指向に基づいたAjaxコンポーネントを組み合わせるビジュアル開発ツール。 ●Genuitec:MyEclipse Enterprise Workbench 4.1 JavaEE 統合開発ツールであるMyEclipseへJavaScriptの編集/デバッグ機能が追加されたもの。 ●HOWS:AjaxBuilder マウス操作でWebページに部品を割り付けしていくことで、プログラミングなしで動的なWebページ用のコードが自動生成される。 ●Sun:Java Studio Creator 2(無料) Java Studio Creator に Ajax コンポーネント群が追加された。JSFコンポーネントで包まれた Ajaxコンポーネントを扱える。
●IBM:AJAX Toolkit Framework Eclipse IDEに組み込むAjax用プラグイン。JavaScript編集機能、デバッガ、DOMブラウザなどの機能を持つ。 ●Oracle:JDeveloper 10g Release 3(無料) JDeveloper 10g Release 3より、JSFコンポーネントOracle ADF FacesがAjaxに対応するようになった。 ●Interakt:JS Eclipse Eclipse IDEへのJavaScriptプラグイン。Ajax用ライブラリDojoやPrototypeに対応。 ●Microsoft:Atlas NET環境でAjaxをサポートするAtlas Frameworkは今後正式版のリリースが予定されている。 |
統合開発環境と呼べるには、さまざまな機能と要素がそろっていなければ十分とはいえない。ライブラリ、コンポーネント(部品)、エディタ環境、デバッグ環境、テスト支援環境、ビルドツール、パフォーマンスプロファイラ、リファクタリング支援環境、等々である。これらすべてを100%満足するツールの登場が待ち望まれるが、単機能のみ満足するツールをいくつか組み合わせて利用するのも1つの手法である。
エディタ部分、デバッグ環境部分だけを見ればJavaScript専用の優秀なツールもいくつか存在する。状況に応じて単機能ツールを採用するのも効果が期待できる。Venkman JavaScript DebuggerなどのJavaScriptデバッグに特化したツールなどもAjax用とはうたっていないまでも、大いに活用できるツールである。
今後Ajax開発ツールに期待されるのは、WebユーザーインターフェイスのデザイナーとWebアプリケーション開発者の双方を満足させるツールである。また、複数のデザイナーとプログラマのチームが分業してプロジェクトを進めるのに適したツールが台頭してくるのではないかと考えられる。今後に期待しよう。
■Ajax Officeの席巻
GoogleがWebワープロのWritelyを買収したり、ブラウザ上で表計算ができるajaxXLSやAjaxベースのカレンダーツールなどAjax周辺が騒がしい。従来インストールして使うタイプのアプリケーションが次々にAjax化してきている。
次回のコラムでは、Ajaxの広がりによって、より期待感の高まってきたAjax Officeツール周辺に関して取り上げる。
■関連URL
■関連書籍
- 「Ajaxイン・アクション」(Dave Crane氏ら著作の翻訳本/柏原正三(翻訳)、株式会社はてな(監修)/インプレス刊)
ISBN:4844322222(2006/04/28発売予定)
安藤幸央のランダウン バックナンバー
- 第1回 Javaを速くするための心構え
- 第2回 サーバサイドで進化するグラフィックス
- 第3回 ユーザビリティ(使いやすさ)の大切さ
- 第4回 Javaプログラマのお役立ちサイト
- 第5回 伝説のイベントJava Night
- 第6回 次世代のインターネット言語curl登場!
- 第7回 次世代を予感させるグリッドコンピューティング
- 第8回 音声はコンピューティングを変える?
- 第9回 GoogleをWebサービスから利用するAPIの登場
- 第10回 これは使える!Java風スクリプト
- 第11回 PtoPはいよいよビジネスのステージに
- 第12回 ハリウッド映画並のCGがPCに到来する日
- 第13回 知的ゲーム「Robocode」でJavaのチャンピオンに
- 第14回 海の上のJava Night
- 第15回 Java版テラリウム? ただいま開催中
- 第16回 進化したアプレット、Viewletとは?
- 第17回 Eclipse:新しい開発環境モデルの誕生
- 第18回 Webサービス、どこまで実用になっている?
- 第19回 SWTは本当に高速なGUIを実現するのか?
- 第20回 JavaOne 2003の注目トピックを振り返る
- 第21回 SIGGRAPH 2003に見るJavaの進化
- 第22回 AmazonWebサービスの可能性
- 第23回 オープンソースの検索エンジン登場
- 第24回 技術者の祭典JTC BOFとJava Night
- 第25回 リッチクライアント時代の到来
- 第26回 Eclipse 3.0のリッチクライアントとは?
- 第27回 データ中心型、簡単リッチクライアントJDNC
- 第28回 浸透する新世代のシンクライアント
- 第29回 WebプログラマはRailsに乗るべきか?
- 第30回 Ruby On Railsのチームに学ぶ仕事術
- 第31回 JavaプログラマはAjaxに乗るべきか
- 第32回 Java SE 6へ移行する理由と移行をとどまる5つの理由
- 第33回 見つけて得するソースコード専用の検索エンジン
- 第34回 Podcastでプログラマーに必要な英語をStudyしよう!
- 第35回 人気のAPI/フレームワークを作るための39カ条
- 第36回 あなたのサイトはiPhoneで見られますか?
- 第37回 バッチ処理はJavaでバッチリ?その現状とこれから
- 第38回 Cometに代表されるサーバ・プッシュ技術の復権
- 第39回 ソースコードの宝石箱、●●Forgeを見逃すなかれ
- 第40回 Webアプリ開発環境としてのSafariを知ってますか?
- 第41回 夏休みに世界へ挑戦! プログラミングコンテスト
- 第42回 開発者が知っておくべきJavaと仮想マシンの歴史
- 第43回 あなたの知らないJDKの便利ツールたち
- 第44回 時を欠ける症状−うるう秒から考えるサステナビリティ
- 第45回 IT業界で楽しく仕事をするための10カ条
- 第46回 そのWebサービスで“対価”をもらえますか?
- 第47回 IT系でも活用しなければ損。論文を読んで広がる知見
- 第48回 Webからの知見、見つけた論文の読み解き方
- 第49回 Java技術者も知っておきたい「AR(拡張現実)」
- 第50回 クラウド活用「雲活」のために押さえるべき39のポイント
- 第51回 意外と知らないバージョン表記・数字の豆知識
- 第52回 グーグルは、○○おもいっきり、テレビ
- 第53回 いま購読するべき15の開発者ブログ
- 第54回 技術者なら知っておきたい「ソーシャルゲーム」とは
- 第55回 開発者は覚えておきたいアプリストア/マーケット大全
- 第56回 売れるスマホアプリを目指せ! テスト達人への道
- 第57回 プレゼン巨人の星となるためのツールと手法のまとめ
- 第58回 ぼくらの七ボタン戦争 - Social Buttons War
- 第59回 師走を楽しもう。技術系アドベントカレンダーの魅力とは
- 第60回 GitHubをもっとソーシャルに使いこなすための7つ道具
| プロフィール |
安藤幸央(あんどう ゆきお) 1970年北海道生まれ。現在、株式会社エクサ
マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元
CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG
の情報源となるWebページをまとめている。ホームページ: http://www.gimlay.org/~andoh/java/ 所属団体: OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman) 主な著書 「VRML 60分ガイド」(監訳、ソフトバンク) 「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社) 「The Java3D API仕様」(監修、アスキー) |
| ご意見、ご感想は掲示板へどうぞ |
| JavaコラムINDEX |
TechTargetジャパン
- EclipseでScalaプログラミングを始めるための基礎 (2012/2/10)
概要や5つの特徴を紹介し、開発環境を構築して対話型実行環境「REPL」やEclipse上でHello Worldを実行します - 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




1970年北海道生まれ。現在、株式会社エクサ
マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元
CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG
の情報源となるWebページをまとめている。