BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース IceFaces AceがPrimeFacesからフォーク、PrimeFacesは不快感を表明

IceFaces AceがPrimeFacesからフォーク、PrimeFacesは不快感を表明

原文(投稿日:2012/02/16)へのリンク

JSFコミュニティでPrimeFacesとIceFacesに関する騒ぎが起こっている。PrimeFacesプロジェクトはIceSoftがPrimeFacesのコードを"一行一行"コピーして新しいIceFaces Aceコンポーネントを作っていると主張している。

PrimeFacesはApacheライセンスを使っていることに注意されたい。Apacheライセンスはとても自由でビジネスにも使いやすい。商用オープンソース企業はApacheプロジェクトからフォークしてビジネスをしている。企業や産業全体がApacheプロジェクトから分岐したプロジェクトで成り立っていると言う人もいる。

PrimeFacesコミュニティはこの問題について法的な対応をしようとはしていない。しかし、新しいIceSoft Aceコンポーネントの"90%が"PrimeFacesのコピーで出来ていることに驚いて("ショックで幻滅した")いる。

InfoQはPrimeFacesの中心的な開発者であり、JSFの専門家であるÇaǧatay Çivici氏にこの対立について話を聞いた。また、公平を期してIceSoftの代表であるBrian McKinney氏にも話を聞いた。まずはÇaǧtay Çivici氏へのインタビューから紹介しよう。

InfoQ なぜ彼らはPrimeFacesをコピーしたのでしょうか。

本当の理由は全くわかりません。IceFacesはPrimeFacesの競合なのですから、IceFaces 3はJSFのエコシステムに対して新たな選択肢を提供するものと思われてきました。しかし、彼らは選択肢を提供する代わりに他のライブラリをコピーすることにしたのです。

PrimeFacesは現時点で最も人気のあるJSF向けUIライブラリであり、Java EE向けのRIAフレームワークとしても人気があります。だから彼らはPrimeFacesをコピーしたのでしょう。彼らはPrimeFacesのコードを改善したと主張していますが、確認したところ、私たちがブログに掲載したコードがそのまま書かれていたのです。

彼らはPrimeFaces 2をコピーしていますが、誰もIceFacesにPrimeFacesのコードを改善することを求めないと思います。我々PrimeFacesチームはIceFacesの行った改善を既に実施済みです。それがPrimeFaces 3なのです。彼らは私たちの現在の開発も自分たちのコードに同期するつもりでしょうか。

InfoQ あなたのブログやtwitterを読むと、あなたはIceFacesがマインドシェアを失いつつあると考えているようですね。IceFacesは何を間違えたのでしょうか。

IceFacesの人気は劇的に低下しています。PrimeFacesの開発ペースにも追いつけないでしょう。IceFaces 2はJSF 2.0をサポートしていましたが、リリースされたのは私たちがJSF 2をサポートしたPrimeFaces 2をリリースした1年後でした。

IceFacesの人気はIceSoftのような企業にとって重要です。彼らは商用サポートやトレーニング、コンサルティングを販売しているからです。

彼らは間違った決定をして、PrimeFacesのコピーをしてしまいました。IceFaces 3のユーザは多くならないでしょう。彼らの評判が傷ついてしまったからです。ジョークも生まれていますよ。Spring RooがJSF用にサポートしているのはPrimeFacesだけだけど、今やIceFacesもサポートされるようになった。でも優れたオリジナル(PrimeFaces 3)があるのに誰が古いコピー(PrimeFaces 2の)を使うんだろう、と言っているひともいます。

私はあるプロジェクトで3ヶ月間だけIceFacesを使ったことがあります。その頃私はフリーランサーとして働いていました。2008年のことです。Prime TeknolojiのためにPrimeFacesを作る数ヶ月前ですね。IceFacesの動作が遅いのはよく知られており、私の3ヶ月間の経験では使い物になりませんでした。例えば、AJAXを使いすぎていて、ユーザがクリックする毎に動作するほどでした。このように考えているのは私だけではありません。

-- Çaǧtay Çivici

InfoQ PrimeFacesは他のRIAプロバイダと比べてどうですか。なぜPrimeFacesはRichFacesやIceFacesと比べて成功しているのでしょうか。

PrimeFaces 3についてのInfoQの記事もこの点について分析していますね。

我々はコンサルティング企業で、JSFとJava EEを活用してコンサルティングやトレーニング、ソフトウエア開発を行っています。かつて我々は他のJSFを使っていて深刻な問題に直面しました。その経験から軽量で使いやすいライブラリを作ろうと決めたのが2009年で、出来上がったのがPrimeFacesです。

他のライブラリと何が違うのか。PrimeFacesはアプリケーション開発者のために作られました。ソフトウエアベンダの開発者のためではありません。アプリケーション開発者の視点から開発したのです。私たちは毎日顧客の運用環境でPrimeFacesを使っています。なのでコミュニティにリリースする前にバグを直し、継続的に利便性を改良できるのです。

JSF-PrimeFacesのようなフレームワークを使うとcssやjavascriptやサーバサイドコードを自前で作らなければなりません。しかし、アプリケーション開発者はアプリケーション全体を掌握し制御しなければならないと思います。PrimeFacesは柔軟で拡張とカスタマイズが簡単にできるように設計されています。誰もがフレームワークのおしゃれなデモを好みますが、私たちが興味があるのはPrimeFacesが実際の運用環境で高い利便性を発揮することなのです。

また、PrimeFacesはRedHat-Jboss RichFacesのように大きなベンダがスポンサーについているわけではありません。なので、ベストを尽しながら、ハンデを感じないほど競合よりも働かなければならないと肝に命じ、これまで成功してきました。PrimeFacesのコアチームはPrime Teknolojiの創設者です。なので、日中にPrimeFacesプロジェクトの仕事をすることでお金をもらっているわけではありません。夜や週末、あるいは一日を通じて作業をしています。残業ではありません。開発を楽しんでいます。

トレーニングの後もジムに残って情熱を持って他人を凌ぐために体を動かし続けているスポーツ選手のようなものです。

--Çaǧtay Çivici

InfoQ IceSoftのこの問題に対する対応について

まず、IceSoftは我々や我々の顧客の投稿をフォーラムから削除していますが、我々は自由に発言できる世界を信じています。なのでもう削除をやめてほしいです。たくさんの批判を浴びた後、IceFacesはIceFaces Aceの製品ページを更新してPrimeFacesへの言及を加えました。

この製品ページには書いてありませんが、スライダーやデイトタイムエントリのようなjQuery/PrimeFacesを元にしているコンポーネントはまだあります。IceFacesはPrimeFacesによって支えられている製品だというのが私たちの結論です。

IceSoftは昨年、私たちに (金銭的な) 提案をしてきました。PrimeFacesのスポンサーになるためです。しかし、最終的にはコミット権や許容できないことを要求してきました。

... PrimeFacesはコピーや再配布を許可するApacheライセンスを使っています。なので私たちは法的な点は問題視していません。PrimeFacesの競合がPrimeFacesのコードをコピーし商品として売ろうとしている事実を広めたいのです。これは法的には問題ありませんが、競合はコードがオープンソースでライセンス的に問題ないという理由だけでこのようなことをすべきではありません。IceSoftは自分たちのソリューションを提供するべきでした。その方がJSFやJava EE全体のためになったはずです。法的な問題ではないということを理解してください。

全体としてはPrimeFacesにとってこの問題は良いニュースだと思います。PrimeFacesが最高のJSFライブラリということが宣言されたようなものですから。賞賛を最も正直に表現すれば模倣になるのですから。"

--Çaǧtay Çivici

公正を期して、InfoQはICEsoft TechnologiesのCEOのBrian McKinney氏から下記の声明を得た。

車輪の再発明をすることで何か新しいものを得られないのであれば、ICEsoftは車輪の再発明をしません。PrimeFacesの件は、jQueryのJSFラッパーを再開発することから具体的なイノベーションを得られないため既存のオープンスペースライブラリを利用した、ということです。そうすることで私たち自身のリソースを他の革新的なものの開発、例えば、データテーブル機能の拡張やICEmobileという最新のオープンソースプロジェクトに使うことができました。JQuery、YUI、Primefacesのようなオープンソースを利用しなければ、ICEmobileのようなイノベーションをオープンソースコミュニティにもたらすことは出来なかったでしょう。 -- Brian McKinney

そして、InfoQはこの問題についてBrian氏と話す機会を得た。

氏は、ICEsoftはPrimeFacesを本当に上手く作られており、jQueryを効率良く使っているプロジェクトだと評価している、と言う。顧客がJQueryのサポートを望んだので、車輪の再発明をせずに、PrimeFacesを使うことを決めた。PrimeFacesはオープンソースでApacheライセンスで提供されていたからだ。ICEsoftはPrimeFacesのコードベースを変更して顧客が使っている古いIEのバージョンなど他のブラウザをサポートしたいと考えていた。また、WebSphere Portalをサポートし、自分たちのフレームワークやコードとも適合しやすくしたいと思っていた。

しかし、PrimeFacesからコミットする権限を得られなかったので、車輪の再発明をする代わりに、PrimeFacesをフォークしたのだった。氏は、すべてのブラウザやサービスで利用できるという確証と追加機能の提供が、IceSoftが顧客に与えた価値だと感じている。

また、氏はIceSoftはフレームワーク周辺のサポートやサービスを提供していると言う。それゆえ、変更やパッチ(機能要求やバグ修正)をコミットできることが優れたサポートとサービスを提供する上で必要なのだ、と言う。

IceSoftがフォークをした理由の詳細はFAQを見てほしい。

またBrian氏は、ICEfaces ACEの一番の価値はICEfacesフレームワークや新しい機能(FAQを参照)との統合だと言う。また、レガシなブラウザでも動くように変更した点も重要だ。

jQueryを上手く扱うためにPrimeFacesを使ったことで、車輪の再発明で時間を無駄にすることなく、ICEmobileのような他のオープンソース製品や最新のデータテーブル機能の開発に注力できたというのが氏の見解だ。

Brian McKinney氏はÇaǧtay Çivici氏の意見を読むと、下記を追記を求めた。

ICEfaces 3用のACEライブラリのコンサルティングを行う中で、私たちは私たちが発見した中で最高のオープンソースコンポーネントを利用しました。jQuery、YUI、PrimeFacesを使ってコンポーネントを作成し、それをAdvanced Component Environment (ACE)と共にICEfacesアプリケーションフレームワークに導入しました。この過程の中で、上述のコンポーネントに大きな機能追加やバグ修正、多くのミドルウエアやブラウザでシームレスに使えるようにするなど、改善を加えました。最終的には包括的な品質保証プロセスを構築して、ユーザがこれらのコンポーネントの品質や性能に頼れるようにしました。その結果、単なるオープンソースの寄せ集め以上の製品ができました。ユーザは高品質で業界でも一番のライブラリを最も人気のあるアプリケーションフレームワークと共に利用できるのです。さらにオープンソースなので、Apache 2ライセンスで再リリースすることでコンポーネントを進化させたり、進化の恩恵を受けることができます。

なぜPrimeFacesのコンポーネントをフォークしたのか質問されますが、理由はコミュニティがICEfacesフレームワークでjQueryを使うことに興味を示したからです。PrimefacesはjQueryやYUIを上手くラップして使い、JSF 2上で動作するようにしていました。ICEsoft には車輪の再発明をする理由はありませんでした。PrimeFacesがオープンソースのライブラリであることを考えれば、開発者がjQueryのラッパーを再開発してもコミュニティには何の利点もありません。それよりはオープンソースというモデルを利用して開発力を節約することで、コミュニティに対して更なる価値と革新を提供しようとしたのです。

PrimeFaces、jQuery、YUIをコンポーネントを使いながらも、バグ修正や機能強化のために200行以上のコードを書きました。特にデータテーブルにはたくさんのコードが書かれ機能が強化されています。現時点では最も包括的で機能豊かなコンポーネントだと思います。

統合したコンポーネントはすべて変更が加えられています。PrimeFacesは3分の2のコンポーネントは機能強化やバグ修正の恩恵を受けています。これらの変更はICEfacesがサポートする様々なブラウザやアプリケーションエンジンやポータルコンテナで一貫した挙動をするために必要でした。ACEのコードの90%がPrimeFacesのコピーであり、何の価値も加えられていないとする主張は本当に馬鹿げています。

ICEsoftには長く豊かなイノベーションの歴史があります。DOMベースのレンダリングからAjaxのプッシュまで幅広い特許や特許を取ったアプリケーションを持っています。特許であれ、データテーブルであれ、IE 7互換コンポーネントのためのバグ修正であれ、最新のオープンソースプロジェクトICEmobileであれ、私たちを業界のリーダーに押し上げたのはイノベーションです。オープンソースのモデルを適切に利用することで今後もコミュニティに革新による利益をもたらすことができるはずです。 --Brian McKinney

 

この記事に星をつける

おすすめ度
スタイル

BT