Sep 28 2008

JavaScript も HTML もかかずに Web アプリをつくる

猫も杓子も Web アプリケーションということで、0 インストールの優位性がよかったのか、営業さんの努力の結果か。 いわゆる基幹系の業務アプリも Web テクノロジーで作られるご時世ですが、ここで問題になるのが HTML と JavaScript 。 業務アプリをかくのは、ぼくみたいな業務ロジックをかくプログラマーであるわけで、HTML とか JavaScript とかよーわからん、ってところが正直なところ(笑)

おまけに、その手のアプリケーションで、ユーザインターフェースに多くの人員や工数をさけるほど余裕があるプロジェクトも少なく、かくして、「よーわからん」プログラマー達が英知を結集して、HTML と JavaScript をかきはじめ大変なことになるのはよく見る光景です。 :-)

てなわけで、立ち上がったソフトウェア業界(?)。 JavaScript も HTML もかかずに、ぜんぶ Java でかいちゃおうぜ、っていうフレームワークがいくつかあります。 まずは、彼ら自身も思っていたらしい Google さんの Google Web Toolkit。

Google Web Toolkit – Google Code

現在、ウェブ アプリの記述は退屈で、エラーが発生しやすいプロセスです。90% の時間をブラウザ固有の動作への対処に費やし、JavaScript はモジュール化できないため AJAX コンポーネントの共有、テスト、再利用を難しく、もろいものにしています。

・・・。

退屈でもろいっつったな!!

・・・その通りだ、よく言った(笑)

Web 企業の Google がいうんだから間違いありません。

もうひとつ。 日本でやっている人あんまり見つけられませんでしたが、GPL の ZK。

ZK – Direct RIA

ZK is the leading open source Ajax + Mobile framework. With 700,000 downloads, ZK empowers a variety of companies and institutions, ranging from small to large, including Barclays, Sun Micro, Swiss RE, Alcatel-Lucent, and many others… read the whole story>>

GWT のほうはよくみてませんが、どっちも Java でそれように設計された記述方法で画面をつくると、勝手に HTML と JavaScript を出力してくれます。

いろいろなコントロールが用意されていて、たとえば HTML のフォームにはないようなカレンダーとか、アイコン付きのドロップダウンリストとかサーバサイドのコードで「はりつける」と、うまいこと HTML と JavaScript がでてくれます。

AJAX の部分も隠蔽してくれるようになっているので、基本的に通信経路やエントリポイントについても考える必要が無く、ZK の場合は必要なイベントが発行された時に勝手に xmlrpc でサーバに通信して必要なデータの取得なんかしてくれるイメージです。 ネットワーク的にはなれていることすら意識しないでアプリをかく、というのが目指すところなのだと思います。

ZK も GWT も Java のフレームワークです。 今回はユーザインターフェースの部分だけですが、ZK を先日の Morph AppSpace にデプロイしてみました。

http://another.morphexchange.com/index.zul

いろいろギミックあるのでおしてみてください。

またそのうち消すので期間限定。 ちなみにたまに AppSpace が劇重になるのでアクセスできなかったらすいません)

ZK01

ぼくにはこんなのつくれねーっていう動きですが、20行くらいの XML 定義だけで出力してくれます。 IE7 でもみてみましょう。

ZK02

ちゃんと同じように動きます。 ブラウザの互換などの問題は、フレームワークが吸収してくれるので、ぼくは何の知識もなくクロスブラウザできるわけです。(ちなみに ZK は HTML をはくことだけを目的としていなく、たぶん他の RIA 部品にも対応できる仕組みを持っています)

かっこいいコントロールのデザインや、クロスブラウザ問題などを正しい知識を持った人がフレームワークとして実装し、業務ロジックはこれも正しい知識をもった(ぼくはもってないが。。)人が実装する。 実に合理的です。

Java も HTML も CSS も JavaScript もそれぞれ、本が何冊もかけるようなボリュームがあることです。 それを全部一人で覚えようというのは難しい話。 できるひとがいたとしても、そういう人を集めてプロジェクトをつくったらいくらかかるか分からないわけで、今後もこういった方向は進むのではないかと思います。 というか、ようやく元に戻ったとも言いますが・・・(笑)

あんまり ZK は日本でははやってない風ですが、遊んでいると結構面白いので Java できるひとはやってみるといいかもしれません。 ちなみに、上のサンプルは Java すら一行もかいていません。 .ZULE の xml てきとうにパクってはっただけです :-P

  • eclipseee17.png
    Eclipse WTP + Apache Tomcat 環境設定
    Apache, Eclipse, Click, Tomcat, デプロイ, 選択, Java, サーバ, ファイル, プロジェクト, 実行, 環境, 起動, EE, アプリ, ブラウザ, 新規, 構成, 設定, 追加
  • コンテンツの配信について考える
    配信, ドキュメント, RSS, コンテンツ, ATOM, 情報, HTML, サイト, サーバ, フォーマット, リアルタイム, データ, 取得, 必要, 技術, zone, ぼく, プロトコル, ユーザ, 全文
  • emacs.png
    Firefox 禁止令と Eclipse のプラグイン
    Eclipse, イン, プラグ, Web, DBViewer, ER, 図, 起動, Amateras, Firefox, コンピュータ, 勉強, 可能, AmaterasERD, Java, PC, emacs, エディタ, クライアント, 禁止令
  • click01.png
    Click Framework を使ってみる
    Click, フレーム, ワーク, table, Java, HTML, String, Framework, import, public, テーブル, new, Twitter, Web, html, java, twitter, アプリ, コントロール, Column
  • WordPress サイトの高速化 (JavaScript ロード時間)
    head, JavaScript, サイト, ブラウザ, 表示, js, サーバ, WP, ファイル, 設定, 読み込み, 部分, 高速, HTTP, JS, body, script, セッション, 場合, 自分

コメントする

メールアドレスから Gravatar が取得されます。(必須ではありません)

次の HTML タグと属性が使用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback

http://another.maple4ever.net/archives/432/trackback/