Un développeur Java au Symfony Live 2012

Il y a un mois (6 au 9 Juin dernier) se tenait à Paris le Paris Symfony Live 2012 . Etant plutôt issu du monde Java, j’ai eu l’idée saugrenue d’y aller faire un tour… et je n’ai pas été déçu par le voyage… 🙂

Pour ceux qui ne connaissent pas, Symfony 2 est un framework MVC complet et gratuit en PHP qui permet de créer très rapidement un site web. Il est développé par SensioLabs, une boite française. Et c’est un peu LE framework qui a le vent en poupe en ce moment, surtout depuis que Drupal a décidé de migrer son moteur sous Symfony, ainsi que eZ Publish qui a décidé de faire la même chose plus récemment.

Symfony est déjà utilisé par certains sites bien connus comme Yahoo, Dailymotion… ou YouPorn… 😀

Pour vous faire une idée du contenu de cette conférence, vous pouvez aller jeter un coup d’oeil à la liste des présentations, et à ce live blog hyper détaillé (cf d’autres liens en fin d’article)

Le but de cet article n’est pas de vous faire un compte rendu de la conférence (vous n’aviez qu’à y aller, non mais… 🙂 ) mais plutôt de vous décrire mes impressions avec le recul un mois après.

Une communauté

On a clairement l’impression que les contributeurs (oui vous pouvez contribuer au framework, soit sur le Core, soit sous forme de bundles) forment une grande famille On dirait que tout le monde se connait : les plus accros ont eu tellement d’échanges par mail/forums/twitter qu’ils sont capables de donner les noms ou les pseudos des développeurs ou de reconnaitre les avatars des contributeurs les plus actifs… impressionnant.

Le coté communauté est accentué également grâce à la distribution de “badges” façon FourSquare selon le degré de votre d’implication dans la communauté. Ces badges apparaissent aussi sur votre profil “Sensio Lab Connect” que vous pouvez intégrer à votre CV comme référence. Une certification “Symfony” (payante) est également mis en place pour valider votre niveau de connaissance Symfony.

Avantage : ça donne envie de faire partie de la famille… 🙂 Inconvénient : on se dit que ça doit être dur de rentrer dans le “cercle”… voire impossible… Un exemple : essayez donc de comprendre toutes les “private jokes” de cette vidéo du jeu du Jeopardy qui a eu lieu pendant la conf…

Il suffit de se balader dans les couloirs pour voir que c’est un framework qui a su ne pas rester franco-français et qui a très vite voyagé en dehors des frontières de l’hexagone : une grosse communauté allemande et hispanique (Espagne ou amérique du sud) était également présente.

Un framework complet

Si je veux faire la même chose que Symfony en Java, il va falloir que j’aille chercher plusieurs outils/framework et je passe du temps à faire fonctionner tout ça ensemble (JSF, Spring, Hibernate, etc)… il n’y a pas en Java de framework complet (MVC, Scafolding, ORM) qui rassemble tout ça pour moi et qui permette de monter un site de A à Z. Sous Symfony tout est déjà intégré dans le framework, même les outils de débugging (cf barre de débug). Et si ça ne l’est pas il existe surement un “bundle” à rajouter qui le fait déjà.

 

Donc impossible de comparer Symfony à un seul framework Java… Symfony, c’est Rails en PHP… Ce qui se rapprocherait le plus ça serait peut être Spring (MVC, IOC, Data, etc),  Grails… ou Play Framework à la rigueur…

Symfony VS frameworks Java ?

Aucun rapport entre les deux… Symfony ne joue pas du tout dans la même catégorie… je m’explique… (et là je me permet de caricaturer, donc ça va faire hurler certains puristes Java…)

Les frameworks Java ?

C’est pour les “grosses boites” (banques, administration, etc…) qui n’ont pas de contrainte de date, ni de concurrence : on s’en fiche que ça soit lourd au niveau du développement, on veut que ça soit “sécurisé” (whatever it means…) et on s’en fiche de sortir un produit avant le concurrent (c’est souvent un outil interne). Et comme pratiquement toute l’architecture est déjà en Java, on ne veut surtout pas changer un truc qui “marche” depuis 10 ans, ni apprendre un “nouveau” langage. La base de données sera souvent aussi lourde que le projet : Oracle… Le budget de ce genre de projet est en conséquence : lourd lui aussi… 🙂

Le framework Symfony ?

C’est l’outil idéal pour les startups : ce qui compte c’est le résultat : on veut un site web qui fonctionne, performant, pouvant répondre à un grosse montée en charge. On ne veut pas se prendre la tête sur l’architecture, on délègue ça au framework pour se concentrer à 100% sur ce qui est vraiment important le design et l’ergonomie du site (CSS, bootstraps…). On simplifie au maximum : pourquoi prendre une base de données Oracle alors qu’une bonne base NoSQL suffit largement. On veut sortir un joli produit (site externe, souvent du eCommerce…) avant le concurrent car des parts de marché sont en jeu. Le budget n’est pas illimité : on veut faire le mieux possible avec le budget donné et le temps imparti. Les experts Symfony bossent souvent en Freelance… parfois à distance, souvent sur Mac (d’après ce que j’ai pu voir…), l’équipe est souvent répartie sur plusieurs pays… communiquent en anglais et fonctionne souvent en mode Agile.

Conclusion

Oui, le paragraphe précédent est (très) caricatural, mais c’est avec cette impression que je suis revenu du Symfony Live 2012 de Paris : 2 mondes à part, différentes technos, différents projets, et différents environnements. Et bizarrement cette “impression” correspond plutôt bien à mon expérience précédente en entreprise : essayez donc de faire adopter Symfony dans une grosse société (française) qui est à fond “Java”, vous allez vous hurter à de vieux préjugés sur le langage PHP qui datent de l’époque préhistorique du PHP v4 ou inférieur où le mot “PHP” à lui seul rimait avec “bricolage” et “amateurisme”… ça n’est plus le cas depuis longtemps, mais il faut savoir sortir un peu la tête de l’eau de temps en temps pour s’en apercevoir.

Si votre métier est le développement de sites Web, il y a de fortes chances que vous connaissiez déjà Symfony… Si ça n’est pas le cas, jetez-y un coup d’oeil, vous ne serez pas déçu.

Si comme moi, vous êtes issus du “monde Java”, formez vous à Symfony (de nombreux tutoriaux sont disponibles sur le net) car les deux compétences peuvent être complémentaires : par exemple un projet où le back end est en java (parce que le reste de l’architecture existante est déjà en Java), et où le front end est en Symfony.

Quelques Liens :

Share this article on :