Today we have an honour to interview Çağatay Çivici - project lead of popular JSF component suite PrimeFaces. Çağatay is also a VIP in JSF world - a member of JSF Expert Group and PMC member of Apache MyFaces JSF Runtime. He told us about the PrimeFaces and PrimeUI projects, technology stack he uses and what makes open source library a product. Enjoy!
Can you tell us a little bit about the PrimeFaces project and your company Prime Teknoloji?
PrimeFaces is an open source UI component suite for JavaServer Faces with 100+ rich components (dataTable, charts, menus, tabs...). In addition to the core suite, there are a couple of add-ons like Mobile, Push, Themes and PrimeUI. PrimeFaces is maintained by Prime Teknoloji in Turkey. We have offices in Istanbul and Ankara. As end of 2012, we have 32 employees and most of them are software developers. PrimeFaces is the flagship product that is globally known however that's not the only thing we do. We provide project development, consulting, trainings, support services on Java EE in general and Agile Methodologies. Lately our focus is on developing e-commerce applications for our clients.
Çağatay is project lead of PrimeFaces and PMC of MyFaces
There was a lot of criticism of the JSF 1.x, why you decided to go this way? Is JSF 2.x fixing most of the issues - like 3.x for EJB?
I wouldn't start PrimeFaces if it wasn't for JSF 2. I've been working on JSF since 2005 and thanks to JSF 2 it is now a pleasure to develop applications along with custom components. From my experience if a standard technology in Java is inspired by the innovation that is happened elsewhere it will succeed. JSF 1 was built upon new ideas whereas JSF 2 is based on feedback from community, various JSF extensions and different communities.
As I understand - PrimeFaces is a UI component library - you have to include JSF runtime to get it worked. Is it possible to use a Spring + Hibernate (or another Java framework) underneath?
Yes, PrimeFaces is just the UI layer, you can use Spring, EJBs, CDI, JPA and anything else as the backend. PrimeFaces requires JSF runtime like Mojarra or MyFaces for sure.
Are PrimeFaces components working well on mobile devices?
In core components we test them on mobile devices as well so support is quite good, we also have the mobile specific project called PrimeFaces Mobile. It runs jQuery Mobile underneath and using renderer technology of JSF, we can render the same UI optimized for mobile devices.
There is a lot going on with the HTML5 and JavaScript nowadays. Modern frameworks does not generate HTML/Javascript but rather extend it to provide a convenient way to develop applications. Is PrimeUI your response to that trend?
HTML5 features are well integrated in PrimeFaces like ajax uploads, canvas, websockets, data- attributes and more. From what I see, there are two trends right now, corporates seem to prefer developing intranet applications fast without the burden of css, javascript and other ui technologies so PrimeFaces is extremely popular in corporate environment. Public applications on the other hand nowadays are developed Restful style with no real server side UI framework at the backend using simple transports like JSON. PrimeUI is designed to bring PrimeFaces UI to this latter case, PrimeUI only has pure Javascript and CSS components that can be used with any framework like JAX-RS, PHP, ASP, .NET, Rails, Grails …
Can you describe your top-of-the-tops technology stack that can you use with PrimeFaces? Do you have some typical setup that you suggest your customers?
CDI complements JSF pretty well, in JSF 2.2 there will even be some dependencies to CDI in addition to current @ConversationScope. So JSF2-PrimeFaces-CDI-EJB-JPA is currently my favorite lightweight stack for enterprise applications. CDI-EJB can also be replaced with Spring to get JSF-PrimeFaces-Spring-JPA which is also a popular formula for a long time. We do not have a setup for customers since they choose the backend stack they want and PrimeFaces integrates with it since there is no dependency to a middleware framework.
What is the future roadmap for PrimeFaces?
PrimeFaces is 4 years old and good thing is we feel there is a lot of work to do. Our roadmap has improvements for accessibility, RTL support, more components, more features to existing components and keeping stability at maximum level. PrimeUI and PrimeFaces Mobile is also a big part of the roadmap in addition to Core. We are really excited!!!
How do you see the future of open-source development frameworks? Large companies sponsor their libraries but there is also whole GitHub / BitBucket space where people make own projects but also fork and fix existing ones.

It is different in other ecosystems like .NET but in Java world, for me open source is the de-facto standard, it is quite hard to compete if you are not developing an open source library. For large companies like JBoss-RedHat it is quite easy to develop open source project as they can easily sponsor the development team regardless of the fact that the project is generating revenue. Even small companies started to do the same but surviving is not easy without a sponsor or an investment as it takes a long time to get a revenue from an open source project as you need to wait to build a community first which would take at least a year. I see a major difference between an open source project and an open source product. A product has to be supported, provide training and consulting. Managers don't really care where the code is hosted, they care if they can blame somebody if the code doesn't work ;)
Many sites for developers have appeared recently: Coderwall, Geeklist, DevRates (immodestly...). Do you use any of these in your daily work?
Only one I know is Devrates in which PrimeFaces is quite popular, I'm glad to see that our work is appreciated by the community. I like the rating check system as well that makes sure ratings are valid.