Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

開発現場で実際にJSFを利用していて感じること

今日はJSF(JavaServer Faces)に関する雑記です(^^;

自分が今までJSFを開発で触れてみて思ったことや海外でのJSFについて等、つらつらと書いてみた感じです。

JSFの利用状況って…

数日前にtwitter上の会話からJSFってどれくらい利用されているんだろう?、的な流れから、最終的に@aoetkさんがJSFが使われた一般向けWebサイトをリサーチされ、まとめられていました。

RichFacesなどが実際に使われているサイトをみて驚いたと同時に、そのサイトが結構色々なコンポーネントを利用していて、かつ、Ajaxも多々利用していたため、何か個人的に感動しました(^^;

というのも「ぶっちゃけJSFってどれくらい使われてるの!?」というもやもや感があったからです。一般向けサイトに限らず、現場の開発レベル含めてです。

JSFとの出会い

去年(2012年)の8月頃、JavaでのWeb開発話が部内で提案され、その調査担当となったとき、昨今のJavaでのWeb開発フレームワークのスタンダードは何なのか?(J2EE,Struts,Spring…etc)、そんな初歩的な所を把握することから難しかった記憶があります(^^;色々ありすぎて

たまたまその頃、Oracleの無料セミナーがあって、日本Javaエバンジェリストである寺田さんの話があり「Java EE6の良さ」みたいな話を聞いて「なるほど!」と思って、速攻で金魚本を買いました。

買って読んでみると、決して使いやすいとは言えなかったJ2EEが、色々なフレームワークの良い所を取り入れ、Java EE6なるものが出来たと。ふむふむ。

こんな立派な書籍もあるし、新しく始めるならば本家を信じましょう、と取り組み始めました。

が、サンプルでWeb画面を作ろうとして、いきなり迷いが生じました。

その頃の自分はJava初心者でしたが(あ、今もです…)、JSPくらいはさすがに聞いたことがあったし、それがJavaでのWeb画面では主流だと思ってました。それを象徴するように、金魚本以外のJavaのWeb開発系書籍を立ち読みすると、ほとんどJSPです。

でも金魚本を読み進めると、JSF(Java Server Faces)なる技術がWeb画面系の中心になってきている様子。

うーむ、一体何がどう違って、今後どうなるんだ…。と。

で、また色々Oracleのセミナー行ったり、Javaコミュニティのイベント行ったりして話を聞くと寺田さんがJava EE6の画面開発の話になるとJSFを中心に話をされていて、やっぱりJSF推しなんだなぁ、と。

そんなこんなで、Java EE6の開発、画面系はJSFを採用しました。
そして、色々調べたりしていた頃、Java EEアドベントカレンダーへお誘いの声を頂き

PrimeFacesを使ったJSFリッチユーザインタフェース入門 〜ちょっと便利なコンポ達〜

なるものを書かせて頂きました。

JSFへの迷い

その後、実際の開発が始まり、主にPrimeFacesを利用したJSF開発を進め、現在進行形となっています。

始めてみると、直観的というか何というか、とても使いやすく、JSFいいなぁ、と個人的には思っていました。

Ajaxも初めてでしたが、非常に簡単に扱えるし、jQueryを直接触ると少し難しそうな面もPrimeFacesにラップされることで簡単に扱えるようになっていて、(JSF自身のライフサイクルの複雑さはあるものの)、全体的には良いと思っています。

が、いかんせん日本語での情報が少な目なのと、なにぶんJava EEが初めてだし、JSPをほとんど知らないままJSFを触ったので、あちこちで聞く「JSFいまいちだよね」的な話に不安を感じたりもしました(^^;

それは未だに感じることがあるのですが、一方で実際に開発を進めてきた結果、海外の豊富な情報量をみたことで安心した面もあります。

※ただ一点、よく言われる性能面(サーバサイドでの処理時間やメモリ)は実運用をまだしていないので不安が残っています。経験して不安が解消されたら追記します。

海外でのJSF

最近ではもっぱらJSF関連でわからないことがあると、英語で調べて(例えば複合コンポーネントとかは最初からcomposite componentでググる)いるのですが、大体Stack Overflowか、各コンポのコミュニティforumで解決されており、英語を頑張って読むことで解決しています。

それだけ海外には情報が豊富というか、なんというか。

ちなみにちょっと調べてみたのですが、Stack Overflowでは、JSPJSFそれぞれタグ付けされているのですが、各々のタグ付けされた質問件数は2013/5/5現在以下になっています。

JSPでタグ付けされた質問件数

f:id:kikutaro777:20130505220304j:plain

JSFでタグ付けされた質問件数

f:id:kikutaro777:20130505220341j:plain

当然JSPのほうが多いのですが…でも後から出てきたJSFでもこれだけの件数があるって結構すごいんじゃ…と思ったり(^^;

逆に使いにくくて質問が多いだけなんじゃ、って意見もありそうですが(苦笑)

海外で開発されているJSFのリッチコンポーネント

ちょっと前にPrimeFacesのリーダーであるMr.Cagatay Civiciさんが以下つぶやきされていて

リンク先はこんな図になっています(2013/5/5現在でみると)。

f:id:kikutaro777:20130505220426j:plain

JSF向けのリッチコンポーネントを開発している主なFaces系のGoogle検索トレンドの結果です。(青がPrimeFaces、赤がRichFaces、黄色がIceFaces)

おそらくPrimeFacesが独走、ということを遠まわしに表現したかったっぽいですが(^^;

ただ、これに近い比較は海外だと色々あって、それだけよく使われてるんだなぁ、と思ったり。

ちなみに、Stack Overflowで各々の名称を検索してみると

PrimeFacesで検索

f:id:kikutaro777:20130505220553j:plain

RichFacesで検索

f:id:kikutaro777:20130505220618j:plain

IceFacesで検索

f:id:kikutaro777:20130505220633j:plain

あれ、そんなに多くないじゃん!と思うかもしれませんが、コミュニティのForumをみると

PrimeFaces Community Forum

f:id:kikutaro777:20130505220719j:plain
なんとPrimeFacesだけで約9万件もの数が。実際、良い情報がかなりあって、自分達が開発で行き詰ったときも、(英語での検索さえ上手くいけば…)解決率が高いです。

RichFaces JBoss community Forum

f:id:kikutaro777:20130505220841j:plain
RichFacesではPrimeFaces比べれば少ないですが、それでも万単位。そして、今気づいたのですが、サイトが日本語!!!(^^;(投稿は英語ですけどね…)

ICESOFT Forums

f:id:kikutaro777:20130505220958j:plain
IceFacesも中々ですね。ただ、IceFacesはPrimeFacesをフォークしたもので、しかもそのフォークの仕方が一時問題になったりもして…(詳しくは「IceFaces AceがPrimeFacesからフォーク、PrimeFacesは不快感を表明」)、利用される方は是非見極めを(^^;

まとめ

あまりまとまりのない文章になりましたが、JSFの開発はPrimeFacesなどを上手く利用すれば、リッチな画面を割と手軽に構築できるし、情報は海外に豊富にあるので(確かに調べて時間かかったりはしますが)何とか解決できるケースが多いと思います(^^)実際に自分も試金石ですが;

ただ心の中では、ちゃんと他の技術と比べてみたい思いもあるので、今の開発がひと段落したら、色々トライしてみたいと思っています。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村