Articles

De retour de PHP Québec 2008

  • Ecrit par Damien Seguy
  • mercredi 19 mars 2008
Image pour le titre du contenu

La semaine folle de PHP Québec s'est terminé par une mémorable bataille de boules de neige sur le parking de la cabane à sucre : comme pour les éditions précédentes, ce fut une semaine intense, et particulièrement riche.

La meilleure conférence depuis 6 ans
Parmi les réussites de cette année, j'ai vraiment noté la maîtrise de l'organisation par l'équipe en place. Il y a 6 ans, quand c'était la première, ce fut une équipée sauvage pour réussir à tout faire en 2 jours. Même si certaines traditions datent déjà de 2003, tout à changé en 2008. C'est dans le décor luxueux du Sofitel, avec les meilleures viennoiseries de Montréal (comparé au Restaurant Universitaire de l'école Polytechnique...). Yann et son équipe ont été détendu durant les trois jours, malgré des couchers TRES tard, des levers tôt.

L'édition de cette année apportait une nouveauté : le salon d'emploi. Une vingtaine de compagnies, grosses ou petites, sont venus courtiser les développeurs PHP. Il y a une très forte demande de la part des entreprises, et les candidats avaient là une excellente opportunité de rencontrer directement des employeurs. L'ensemble était organisé de manière conviviale, avec un Open Bar MySQL. C'est certainement un format de manifestation à reproduire plus souvent, car il permet de gagner beaucoup de temps, à la fois pour les candidats et pour les entreprises.
Project Zero : licence et moteur Zend.
Encore une fois, j'ai eu du mal à suivre beaucoup de conférences, avec la bonne excuse que je pourrais les réécouter plus tard, en version MP3. Parmi celles que j'ai pu suivre avec intérêt, est la présentation du Project Zero, par Robert Nicholson. Project Zero un projet d'envergure d'IBM, pour produire un environnement agile de développement et exécution pour accélérer les développements Web. Il se base sur REST, et supporte PHP et Groovy. En résumé, c'est une version Java du moteur PHP.

Oui, vous avez bien lu : Project Zero est une réécriture du moteur Zend en Java, qui fait tourner PHP. Il y a clairement des problèmes de compatibilité, que l'équipe de Project Zero a intégré en mettant en place un système de tests et de correction de bug apparemment efficace. La stratégie est suiveuse, mais Rob indiquait que de nombreuses applications PHP classiques fonctionnent sur la plate-forme. Écrire PHP, et faire tourner sur Java permet de se passer du pont PHP-Java, puisque désormais, les objets Java sont directement accessibles dans la JVM. Pour ceux qui sont inconditionnels des bibliothèques XSL, ou de dates de Java, c'est du pain béni. Ceux qui ont besoin d'extension PHP spécifiques seront plus déçues. Les performances aussi, font partie des questions.

Le projet zéro (http://www.projectzero.org/) est séduisant, mais, outre la compatibilité et les performances évoquées ci-dessus, il y a de gros doutes sur les licences. Pour le moment, c'est une licence 'pour petits projets' qui fait qu'on peut l'utiliser pour démarrer un projet. Pour l'avenir, c'est encore l'incertitude, sur ce que IBM pourrait faire d'un tel projet : imposer une licence websphere pour les 'moyens et gros projets' ?, arrêter le développement quand le prototype aura finit de briller? Robert était clairement gêné pour répondre avec certitude. En bref, un projet doit choisir sa licence avec beaucoup de tact, car c'est un sujet difficile à défendre ultérieurement.

Autrement, ce n'est pas le premier projet qui se passe du moteur Zend, et je dois admettre que j'en entend parler de plus en plus. Il y a eu le moteur parrot, voilà quelques années, qui tendait à proposer une plate-forme d'exécution communes à PHP, Perl et Python, afin d'éviter de développer trois fois les mêmes pilotes (lib GD pour Python, Perl et PHP). Il y a aussi Cauchin et Resin, qui propose un serveur Web avec exécution de PHP sur une base de Java; Phalanger, un compilateur PHP qui permet d'éxécuter les scripts sur .NET; PHP compiler, dont le but est de produire du code machine compilable à partir de scripts PHP; PHP bcompiler, pour exécuter du bytecode PHP déjà analysé. Et pour ceux qui sont intéressés, j'ai déjà discuté avec des développeurs qui souhaitent remplacer le moteur Zend par un autre... à développer (contactez-moi si l'aventure vous tente, je vous mettrais en contact).

Pourrait-on imaginer que dans une ou deux années, il y ait des 'concurrents' au moteur Zend, tout comme on peut choisir entre libpdf et libHaru (oublions clibpdf) pour faire du PDF en PHP natif ? Des moteurs adaptés à chaque plate-forme, pour optimiser les performances pour chacune, ou bien pour intégrer PHP directement dans un système d'information existant, sans passer par des ponts ou des pilotes. Au final, PHP ne serait plus qu'une spécification de langage, avec un moteur d'exécution à choisir en dessous.

Des nouvelles de PHP 5.3 et 6 ?
Pour PHP 6, le développement est actuellement arrêté ou presque. Le moteur principal du projet, Andrei Zmeivski, n'a plus autant de temps libre pour s'y consacrer, et on est bloqué à 62% de révision de code sur la mouture 6 de PHP. Il n'y a aucune visibilité pour les développements futurs, même si le groupe PHP recherche un candidat pour prendre la suite.

A l'inverse, PHP 5.3 est victime de son succès. Beaucoup de nouvelles fonctionnalités sont ajoutées à chaque jour (ou presque) dans cette version intermédiaire, et il est chaque jour, plus difficile de publier une version contenant autant de code nouveau. Nous devrions voir malgré tout les choses bouger prochainement, une fois que le tri aura été fait entre ce qui peut être livré maintenant, et ce qui pourra attendre un peu plus. En attendant, PHP 5.2.6 est bien vivant, pour les prochaines semaines.

PHP Behavior Driven Developpement
PHP Québec accueillait pour la première année Sebastian Bergmann, un des experts des tests unitaires en PHP : c'est l'auteur de PHPUnit. Les tests unitaires sont aussi un sujet qui me tient à coeur, et j'en ai parlé avec David Avenante, un des volontaires de l'organisation. Il m'a signalé deux projets de BDD, qui permettent de faire le pont entre les demandes de tests fonctionnels, émis par des clients non-techniques, et les tests unitaires. Il s'agit de greenpepper (http://www.greenpeppersoftware.com/en/, Open Source et commercial ) et easyb (http://www.easyb.org/, logiciel libre).

Ces deux logiciels permettent de capturer les tests fonctionnels : on note les demandes de tests, puis on les convertis en un pseudo-langage. Une fois celui-ci écrit, le logiciel produit des tests fonctionnels à faire passer, et à exécuter automatiquement. Le concept est une couche qui ressemble aux tests unitaires, mais prend le problème à partir des clients, et non plus à partir des besoins de tests des couches base. Le concept est prometteur, notamment en conceptualisant les tests et les demandes clients, même si elles sont peut claires. Je me promets d'y consacrer un peu de temps.

Le laboratoire sur la sécurité
Enfin, le laboratoire sur la sécurité, que nous avons monté avec Philippe Gamache a été un succès. Plutôt que de reprendre le livre "Sécurité PHP 5 et MySQL 5" que nous avons écrit, nous avions préparé une application pleine de vulnérabilités, avec pour but de laisser les utilisateurs attaquer l'application et réaliser que la croûte qui sépare les fonctionnalités des vulnérabilités est bien faible. Je pense que les stagiaires ont trouvé leur compte dans la session, malgré l'absence de réseau interne pour attaquer notre application. Nous avons du passer dans un mode plus magistral, qui a coupé une grosse partie des effets que nous avions prévu, et limité la spontanéité des attaques.

Au bout du compte, le plus important était de faire toucher du doigt la réalité des vulnérabilités. Nous avons passé beaucoup de temps à mettre les problèmes dans des parties de codes anodines, c'est à dire souvent utilisées dans que le mal soit apparent. Cela prouve bien l'adage qui dit que ce qui est utilisé quotidiennement semble toujours plus sûr.

Conclusion
Comme par le passé, PHP Québec était un vivier d'idées et une source importante de brassage de la communauté. J'attend maintenant de voir si les nouveaux conférenciers seront les nouveaux talents de cette année 2008!

< Précédent   Suivant >

Commentaires

Vous pouvez ajouter votre commentaire!


Vous devez vous connecter pour commenter