I. Introduction▲
À l'occasion de sa tournée de présentation de PrimeFaces, dont il est l'auteur, Çagatay Çivici a répondu à quelques questions à propos du framework. Il nous parle de ses fonctionnalités préférées et des origines de PrimeFaces. En exclusivité, il nous donne quelques infos sur les prochaines évolutions.
I-A. À propos▲
Cette interview a été réalisée en anglais (cf. annexes). Les traductions proposées peuvent ne pas correspondre complètement aux réponses de Çagatay.
I-B. Mises à jour▲
1er décembre 2012 : Création.
II. Çagatay▲
Peux-tu te présenter en quelques mots ?
Je m'appelle Cagatay Civici. Je suis le créateur et leader du framework PrimeFaces pour JavaServer Faces. Je suis aussi cocréateur de Prime Teknoloji en Turquie, à savoir l'entreprise derrière PrimeFaces. Bien que je travaille à temps plein pour PrimeFaces, je fais aussi du consulting, du monitoring, des trainings, des interventions dans les conférences. Je contribue aussi aux JSR comme JSF.
Comment es-tu arrivé dans l'informatique ?
À cause de mon frère je pense. C'est un consultant en informatique très connu en Turquie. Il a travaillé aux États-Unis et au Royaume-Uni pendant plusieurs années sur des projets « cool ». Il a une grande influence sur moi et m'aide beaucoup comme mentor.
As-tu une formation spécialisée ? As-tu fait une école ?
J'ai été (difficilement) diplômé en 2005 du département des sciences informatiques de l'Université Bilkent. Après avoir obtenu mon diplôme, je n'ai pas fait d'autre formation.
Quelles sont tes passions ? As-tu des hobbys ?
J'aime jouer au basket et suivre les évolutions de la NBA. J'essaie aussi d'apprendre la guitare pendant mon temps libre, mais j'ai encore besoin d'entraînement, car mon travail me prend beaucoup de temps. Cependant, ça m'aide à m'aérer l'esprit. J'aime écouter du métal. De plus, un peu de distance avec ma guitare m'aide à m'échapper du boulot.
Quel est ton rôle dans la communauté JEE ?
Je pense que mon rôle est surtout de contribuer à JSF et de montrer la vraie force de JSF aux non-croyants. JSF souffre d'une mauvaise publicité à cause de JSF 1, donc nous essayons de corriger les choses avec JSF 2. PrimeFaces s'inscrit vraiment dans un cadre productif et beaucoup de gens ont déjà changé d'avis sur JSF grâce à PrimeFaces.
III. PrimeFaces▲
Peux-tu nous expliquer ce qu'est PrimeFaces ?
PrimeFaces est un framework open source, qui peut être assimilé à une suite de composants d'interfaces riches pour JSF. Ce dernier apporte des éléments très basiques d'UI. PrimeFaces va plus loin et propose plus de 100 composants, plus de 35 thèmes, des composants mobiles et bien plus encore. C'est actuellement de loin la suite pour JSF la plus populaire, ainsi qu'un outil graphique très populaire partout pour le développement de Java Web.
D'où vient le nom du framework ?
Le nom de l'entreprise est Prime Teknoloji, donc on l'a appelé PrimeFaces. Prime est aussi le préfixe employé pour d'autres sous-modules, comme PrimeUI. C'est mon frère qui l'a suggéré quand nous montions la boite. La signification correspond à ce que nous essayons de faire.
Pourquoi as-tu créé Prime ? Quel était le besoin ?
J'utilise JSF depuis 2005 ainsi que d'autres bibliothèques comme RichFaces ou IceFaces. Pendant que je travaillais avec, je me suis dit que ça pouvait être beaucoup mieux. J'ai donc commencé à travailler sur PrimeFaces.
Je n'ai jamais aimé la quantité de dépendances et de Jars dont on a besoin pour utiliser d'autres bibliothèques et la configuration requise pour l'ère 1.2. On ressentait aussi le poids des autres bibliothèques la première fois qu'on utilise l'application après les avoir ajoutées. PrimeFaces est léger : un Jar unique et zéro dépendance. PrimeFaces cache la complexité et offre de la flexibilité pour l'auteur de la page, chose qui n'est pas disponible avec d'autres bibliothèques.
Quels sont les points forts de Prime ?
C'est développé par des développeurs d'application (qui programment au quotidien, pour des vraies applications) et non par des commerciaux. Nous utilisons donc PrimeFaces tous les jours pour le développement des applications pour nos clients. Le grand avantage est de pouvoir voir le cadre du point de vue du client. C'est comme ça que nous sommes arrivés à la facilité d'usage. Nous utilisons aussi PrimeFaces PRO où les utilisateurs PRO peuvent nous demander d'ajouter les caractéristiques de leur choix. Ceci n'est pas possible dans le monde strict des commerciaux.
Le framework est-il difficile à apprendre ? Que conseilles-tu comme point d'entrée ?
Tout d'abord, une bonne connaissance de JSF est nécessaire. Ensuite, je conseillerais de regarder un exemple showcase (cf. site). Beaucoup de vrais cas y sont déjà incorporés. Pour un composant particulier, le guide d'utilisation aide beaucoup si on le combine avec le showcase. Un livre (par la pratique) va sortir en 2013 pour plus d'intégrations de cas.
Quelles sont les choses à bien comprendre pour tirer pleinement profit de Prime ?
Il est facile de dépasser PrimeFaces, CSS est flexible, les composants ont des applications pratiques du point de vue du client, et pour presque chaque interaction client avec un composant, nous proposons un « callback » Ajax côté client. Il est donc utile de savoir ce que sont les widgets puisque PrimeFaces se concentre sur les clients alors que JSF se concentre sur les serveurs.
Quelle est la fonctionnalité la plus cool de Prime ?
Je suis fan des thèmes. Il en existe plus de 35 et on peut même créer le sien avec le designer de thèmes visuels appelé ThemeRoller. On peut aussi facilement étendre les composants avec des surcharges CSS ou du code jquery. Le « push » est vraiment cool grâce à Atmosphere. Les callback sont une autre caractéristique que j'affectionne, on peut rentrer dans plusieurs éléments de ce qu'on appelle les composants « off shelf ».
Quelles sont les priorités pour les prochaines versions ?
Nous devons améliorer la partie dédiée au mobile PrimeFaces. Le support RTL est également important pour nous.
Comment le framework va-t-il évoluer de manière générale ? Mobiles ? Cloud ? etc.
JSF supporte déjà le cloud, et nous avons des démos sur Jelastic, Appengine, etc. De nouvelles caractéristiques vont apparaître dans les composants existants, plus de caractéristiques mobiles et la nouvelle bibliothèque pure JavaScript appelée PrimeUI aura bientôt une version stable. PrimeUI est seulement le widget de JavaScript et peut être utilisé avec n'importe quel cadre comme PHP, spring mvc, etc.
IV. Autour des Primes▲
JSF a-t-il toujours la cote ?
Oui ! À en croire les sondages et le business que nous avons, JSF est très populaire, surtout dans le monde de l'entreprise, puisque ça nous aide à vite fournir des interfaces, sans avoir à se soucier questions de bas niveau.
Comment se positionne PrimeFaces par rapport à la concurrence ? Rich, Ice, etc.
RichFaces est un bon projet de communauté JBoss, mais je le vois comme outil de vente : JBoss n'utilise pas RichFaces dans ses autres produits, comme la console d'administration de JBoss AS.
IceFaces était aussi un concurrent de taille, mais ils ont bifurqué de PrimeFaces 2 pour créer IceFaces 3, du coup ce n'est pas une bonne idée de créer la suite de la prochaine génération en copiant les concurrents. Ils ont donc été de bons projets qui ont aidé JSF 1, mais c'est maintenant l'heure de Prime.
Y a-t-il d'autres frameworks que tu conseilles d'utiliser en même temps que PrimeFaces ? Ex. Pretty Faces, Guava… ?
PrettyFaces est utile si l'application s'adresse au public. Je conseille d'utiliser OmniFaces, de par sa grande bibliothèque utilitaire pour JSF. De plus, les extensions de PrimeFaces ont plein de composants cool.
Comment est composée l'équipe qui développe PrimeFaces ? Comment fonctionne-t-elle ?
L'équipe principale est toujours dans la même pièce, dans notre bureau à Ankara. D'autres membres sont à Istanbul, en contribuant à distance. Nous utilisons NetBeans et Subversion pour développer PrimeFaces.
Comment se déroule ta tournée de présentation de PrimeFaces dans les JUG ? Bien ?
Les sessions PrimeFaces sont toujours sympa, puisque c'est facile de présenter un cadre UI. Une démonstration fait le reste et les gens aiment bien les démos cool. Je présente actuellement PrimeFaces une fois par mois dans un évènement, et la satisfaction est garantie.
Y a-t-il une communauté forte autour du framework ? Forums ? Etc.
Oui, le forum va atteindre les 100 000 posts avec 15 000 utilisateurs, Twitter a plus de 3000 suiveurs et le groupe sur Facebook est proche des 3000 membres. Ces chiffres sont bien plus élevés que ceux pour les autres cadres RIA pour Java Web. Notre style est diffèrent, c'est ouvert et honnête. Nous ne sommes pas un vendeur de logiciels fermés avec des règles strictes pour ralentir les processus de travail. Nous sommes agiles. Notre communauté aime ça.
Quelles sont les demandes/erreurs qui reviennent le plus souvent ?
Ce serait génial si les nouveaux membres de la communauté prenaient le temps de lire les lignes directives du forum. En effet, elles fournissent plein de conseils sur comment avoir de manière efficace un support au sein de la communauté.
Comment participer au développement de la bibliothèque ? Comment peut-on vous aider ?
Nous acceptons les patchs de la communauté, nous utilisons Google code issue tracker où il est possible d'y attacher un patch. Nous avons récemment reçu de plus en plus de patchs de rapports des défauts et des nouvelles caractéristiques, ce qui est génial. Le code et la construction de PrimeFaces est assez simples, ce qui rend encore plus simple d'avoir les patchs.
Les développeurs qui fabriquent leurs propres composants peuvent-ils vous les proposer ?
Nous préférons écrire nous-mêmes les nouveaux composants. Cependant, PrimeFaces Extensions est le meilleur endroit pour les proposer.
On trouve beaucoup de gens contents sur le forum, mais aussi quelques personnes qui ne trouvent pas leurs réponses.
Comme dans n'importe quelle communauté open source, avoir des réponses dépend de plein de choses, comme le temps libre des personnes pouvant aider, la qualité du projet, etc.
Vous venez de lancer une offre de support « Pro », quel est le bilan après quelques mois ?
Bien mieux que nous ne l'espérions. Nous avons plein d'utilisateurs PRO et leur nombre grandit chaque mois. PRO est le meilleur pour les deux mondes : les utilisateurs PRO ont les caractéristiques qu'ils veulent et notre modèle de travail en open source s'améliore avec l'aspect financier. Les utilisateurs de la communauté ont des caractéristiques sympa gratuitement puisque les requêtes PRO sont aussi disponibles en open source pour les membres de la communauté. Tout le monde est gagnant.
V. Conclusion▲
Un dernier mot pour nous convaincre d'utiliser le framework et de devenir un Prime ?
Regardez juste le showcase :) Sérieusement, PrimeFaces a quatre ans, est mature, basé sur un modèle de travail qui fonctionne, a une large communauté, de la documentation décente et a prouvé son efficacité dans des milliers de projets. C'est un des meilleurs choix pour Java Web.
Vos retours nous aident à améliorer nos publications. N'hésitez donc pas à commenter cet article sur le forum : 2 commentaires
VI. Remerciements▲
L'équipe de Developpez.com se joint à moi pour remercier chaleureusement Çagatay Çivici pour sa participation à cette interview et à Karyne Leriche pour les traductions.
Je tiens à remercier, en tant qu'auteur de cette interview, toutes les personnes qui m'ont aidé et soutenu. Je pense tout d'abord à mes collègues qui subissent mes questions au quotidien, mais aussi à mes contacts et amis du Web, dans le domaine de l'informatique ou non, qui m'ont fait part de leurs remarques et critiques. Bien entendu, je n'oublie pas l'équipe de Developpez.com qui m'a guidé dans la rédaction de cet article et m'a aidé à le corriger et le faire évoluer, principalement sur le forum.
Plus particulièrement j'adresse mes remerciements à, Çagatay Çivici, Karyne Leriche, Mickael BARON (keulkeul), mlny84, longbeach, et Claude LELOUP.
VII. Annexes▲
VII-A. Liens▲
PrimeFaces : http://www.primefaces.org/Prime Faces
Çagatay Çivici sur Twitter : @cagataycivici (https://twitter.com/cagataycivici)
VII-B. Liens personnels▲
Retrouvez ma page et mes autres articles sur developpez.com à l'adresse https://thierry-leriche-dessirier.developpez.com/#page_articlesTutoriels
Ajoutez-moi à vos contacts à l'aide du QR Code suivant :
Suivez-moi sur Twitter : @thierryleriche (https://twitter.com/thierryleriche)@thierryleriche
VII-C. Interview originale en anglais▲
Comme je l'ai expliqué, l'interview s'est déroulée en anglais. En voici une retranscription :
Please, briefly introduce yourself.
My name is Cagatay Civici, I'm the founder and project lead of the PrimeFaces component suite for JavaServer Faces. I'm also the cofounder of Prime Teknoloji in Turkey, the company behind PrimeFaces. Although my full time job is PrimeFaces, I do consulting, mentoring, training, talks in conferences and contributing to JSR's like JSF as well.
How did you end up working in IT?
Because of my brother I guess, he is a well known IT consultant in Turkey and worked in the US and in UK many years doing cool projects. He has great influence on me and still helps me out as a mentor.
Do you have qualifications in IT? Did you go do any Further Education or go to University?
I've graduated from Bilkent University Computer Science department in 2005. After getting my degree, I'vent done any academic degree like MS.
What are your interests? Do you have any hobbies?
I like playing basketball and keeping track of NBA. Also I'm trying to learn how to play a guitar in my free time. I need to practive more but work takes a lot of time, it helps me to clear my mind though, I like listening to metal music and a little distortion from my guitar always helps to get away from work.
What is your role in the JEE community?
I think my role is to contribute to JSF mainly and show the true power of JSF to non-believers. JSF has suffered a bad marketing because of JSF 1 and we are trying to get things straight with JSF 2. With PrimeFaces it is a really productive framework and many people changed their ideas on JSF already because of PrimeFaces.
Please explain what PrimeFaces is.
PrimeFaces is an open source rich user interface component suite for JavaServer Faces framework. Core JSF provides very basic UI components, PrimeFaces goes beyond that and features more than 100+ components, Push Framework with Atmosphere, 35+ Themes, Mobile Components and more. It is currently by far the most popular suite for JSF and a very popular UI tool overall for Java Web Development.
Where does the framework's name come from?
The company's name is Prime Teknoloji, so we call it PrimeFaces. Prime is the prefix for other submodules as well like PrimeUI. My brother suggested when we were setting up the company, the meaning also fits what we are trying to do.
Why did you create Prime? What was the need?
I have been a JSF user since 2005 and a user of other libraries that RichFaces and IceFaces. While working with them, I though this can be done way better and started working on PrimeFaces. I never liked the bunch of jars as dependencies you need to use other libs and the configuration required in 1.2 era. Also you were feeling the weight of the other libs the first time you run your app after adding them. PrimeFaces is lightweight, one jar and no dependencies. PrimeFaces hides the complexity and keeps flexibility for page author which is not available in other libraries.
What are Prime's strong points?
It is developed by application developers not vendor developers so we use PrimeFaces everyday when developing applications for our clients, this has a great advantage since we can see the framework from the user's point of view. This is how we achieve the ease of use. We also have PrimeFaces PRO where PRO users can ask us to implement features they want, something like this is not possible in strict vendor world.
Is the framework hard to learn? Where would you begin?
First decent knowledge of JSF is necessary, after that I'd suggest taking a look at showcase samples, most real life cases are implemented there already. When working with a component, user's guide would be great help combined with showcase. A PrimeFaces Cookbook is also coming up in 2013 for more use case implementations.
What do we really need to understand to take full advantage of Prime?
PrimeFaces is easy to override, css is flexible, component's have client side apis and for almost every user interaction with a component we provide a client side and server side callback with ajax behaviors. So it is useful to know what widgets are since PrimeFaces is client centric although JSF itself is server centric.
What is the coolest functionality in Prime?
I am a fan of themes, you can choose from the 35+ existing themes or create your own with the visual theme designer called ThemeRoller. Also you can extend components easily with css overrides, jquery coding. Push framework is really cool thanks to Atmosphere. Callbacks are also another feature I like, you can hook-in to various events of so called off the shelf components.
What are the priorities for future versions?
We need to improve the PrimeFaces Mobile. RTL support is also important for us.
Generally speaking, how will the framework evolve? Mobiles ? Cloud ? etc.
JSF already supports Cloud and we have demos running in Jelastic, Appengine and so on. There will be many new features in existing components, more mobile features and the new pure javascript library called PrimeUI will reach a stable version soon. PrimeUI is just the javascript widgets and can be used with any framework like php, spring mvc and so on.
Is JSF still preferred?
Yes, from what I see around in surveys and the business we get, JSF is very popular especially within corporate world as it helps you to quickly come up with cool UIs without worrying about the low level stuff.
What is the position of PrimeFaces compared to competitors? Rich, Ice, etc.
RichFaces is a good community project from JBoss but I see them as vendor tool, even JBoss is not using RichFaces in other JBoss products like the admin console of the JBoss AS. IceFaces was also a worthy competitor but they have forked PrimeFaces 2 to build IceFaces 3 so it is not a good idea to create your nextgen suite by copying your competitor. So they were good projects that helped JSF 1 but it is now Prime Time.
Which other frameworks would you recommend to use with PrimeFaces? e.g. Pretty Faces, Guava ?
PrettyFaces is useful if your application is facing public , I suggest using OmniFaces which is a great utilility Library for JSF. Also PrimeFaces extensions have many cool components.
How is PrimeFaces team organized? How does it work?
We have core developers, qa and testers. Core team is in same room located at our office in Ankara, other members are in Istanbul contributing remotely. We use NetBeans and Subversion to develop PrimeFaces.
How are the presentations of PrimeFaces in the JUGs being received? Good ? What is the reaction to the presentations?
PrimeFaces Sessions are always fun as it is easy to present a UI framework, it is demo driven and people really enjoy the cool demos. Usually I present PrimeFaces once a month in an event and satisfaction is guaranteed.
Is there a strong community around the framework? Forums ? etc.
Yes, forum is going towards 100.000 posts with 15.000 users, twitter has 3000+ followers and facebook group is close 3000 members. These numbers are far more than the other RIA frameworks for Java Web. Our style is different, it is open and honest. We are not a closed software vendor with strict rules and slow business processes. We are agile. Our community likes it.
What are the most common requests/mistakes?
It'd be great if new members of the community take a moment to read the forum posting guideline as it has many tips on how to get support efficient in community.
How can you take part to the library development? How can people help you?
We accept patches from the community, we use google code issue tracker where you can attach a patch. Recently we receive more and more patches for defect reports and new features which is great. Code and Build of PrimeFaces is pretty simple which makes it easier to get patches.
Can developers manufacturing their own components sell (and support) those to you?
We usually prefer writing the new components ourselves, PrimeFaces Extensions however is a better place to propose them.
We find a lot of satisfied people on the forum, but also some who cannot find answers.
Same as in any open source community, getting an answer depends on many things like free time of people who can help, the quality of the project and more.
You have just released a support offer for professionals (« Pro »). What is the status after a few months?
Much better than we expected, we have many clients as PRO users and number is increasing with each month. Great thing about PRO is best for all worlds, PRO users get the features they want, our open source business model improves with the financial side and community users get cool feature free since every PRO request is also available open source to community members. We, PRO users and Community users… Everyone wins.
You have just released a support offer for professionals (« Pro »). What is the status after a few months?
Much better than we expected, we have many clients as PRO users and number is increasing with each month. Great thing about PRO is best for all worlds, PRO users get the features they want, our open source business model improves with the financial side and community users get cool feature free since every PRO request is also available open source to community members. We, PRO users and Community users… Everyone wins.
One last opportunity to convince us to use the framework and to become a Prime?
Just check out the showcase :) Seriously, PrimeFaces is 4 years old, mature, based on working business model, large community, decent documentation, proven to work in thousands of projects. It is one of the best choices for Java Web.