約2年程前、Land of the Rising SunにおいてjMakiというプロジェクトが発足した。簡潔にいうとjMaki(サイト・英語)はAJAXアプリケーションを開発するためのクライアント/サーバフレームワークである。現在広まってきているが、このプロジェクトの最初のターゲットは企業の開発者達であった。最終的にjMakiチームはjMakiをAjax機能のWordpress(デファクトスタンダード)にする事を望んでいる。
Murray氏は下記のように説明している。jMakiはポータブルで、再利用可能なJavaScriptを描くための方法として始まった。そして私たちは後すぐに今成長しつつあるJavaScriptのツールキットをラップするのにjMakiが非常に便利であることに気づいた。クライアントサーバフレームワークになることによってウィジェット、依存型JavaScriptの依存性、CSSの定義のプロセスを作ることが可能となり、またHTMLテンプレートテキストをサーバーへ配置できるのだ。そしてMurray氏はjMakiプロジェクトの最終目標に関して語った。
基本的にjMakiには存在している最良のブリードツールキットと機能と共に、コードを使用してスタンダードベースアプリケーションを作ることが可能なフレームワークを提供できるものであってもらいたい。これにはDojoかYahoo Widegets、またローカルストレージにはGoogle Gears、エフェクトにはScriptataculus、Protoscriptが含まれ、YahooかGoogle Mapsのようなサービスを使用されるかもしれない。更に、Murray氏はjMakiが”全部かゼロか”というコンセプトのものでは無いことを明瞭にした。
jMakiは単一のウィジェットとしてでも良く、またアプリケーション用でも良い。このフレームワークは効率的に働くように作られているのだ。中核の機能 を備えているクライアント側のスクリプトは18KBである。更にサイズは自分が使用するものによって決められ、また私たちはツールキットを非常に効率的に 働かせるために多大な労力を費やしたのだ。
Maki1.0のリリースによって開発者達には新たな機能と可能性が提供されることになるだろう。Murray氏はinfoQの質問に答える際に述べた。 もし新たなアプリケーションを作り始めようとしている開発者と話す機会があり、5つ欠かせない機能を提示するとしたら何を挙げるだろうか。
- ウィジェット、エクステンションを使用する際のデフォルトセット
- ツーリング
- イベントのスタンダード化/データモデル(source)
- 一貫性プログラミングモデル
- ポータブルウィジェット/エクステンションライブラリ(source)
- エクステンション
- 独立性プラットフォーム
jMakiは設定上でコンベンションにくっ付いている。選択されるウィジェット、拡張機能を配置するお決まりの場所がある。特にツールを使用するときそれをページにドラッグすると作動中のウィジェットが入る。私たちが使用するテンプレートの本文にはデータが含まれている。
NetbeansとEclipse用のプラグインを提供しWebアプリケーション構築用のAntタスクも備えている。
ウィジェットとウィジェットの相互作用を描写する一貫した方法がある。これによってあるモデルを学ぶことができ、それをツールキットに適用することができる。自分達が記述したウィジェットラッパー内の相違には対応できる。
ウィジェットと相互作用する方法は全てのツールキットを通して一貫している。例えばActions(source)の使用はウィジェット上のイベントを宣言的に処理する方法の一つである。私たちはウィジェット、拡張機能、ユーザービヘイビア上においてイベントを処理するプログラム的方法を可能にした。
jMakiウィジェットはポータブルで全ての必要なリソースを含むライブラリに集結させることもできる。これによって、ユーザはツールによってダウンロー ド可能な単一のzipファイルパッケージ内でウィジェットの集合体をアップグレード、またシェアすることが可能になる。
jMakiはウィジェットだけにまつわるものではない。Google Gears、Protoscript、JavaScriptサウンド、また他のJavaScriptアクセス可能な機能を再利用可能な方法でライブラリ内にラップすることもできる。
jMakiはJava(JSP / JSF 1.1-2 / Facelets / Portlets)、PHP 5.x、Phobos(サイト・英語)、現在ではRubyをサポートしている(スタンダードXSLTプロセッサがないのでプロキシが実装されない)。
jMaki 1.0のリリースはコミュニティが費やした時間と努力の賜物である。しかしながら1.0のリリース日の9月25日(source)に、Murray氏と残りのチームメンバ達は既にjMaki1.1に関するディスカッションを始めていた。jMaki1.1においては将来的にウィジェットの機能を改善し、サーバコンポーネント とクライアントイベントバス接続の一貫性を向上させ、またワイヤー上の体験を改善するためにサーバの利用性を高める予定だ。