<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Nobody Uses JavaServer Faces</title>
	<atom:link href="http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/</link>
	<description>Matt Long's Blog About Programming and Stuff</description>
	<pubDate>Tue, 06 Jan 2009 11:38:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Links for 7th March</title>
		<link>http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-26848</link>
		<dc:creator>Links for 7th March</dc:creator>
		<pubDate>Fri, 07 Mar 2008 23:40:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-26848</guid>
		<description>[...] Thirty minute Adobe Flex test drive for Java Developers - here IT job applications up 17% - here POJO Messaging Architecture with Terracotta - here Google Analytics running on AIR - here Intellij Links - here Configuring SSL Under Apache - here BBC iPlayer for iPhone now working - here Which Unit Test Framework will you use - here Contractor Market report for March - here Adobe AIR Security - here Where to host Java Apps - here Windows programmers shifting to the mac - here Nobody Uses JavaServer Faces - here [...]</description>
		<content:encoded><![CDATA[<p>[...] Thirty minute Adobe Flex test drive for Java Developers - here IT job applications up 17% - here POJO Messaging Architecture with Terracotta - here Google Analytics running on AIR - here Intellij Links - here Configuring SSL Under Apache - here BBC iPlayer for iPhone now working - here Which Unit Test Framework will you use - here Contractor Market report for March - here Adobe AIR Security - here Where to host Java Apps - here Windows programmers shifting to the mac - here Nobody Uses JavaServer Faces - here [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: max</title>
		<link>http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-22944</link>
		<dc:creator>max</dc:creator>
		<pubDate>Thu, 14 Feb 2008 03:38:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-22944</guid>
		<description>One of the issues is that people take their PHP or JSP experience and style of development and try to apply it to JSF. But it simply doesn’t work that way, JSF provides a different paradigm to developing the UI, you build the user interface out of UI components. JSF also has a pretty sophisticated page life cycle, which is crucial to understand.

JSP lets you do anything you want basically, that’s why it is pretty easy to start. But when you can do anything you want, it doesn’t mean you did it the correct way. JSF guides you “how” to develop your application, so some sort of at least basic training is mandatory. 

There are numerous tutorials, articles and everything else on JSF on the Internet today. Additionally, there are 4-5 books available. 

There are a lot more than just a few people that use JSF. I’m at JBossWorld conference in Orlando, FL right now and virtually everyone uses JSF for web development. 

Yes, $495 is the price for online training offered by Exadel (the company I work for). 

Max
http://mkblog.exadel.com</description>
		<content:encoded><![CDATA[<p>One of the issues is that people take their PHP or JSP experience and style of development and try to apply it to JSF. But it simply doesn’t work that way, JSF provides a different paradigm to developing the UI, you build the user interface out of UI components. JSF also has a pretty sophisticated page life cycle, which is crucial to understand.</p>
<p>JSP lets you do anything you want basically, that’s why it is pretty easy to start. But when you can do anything you want, it doesn’t mean you did it the correct way. JSF guides you “how” to develop your application, so some sort of at least basic training is mandatory. </p>
<p>There are numerous tutorials, articles and everything else on JSF on the Internet today. Additionally, there are 4-5 books available. </p>
<p>There are a lot more than just a few people that use JSF. I’m at JBossWorld conference in Orlando, FL right now and virtually everyone uses JSF for web development. </p>
<p>Yes, $495 is the price for online training offered by Exadel (the company I work for). </p>
<p>Max<br />
<a href="http://mkblog.exadel.com" rel="nofollow">http://mkblog.exadel.com</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: perlmunger</title>
		<link>http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-21872</link>
		<dc:creator>perlmunger</dc:creator>
		<pubDate>Thu, 07 Feb 2008 22:02:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-21872</guid>
		<description>@MD10024

I'm planning to do exactly that (publish a JSF tutorial) when I'm finished with my project. I'll let you know how that goes.

I think you missed my point about 15 pages. I have read many books and many more articles and rely on them heavily to do my work. The point was that it took 15 printed pages to explain something that could be explained in 15 *lines* of code in PHP. It's a huge discrepancy.

Best Regards.

-Matt</description>
		<content:encoded><![CDATA[<p>@MD10024</p>
<p>I&#8217;m planning to do exactly that (publish a JSF tutorial) when I&#8217;m finished with my project. I&#8217;ll let you know how that goes.</p>
<p>I think you missed my point about 15 pages. I have read many books and many more articles and rely on them heavily to do my work. The point was that it took 15 printed pages to explain something that could be explained in 15 *lines* of code in PHP. It&#8217;s a huge discrepancy.</p>
<p>Best Regards.</p>
<p>-Matt</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: md10024</title>
		<link>http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-21863</link>
		<dc:creator>md10024</dc:creator>
		<pubDate>Thu, 07 Feb 2008 20:07:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-21863</guid>
		<description>Instead of just bashing JSF why don't you post snippets from your example app that took you so long to build and add detail to your difficulty? That would be useful and informative.  Instead it sounds like you are complaining because you needed to learn something new to use a different technology. Is that really surprising? Do you mean that you have never read any instructions (i.e. book) more than 15 pages long? Come'on, you're starting to sound a bit disengenous on that point. If that's your logic then I don't recommend the Spring Framework to you either.</description>
		<content:encoded><![CDATA[<p>Instead of just bashing JSF why don&#8217;t you post snippets from your example app that took you so long to build and add detail to your difficulty? That would be useful and informative.  Instead it sounds like you are complaining because you needed to learn something new to use a different technology. Is that really surprising? Do you mean that you have never read any instructions (i.e. book) more than 15 pages long? Come&#8217;on, you&#8217;re starting to sound a bit disengenous on that point. If that&#8217;s your logic then I don&#8217;t recommend the Spring Framework to you either.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: perlmunger</title>
		<link>http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-20752</link>
		<dc:creator>perlmunger</dc:creator>
		<pubDate>Fri, 01 Feb 2008 22:33:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-20752</guid>
		<description>Hey Max,

&lt;blockquote&gt;
they are very different frameworks.
&lt;/blockquote&gt;
Which is why I said "a bit like...". There are enough similarities for this to be a reasonable statement, though.

&lt;blockquote&gt;
Second, did you have any JSF training before starting to code?
&lt;/blockquote&gt;
Herein is my point--and you make it well. The first PHP app I wrote I was able to put together in a day without *any* previous training. I read a few examples (which are ubiquitous) online and coded my app. It's intuitive. It's the right tool for the job for many web applications--especially ones as simple as this. Other tools are good at this as well.

By comparison, there *is* a learning curve with JSF, as you point out and there is no good documentation I can find online. If I don't blame the framework for being difficult, the who do I blame? I didn't make it difficult or non-intuitive to use. My question is why punish myself using a framework that is naturally cumbersome and requires me to go through training when I can get the job done sooner (time..money...etc.) with something else?

Furthermore, the main point I made is that nobody uses JSF. Now, of course, I don't mean literally nobody. I mean virtually nobody. In other words I'm sure there are a couple people out there who use it--maybe even in a production environment. However, I think the rest figured out it's too much of a pain to wrestle with. Again, as I pointed out in the original post, If someone can provide me with a good tutorial that isn't 15 pages long and in the end provides more than a silly calculator, I'd be glad to take a look and change my viewpoint. To me, the point is clear--most people aren't willing to punish themselves to do something with a framework that virtually nobody uses--especially when so many other frameworks exist that do what I'm trying to do easier, faster, and, frankly, better.

Best Regards.

-Matt

p.s. I can understand why you would suggest training as it looks like you &lt;a href="http://mkblog.exadel.com/?p=64" rel="nofollow"&gt;teach people JSF&lt;/a&gt;. Do you get $495 for online JSF training? That's not a jab. I'm just curious as this could discredit the premise of my entire post. How many people sign up for such a course?</description>
		<content:encoded><![CDATA[<p>Hey Max,</p>
<blockquote><p>
they are very different frameworks.
</p></blockquote>
<p>Which is why I said &#8220;a bit like&#8230;&#8221;. There are enough similarities for this to be a reasonable statement, though.</p>
<blockquote><p>
Second, did you have any JSF training before starting to code?
</p></blockquote>
<p>Herein is my point&#8211;and you make it well. The first PHP app I wrote I was able to put together in a day without *any* previous training. I read a few examples (which are ubiquitous) online and coded my app. It&#8217;s intuitive. It&#8217;s the right tool for the job for many web applications&#8211;especially ones as simple as this. Other tools are good at this as well.</p>
<p>By comparison, there *is* a learning curve with JSF, as you point out and there is no good documentation I can find online. If I don&#8217;t blame the framework for being difficult, the who do I blame? I didn&#8217;t make it difficult or non-intuitive to use. My question is why punish myself using a framework that is naturally cumbersome and requires me to go through training when I can get the job done sooner (time..money&#8230;etc.) with something else?</p>
<p>Furthermore, the main point I made is that nobody uses JSF. Now, of course, I don&#8217;t mean literally nobody. I mean virtually nobody. In other words I&#8217;m sure there are a couple people out there who use it&#8211;maybe even in a production environment. However, I think the rest figured out it&#8217;s too much of a pain to wrestle with. Again, as I pointed out in the original post, If someone can provide me with a good tutorial that isn&#8217;t 15 pages long and in the end provides more than a silly calculator, I&#8217;d be glad to take a look and change my viewpoint. To me, the point is clear&#8211;most people aren&#8217;t willing to punish themselves to do something with a framework that virtually nobody uses&#8211;especially when so many other frameworks exist that do what I&#8217;m trying to do easier, faster, and, frankly, better.</p>
<p>Best Regards.</p>
<p>-Matt</p>
<p>p.s. I can understand why you would suggest training as it looks like you <a href="http://mkblog.exadel.com/?p=64" rel="nofollow">teach people JSF</a>. Do you get $495 for online JSF training? That&#8217;s not a jab. I&#8217;m just curious as this could discredit the premise of my entire post. How many people sign up for such a course?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: max</title>
		<link>http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-20744</link>
		<dc:creator>max</dc:creator>
		<pubDate>Fri, 01 Feb 2008 21:03:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-20744</guid>
		<description>First of all this not true:

&lt;blockquote cite=""&gt;If you’re not familiar with JSF, it’s a bit like Java Struts&lt;/blockquote&gt;

they are very different frameworks. 

Second, did you have any JSF training before starting to code? What you described can be created in about 1 day if you actually know how to use the framework. Yes, there is a learning curve, but please don't blame the framework before you know how to use it. 

Max
http://mkblog.exadel.com</description>
		<content:encoded><![CDATA[<p>First of all this not true:</p>
<blockquote cite=""><p>If you’re not familiar with JSF, it’s a bit like Java Struts</p></blockquote>
<p>they are very different frameworks. </p>
<p>Second, did you have any JSF training before starting to code? What you described can be created in about 1 day if you actually know how to use the framework. Yes, there is a learning curve, but please don&#8217;t blame the framework before you know how to use it. </p>
<p>Max<br />
<a href="http://mkblog.exadel.com" rel="nofollow">http://mkblog.exadel.com</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jdlee</title>
		<link>http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-20458</link>
		<dc:creator>jdlee</dc:creator>
		<pubDate>Tue, 29 Jan 2008 17:04:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-20458</guid>
		<description>&lt;blockquote&gt;I can’t debug anything with break points as everything is compiled into a java class at run time and all I ever see are tags, not Java code. It is so far abstracted that I can’t get to the guts of it if I tried.&lt;/blockquote&gt;

First, a disclosure:  I'm a developer on Mojarra, Mojarra Scales, and am a member of the JSF EG.  I've been using JSF for almost 3 years now, and really enjoy it, which led, eventually to my committer status and EG membership.  Now, with that out of the way...

I've not found debugging to be a problem, really, though I'll admit that some may find my approach... arcane. :)  Typically what I do is this:  I'll develop in Netbeans (previously Eclipse), but use the command-line to build and deploy my artifact.  In my IDE, I set break points where I need them, then attach my IDE's debugger to my app server (GlassFish, fwiw).  When I hit the context the break points are tripped and my IDE comes to the front, allowing me to do all of the normal debugging things.  Eclipse even does a nice job of replacing the code on the server if I need to make a change in my app (though it's not perfect).  Using that approach, I've been easily able to step through my apps.  I would imagine that that approach would work regardless of the framework used.

As far as debugging the tags, generally, I wouldn't think you would need to do that (unless you're developing custom tags, which it doesn't sound like you're doing).  Though, if you need to, the approach above would work as well:  just find the UIComponent or Renderer class for the tag in question and set your breakpoints.  If by debugging the tag, you meant the point where your application and the interacts, you just need to place a break point on the method specified in the Expression Language expression (nice redundancy, huh?) and the BP will trip when JSF processes that tag, allowing you to step through that method.

I hope all that makes sense.  And helps. :)  I've written many, many apps in JSF and really do prefer it.  Rick Hightower has some interesting (though admittedly debatable numbers) on JSF uptake on DZone: http://java.dzone.com/news/jsf-catches-swing-number-one-g.  For what that's worth. :)

&lt;blockquote&gt;If the design didn’t have mandated that I use JSF, I would have had this project done the same day it was assigned as I would have written it in PHP. It’s the right tool for this job, frankly.&lt;/blockquote&gt;

And that might be the heart of the problem.  As much as I love JSF, I'll readily admit that it's not the right tool for every job.  In fact, I've written JSF apps that probably would have been easier (and quicker and smaller) in PHP, but, since we were a Java shop, that wasn't an option (and, being small, we couldn't afford to have an explosion of technologies), so we shoved the square peg in the round hole.  For larger apps, though, I like the component-driven approach of JSF, and I think it does a great job of encapsulating the functionality of those components.

I blog quite a bit on JSF-related issues on my blog (http://blogs.steeplesoft.com - I promise I'm not here to promote my own blog.  Just thought it might help ;) if you care to read any of those or ask any questions.  I'm more than happy to help where I can.</description>
		<content:encoded><![CDATA[<blockquote><p>I can’t debug anything with break points as everything is compiled into a java class at run time and all I ever see are tags, not Java code. It is so far abstracted that I can’t get to the guts of it if I tried.</p></blockquote>
<p>First, a disclosure:  I&#8217;m a developer on Mojarra, Mojarra Scales, and am a member of the JSF EG.  I&#8217;ve been using JSF for almost 3 years now, and really enjoy it, which led, eventually to my committer status and EG membership.  Now, with that out of the way&#8230;</p>
<p>I&#8217;ve not found debugging to be a problem, really, though I&#8217;ll admit that some may find my approach&#8230; arcane. :)  Typically what I do is this:  I&#8217;ll develop in Netbeans (previously Eclipse), but use the command-line to build and deploy my artifact.  In my IDE, I set break points where I need them, then attach my IDE&#8217;s debugger to my app server (GlassFish, fwiw).  When I hit the context the break points are tripped and my IDE comes to the front, allowing me to do all of the normal debugging things.  Eclipse even does a nice job of replacing the code on the server if I need to make a change in my app (though it&#8217;s not perfect).  Using that approach, I&#8217;ve been easily able to step through my apps.  I would imagine that that approach would work regardless of the framework used.</p>
<p>As far as debugging the tags, generally, I wouldn&#8217;t think you would need to do that (unless you&#8217;re developing custom tags, which it doesn&#8217;t sound like you&#8217;re doing).  Though, if you need to, the approach above would work as well:  just find the UIComponent or Renderer class for the tag in question and set your breakpoints.  If by debugging the tag, you meant the point where your application and the interacts, you just need to place a break point on the method specified in the Expression Language expression (nice redundancy, huh?) and the BP will trip when JSF processes that tag, allowing you to step through that method.</p>
<p>I hope all that makes sense.  And helps. :)  I&#8217;ve written many, many apps in JSF and really do prefer it.  Rick Hightower has some interesting (though admittedly debatable numbers) on JSF uptake on DZone: <a href="http://java.dzone.com/news/jsf-catches-swing-number-one-g" rel="nofollow">http://java.dzone.com/news/jsf-catches-swing-number-one-g</a>.  For what that&#8217;s worth. :)</p>
<blockquote><p>If the design didn’t have mandated that I use JSF, I would have had this project done the same day it was assigned as I would have written it in PHP. It’s the right tool for this job, frankly.</p></blockquote>
<p>And that might be the heart of the problem.  As much as I love JSF, I&#8217;ll readily admit that it&#8217;s not the right tool for every job.  In fact, I&#8217;ve written JSF apps that probably would have been easier (and quicker and smaller) in PHP, but, since we were a Java shop, that wasn&#8217;t an option (and, being small, we couldn&#8217;t afford to have an explosion of technologies), so we shoved the square peg in the round hole.  For larger apps, though, I like the component-driven approach of JSF, and I think it does a great job of encapsulating the functionality of those components.</p>
<p>I blog quite a bit on JSF-related issues on my blog (http://blogs.steeplesoft.com - I promise I&#8217;m not here to promote my own blog.  Just thought it might help ;) if you care to read any of those or ask any questions.  I&#8217;m more than happy to help where I can.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dhinojosa</title>
		<link>http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-17792</link>
		<dc:creator>dhinojosa</dc:creator>
		<pubDate>Sat, 05 Jan 2008 21:09:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-17792</guid>
		<description>Have you heard of Seam yet?  It is built on JSF, and it makes web development a pleasure.</description>
		<content:encoded><![CDATA[<p>Have you heard of Seam yet?  It is built on JSF, and it makes web development a pleasure.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: perlmunger</title>
		<link>http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-17783</link>
		<dc:creator>perlmunger</dc:creator>
		<pubDate>Sat, 05 Jan 2008 19:44:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-17783</guid>
		<description>Nice comparison on your site, ptrthomas. Funny how people argue to say that your example is "trivial". All of the examples I've found for JSF are nothing if not trivial, yet they take a very long article to explain them. There is no reason to pain yourself just to use some technology to accomplish something that a different technology does much simpler. That wasn't true in the 70s and 80s. Then you had to use whatever was available. That's not the case any more. While we all have preferences, it really boils down to using the right tool for the job.

-Matt</description>
		<content:encoded><![CDATA[<p>Nice comparison on your site, ptrthomas. Funny how people argue to say that your example is &#8220;trivial&#8221;. All of the examples I&#8217;ve found for JSF are nothing if not trivial, yet they take a very long article to explain them. There is no reason to pain yourself just to use some technology to accomplish something that a different technology does much simpler. That wasn&#8217;t true in the 70s and 80s. Then you had to use whatever was available. That&#8217;s not the case any more. While we all have preferences, it really boils down to using the right tool for the job.</p>
<p>-Matt</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ptrthomas</title>
		<link>http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-17775</link>
		<dc:creator>ptrthomas</dc:creator>
		<pubDate>Sat, 05 Jan 2008 17:14:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.matthew-long.com/2008/01/04/nobody-uses-javaserver-faces/#comment-17775</guid>
		<description>&lt;blockquote&gt;JSF is a technology that looks good on paper, but when it comes to actually using it, it stinks.&lt;/blockquote&gt;

Cannot agree more.  And +1 for Wicket, here's a side-by-side comparison of Wicket and JSF with code:

http://ptrthomas.wordpress.com/2007/05/14/a-wicket-user-tries-jsf</description>
		<content:encoded><![CDATA[<blockquote><p>JSF is a technology that looks good on paper, but when it comes to actually using it, it stinks.</p></blockquote>
<p>Cannot agree more.  And +1 for Wicket, here&#8217;s a side-by-side comparison of Wicket and JSF with code:</p>
<p><a href="http://ptrthomas.wordpress.com/2007/05/14/a-wicket-user-tries-jsf" rel="nofollow">http://ptrthomas.wordpress.com/2007/05/14/a-wicket-user-tries-jsf</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
