• Post Reply Bookmark Topic Watch Topic
  • New Topic

JSF: popular? implementations?

 
H Paul
Ranch Hand
Posts: 471
4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
1. Is JSF a popular framework?

2. I never think of using this JSF but how many different implementations are there?
And what is the most commonly used implementation. Google show a lot...but confused...

For example, Metro for soapful jax-ws or Jersey for rest jax-rs. In a similar way, what is the recommended JSF implementation to start with?
 
K. Tsang
Bartender
Posts: 3604
16
Firefox Browser Java Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
First JSF is part of the Java EE platform.

Since Java EE 6, Oracle tends to recommend developers to use JSF instead of JSP for the front-end UI stuff. So the popularity should gradually increase over time if it isn't already.

As for implementations, the JSF framework alone only provides the <f:xxx> and <h:xxx> tags. So this somewhat limits the UI components.

As you noticed from Google search, there are many variants of JSF eg Primefaces, Richfaces, ICEfaces, Tomahawk etc.

I personally like to use Primefaces. I'm sure all the mentioned variants have the same functions and components. It comes down to the "out-of-the-box" experience.

Yet I do find making the look and feel right with Primefaces can be cumbersome (eg override the Primefaces internal CSS).
 
Bear Bibeault
Author and ninkuma
Marshal
Posts: 65516
105
IntelliJ IDE Java jQuery Mac Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'll answer #1 from my point of view; of course, other's experiences may be different. But in the segments of the industry that I've seen, JSF is not popular -- in fact, in my circles most view it with outright hostility. A number of my most recent jobs have been to replace JSF monstrosities with more straightforward implementations. As always, your mileage may vary.

I'll also go on to say that server-side technologies, particularly the huge overblown ones like JSF, are waning in popularity in favor of more client-centric approaches. All of the jobs I've considered over the past few years used client-side templating and a server backend consisting of a simple RESTful API.

My 2¢
 
Bear Bibeault
Author and ninkuma
Marshal
Posts: 65516
105
IntelliJ IDE Java jQuery Mac Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
K. posted while I was typing...

K. Tsang wrote:Since Java EE 6, Oracle tends to recommend developers to use JSF instead of JSP for the front-end UI stuff.

What Oracle recommends isn't always what drives adoption. In fact, I find that it seldom does. EJB is a good example. Its use is minuscule compared to alternates such as Spring/Hibernate. Oracle rarely gets what it wants.

So the popularity should gradually increase over time if it isn't already.

Should? I'm not seeing it. In fact, it's exactly the opposite of what I see happening. As time goes on, I see JSF falling out of favor as people realize that it's an overblown awkward solution that creates more problems than it solves.

Again, just what I see. There are plenty of fans of JSF, but I don't see its adoption and popularity going anywhere but downward.
 
Tim Holloway
Bartender
Posts: 18408
58
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
As you might surmise, Bear is not a JSF fan.

JSF is best when you want to conduct interactive sessions with forms, preferably with relatively few online users. ReST is best when you want to initiate server actions and having the UI maintained for you is a secondary concern. It's also preferable when you want to be able to shotgun requests to a bank of interchangeable servers (large-scale load balancing), because unlike technologies like JSF, you don't end tied up to one specific server in the cluster (which might become overloaded).

There is no "silver bullet" one-size-fits-all solution. I run both kinds of systems. And despite Bear's pessimism, JSF is, if anything, still on the rise locally. Although locally, they're still trying to figure out how to live without punched-cards, so take that as you wish.

JSF is an extendable framework. The core tagsets are basic functions and thin wrappers for traditional HTML. Commonly people will extend these by adopting one of the third-party enhancements that Mr. Tsang has mentioned. I owe him a cow for that recommendation. Not only is JSF extendable, but unlike older, more cumbersome frameworks, it is a non-greedy framework. It doesn't demand to be totally involved in every HTTP transaction. In fact, there are times when I despair of convincing people not to attempt to force JSF to do non-form things like produce spreadsheets and PDFs and just employ simple servlets. I have one app that's primarily ReST, but JSF handles the admin screens.

Ignore what Oracle and IBM recommend. They've recommended lots of things, only to discard them later. Often one reason they recommend stuff is because they want to inflict legions of over-priced "experts" on you.
 
E Armitage
Rancher
Posts: 989
9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The thing about JSF (and to some extent EJBs) is that many people know the older obsolete versions and don't know much about the very different latest versions. You can't just say JSF anymore because you could be meaning two versions that are completely different. JSF 2.2 supports HTML5 and stateless views and EJBs don't need interfaces anymore and can be deployed in war file in a web profile container. You can't really say JSF 2.2 (or any framework) is good or bad. You can however say that some framework is a more applicable choice than another for a given project. Applicability of a framework depends on many many factors some of which are
Who will develop and maintain the application and what do they know?
What is the deployment strategy going to be (what containers if any, whether there will be clustering , active-active or active-passive )? Stateless or stateful frameworks are applicable differently for those answers.
Whether the application should be responsive or not (some frameworks are more difficult to achieve that than others)?
 
K. Tsang
Bartender
Posts: 3604
16
Firefox Browser Java Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for the cow Tim.

 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!