Primefaces and the community, an honest opinion

Posted: 13 July, 2011 in opensource, primefaces

It is currently almost impossible to not like JEE6. CDI, JSF2, JPA2, Servlet3.0, Bean Validation 1.0 and what not But what then… The default JSF components give you limited functionality, so the quest for selecting an enhanced component suite comes to everybody’s path.

Long, long time ago, in the JSF1.0 era, I just myfaces components, they provided a little more, but not much. Then came the Richfaces with Ajax4JSF. I started using this when Richfaces went from being commercial at Exadel to being part of JBoss. I was fairly pleased for a while but when JSF2 came around, I just wanted to have a component suite that worked with it natively.

My shortlist contained 3: Richfaces 4, Primefaces 2/3 and Icefaces 2. The reason I left OpenFaces out at that time was (I think) because I dislike companies opensourcing their whatever they have because they fail to succeed commercially. Ok, Richfaces was commercial to, once, so I begin to doubt my own arguments a little. It might be because I have a ‘warm feeling’ for JBoss (to a certain extend).

Icefaces fell of the list when I noticed their ‘commercial’ touch, having only a few JSF2 components in the open. Mind you, I have nothing against commercial companies, but using JSF mainly for my personal projects, I did not have the money to buy their enhanced components. The Richfaces project took a long, long time to produces something that was usable, could be demonstrated etc. Now I know they developed a new ‘component development kit’, started all from scratch wanted to deliver high quality components, but I just could not wait.

So Primefaces remained, I started using it at version 2.1 and was fairly pleased. A nice set of components that are easily themable since they use the jquery-ui conventions. This means that with JqueryThemeRoller you can create your own themen within minutes. But as always, the devil is the details. Details here meaning developing more complex applications. For me one of the most important components is the datatable. It should have sufficient functionality to begin with, a clear outlook of what additional functionality will come and when, not to many issues etc…

For the Primefaces datatable there are many feature requests. Some duplicates, some not triaged (invalid in the meantime), some nice to haves, and some must haves. Fixed columns and horizontal scroll is for me a nice to have, but having a multi-select like in file browsers is (almost) a must.

EDIT:
Cagatay validly pointed out that the PF datetable is the most complex component with many features already (for the details see below in his reply) so there was already a lot of time and effort put into it. I should have mentioned that.

So instead of complaining, like some others do, I started implementing this myself. Contratry to what people think, developing JSF2 components is not that hard, and most of the things (all in case of the multi select) had *nothing* to do with JSF, but were merely html/jquery things. So what now…

Well, as you can see in the next post in the same topic by the Primefaces lead, they have a policy that issues that are most often voted for get a higher priority then others, but requests by paying customers have an even higher priority. Now this is not strange, since Primefaces is not backed by a company like JBoss or Oracle and since they are human, they do need to eat and drink and go on holiday now and then. So a vibrant community around Primefaces is a great thing to have.

Every now and then they post a tweet about the number of posts that were reached in the forum. Honestly, this can be interpreted as negative as well. If a huge number of posts is required in the forum, It might be that things are not (always) that obvious or bug free. Both are the case, but posters often forget to search the forum or issue list and just post and so you cannot draw a real conclusion from the number of posts. Yes there are many users, yes there are people that help others, a lot, blog about it etc, but that does not constitute a community.

It is obvious that the Primefaces teammembers to a lot of work in their free time as well, so all the work is very much appreciated, but as mentioned, in my opinion, Primefaces does not realy have a community. I can accept that Prime Technolgy wants to stay in control of the direction Primefaces is going and there is no need for an Apache PMC like ‘environment’ now.

But there are some people that do not get a warm feeling on how things are currently going or at least how they are perceived. So, and this is going to be a bold and not realy well founded statement  but jsut to cause ripples/controversy, I get the impression that the Primefaces team rather waits for a paying customer to come by then to accept patches from the community. It might be wrong, they might jsut be scared of copyright infringement, but that can be solved by a contributors agreement. Heck I do not even want/need commit rights (Git instead of SVN might help here)

Don’t get me wrong ,I do like Primefaces and will continue using it,  but at the same time I do not want to ‘fork’ certain components just to speed up fixings issues, enhancing things  or even introducing new components. I want Primefaces itself get to a higher level and want to HELP

Peace,

Ronald

Advertisements
Comments
  1. I disagree your statement that PrimeFaces does not really have a community. Sending patches is just one of contributing, many people do that actually. Votes are needed so we can prioritize what to work on to respond community feedback.

    Regarding datatable, it is the most complex component of PrimeFaces so we don’t want to make it more complex until current featureset is rock solid and bug free. DataTable has grouping, dynamic columns, row expansion, incell editing, scrolling, resizable columns, cell selection, row selection, pagination, sorting, filtering, behaviors, radio selection, checkbox selection, lazy loading and more already. The features you’ve mentioned will be added in future releases for sure, and your patches are appreciated, it will be just a matter of time until they are reviewed.

    Horizontal scrolling should be working in 3.0.M3 iteration and ctrl key selection is done as poc, shift selection is pending.

    There are thousands of users and everyone demands a fix/feature, we do our best to respond.

    Regards,

    Cagatay Civici
    PrimeFaces Lead

    • kukeltje says:

      @Cagatay,

      Sorry, it was my intention to mention the datatable is the most complex component, since I know it is. Will edit the original article. Sorry for that

      The fact that votes are needed to in some ways prioritize the work that needs to be done is not an issue. I explicitly say in some ways, because if others contribute solutions there is less work for you guys (girls?). I know things still have to be merged, tested and so on, but it will be less work for the PF team.

      But now let me explain, based on parts from your response why this is for me a confirmation that me stating there is no ‘real’ community is not to far off.

      I understand that certain requirements will be implemented in future releases and that patches are appreciated, But from all the patches that are currently added to open issues (not only enhancements, sometimes bugfixes) I ‘nowhere’ see that it is accepted, under consideration or whatever. Managing that is part of what really makes a community, and yes that takes time, but it makes sure that people who are willing to contribute their time to do more then use (test) PF and report issues to stay enthousiastic and keep contributing patches.

      Another example is that on May 30th you stated: “No plans to add key support to datatable selection” and on July 8th you just mentioned to create an issue and gather votes… and now you mention there is a POC… I know from personal experience (I implemented ctrl AND shift click) that ctrl is very easy, very easy. Just a few (<10) lines of code. I'm lucky (I guess) you did not also implement shift-click and ctrl-shift-click which is even more difficult (you didn't did you?) since that would have meant that I spend 2 days of my precious time inside instead of in the sun. That would have (and I hope you can understand that, how much I appreciate the efforts by you and your team) really have given me bad feelings (read p*ss*d me off).

      Thirdly the horizontal scrolling scrolling issue is not even assigned and has status new but it will be in 3.0.M3… Great…. NOT, since this actually did cost me two days of my time, because I did work on it, since it was not clear that someone was working on it, so I’m feeling not so happy right now… What should I work on next? I have no clue… do

      Regarding your last statement that there are thousands of users and that everybody is ‘demanding’ a fix/feature is for me not the issue. Yes it is true and yes, some complain (whine is a better word I think) without a valid reason and yes, I hope you do your best to respond ;-). But instead of you (the PF team) responding with ‘file an issue, gather votes’ let us (some ‘respected’ user that really like to be ‘community members’ ) make those replies. So the PF team can focus on responding/following the real issues and keeping them up to date so e.g. the state of issues are a representation of reality, others know what the state of their patch is. Or triage issues (find duplicate, close them, close issues that are out of date etc… That is what makes a community, and believe me, I know.

      Primefaces has grown, improved with each release, but I think PF is now in it’s adolecence and needs to make the next step and grow up (not sure if it is the right anology but it just came to mind)

  2. olegvar says:

    Hi Ronald. I agree with you 100%. I know a little bit PrimeFaces’ inside, you can forget to become a committer. But PrimeFaces is in favor of an Add-On project (at least theoretically) – http://primefaces.prime.com.tr/forum/viewtopic.php?f=3&t=4303

    • kukeltje says:

      @Oleg,
      I knew about bumblebee-faces and to be honest, I read the post you are refering to many months ago, but did not remember. What triggered me to write this post is this discussion Funny thing is that this is not in line with the post you are refering to. It does not contradict it, but I’d suspected more ‘cooperation’ on the request to remove the hard coded things so an ‘incubation’ project could use the same ways of generating components, therefor making it easier to ‘promote’ them to official ones. I know you have a slightly different opinion but ‘internal use’ for me is not Prime Technology, but Primefaces and the ‘directly related incubation project’ primefaces-ext? primefaces-extensions or whatever…

      Cheers (hoping on a fruitful cooperation

  3. Oleg says:

    Ronald, I have never seen that patches were accepted too. PrimeFaces is a great framework, the best one (except backwards compatibility at same places). I like it. But it’s for me a “close” project. It’s not really an open source where you can join to the development and participate in it. On the other hand ALL major JSF libraries are “close” from this point of view. They make money with any kind of support, etc. Let’s start an extension project 🙂 better and apply our thoughts on this instead of give them away for “close” projects :-).

    Best regards. Oleg.

    • kukeltje says:

      Making money of something is not wrong, at all… RedHat makes money of Linux and of JBoss AS, still the development is fairly open. Regarding JSF, Richfaces is not ‘closed’… they are open. But since the JBoss AS7 webbased ui is GWT based, I doubt how long they will support Richfaces.

  4. Oleg says:

    Hmm… I don’t think you can participate in RichFaces development too much. ICEFaces and OpenFaces (open :-)) are “close” too in my opinion.

  5. Oleg says:

    RichFaces only accepts full-time developers in USA, Minsk (Belarus) and Donetzk (Ukraine). PrimeFaces – only in Istanbul 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s