Ext JSはオワコン?RIA開発に使えるJavaScriptライブラリSmartClient

タイトルは半分冗談です。

Ext JS

JavaScriptで業務システムで使うRIA(リッチインターネットアプリケーション)フレームワークと言えば一番有名なのはExtJSです。

Sencha Ext JS

グラフや表など、ビジネス向けの部品が充実しています。

ExtJSデモ
Extjs capture2

このように大変便利なライブラリなのですが、ExtJSバージョン3以降は無償版ライセンスがGPLに変わってしまい、実質オープンソースアプリケーションでしか使えなくなってしまいました。

この問題は有料版ライセンスを購入すれば解決可能で、ライセンスがあれば業務向けの非公開アプリケーションももちろん作成可能です。

ただ、予算が少ない場合などライセンス費用が常に出せるとは限らないのが現実ですし、こちら(Sencha Ext JS と Sencha Touch の license について)でまとめられているように、運用会社と開発会社が異なる場合は2重にライセンスを買わないとならないなど、費用面では採用が難しい場合も多いかと思います。

Ext Core

ExtJSのライセンス問題を解決すべくExtJSの派生ライブラリとして生まれたのがExt Coreなのだそうです。

Ext Core

ExtJSコアのライセンス方向転換、GPLからMITへ(マイナビニュース)

Ext CoreはMITライセンスですので、ExtJSと違い無料で安心して利用できます。

ただし、機能面はコア部分だけということでExtJSからかなり制限されています。

用途としては主にExtJSで使っている便利な機能(Ext.extend(),String.format()など)を他でも使いたい、という時に利用するもので、UIについてはあまり期待しないほうがよさそうです。

SmartClient

そこでおすすめなのが SmartClient です。
ExtJSと比べると日本ではあまり知られていませんが、SmartClientもExtJSと同様の機能を備えているRIA開発向けJavaScriptライブラリです(注)。

SmartClientのJavaScriptライブラリは無償でLGPLライセンスとして使用可能なので、ExtJSの対抗として注目されています。

SmartClient

こんなグラフ、表も簡単に表示できます。
Smartclient capture

何ができるかは、SmartClientデモ
を見て頂くと実際動いているものがあるのでわかりやすいかと思います。

SmartClientも有償版がありますが、こちらはサーバを含めた統合環境(注釈参照)を使うためのもので、
JavaScriptライブラリを使う上ではLGPLライセンスでも無制限に使用可能となっています。

ダウンロードはこちらのダウンロードページから、「Download SmartClient 9.0 LGPL Edition」をクリックして下さい。

Download smartclient

使い方はデモサイトにサンプルコードが参考になります。また、ダウンロードしたファイル内のドキュメントには詳しい使い方が書かれていますので、カスタマイズの際はそちらが参考になるでしょう。

ExtJS vs SmartClient

見た目的にはExtJSのほうが可愛いですが、機能面ではSmartClientも負けていません。

ExtJSにはGWT(Google Web Toolkit)と組み合わせられるExtGWTというものがありますが、SmartClientにもちゃんとSmartGWTがあり、こちらもLGPLライセンスで提供されています。

業務向けアプリを作りたいけど、事情がありExtJSのライセンスを購入できない、
というような場合はSmartClientの採用も是非検討してみてはいかがでしょうか。


注: 正確にいうと、本来SmartClientはJavaサーバフレームワークとJavaScriptクライアントで構成されているRIAプラットフォームです。
JavaScriptのクライアント側だけで単独動作可能であり、ExtJSに相当する機能はJavaScriptクライアントだけで実現できるため、記事内では簡単にするため省略しています。