Je ne vois donc aucune raison pour que les contributeurs d’atoum fassent l’effort nécessaire pour rendre atoum compatible avec HipHopVM.

Et d’autant plus que HipHopVM est actuellement à mes yeux un outil certes intéressant, mais encore complètement inadapté à des développements en environnement professionnel ou utilisable en production.

Sa compatibilité avec le Zend Engine n’est en effet pas totale, et ses développeurs sont encore en pleine phase de recherche et développement pour y remédier.

Il n’y a d’ailleurs qu’à lire leur blog, par ailleurs très intéressant, pour s’en convaincre.

De plus, le fait de supporter HipHopVM dans son état actuel est à mon sens une très mauvaise stratégie pour obtenir à plus ou moins moyen terme une alternative au Zend Engine digne de la production.

En effet, elle favoriserait l’émergence d’un nouveau langage qui aurait la couleur du PHP, l’odeur du PHP, mais qui ne serait pas du PHP puisque la compatibilité du code que pourra exécuter HipHopVM ne sera pas garantie avec le Zend Engine, et non celle d’une alternative crédible et surtout fiable à ce dernier.

PHP se retrouvera alors dans la même situation que Java, avec du code qui ne sera pas forcément exécutable sur la totalité des machines virtuelles disponibles (ceux qui ont essayé de faire tourner du code Java sous OpenJDK et HotSpot comprendront sans problème ce que je veux dire).

L’utilisation du code et l’administration de son environnement d’exécution deviendront alors beaucoup plus complexes qu’actuellement, et cela alors que paradoxalement, beaucoup d’efforts ont été faits ces dernières années avec le développement d’un outil tel que composer et divers travaux périphériques pour justement simplifier l’installation et le déploiement du code.

Dans le pire des cas, cela pourrait même aboutir à une scission du marché.

Donc, en résumé, si des développeurs PHP font les efforts nécessaires pour rendre leur code compatible avec HipHopVM, ils se tirent une balle dans le pied.

Alors que forcer (entre guillemets) les développeurs de HipHopVM à faire les corrections nécessaires dans leur code pour rendre ce dernier compatible à 100 % avec le Zend Engine permettra de mettre ces deux machines virtuelles en concurrence, à la fois au niveau des performances et au niveau des fonctionnalités.

En effet, si HipHopVM est totalement compatible avec le Zend Engine, mais qu’il offre de meilleures performances ou des fonctionnalités supplémentaires, par exemple (totalement au pif) le support d’Unicode, les développeurs du Zend Engine seront forcés de suivre le mouvement s’ils ne veulent pas voir leur bébé progressivement abandonné au profit de HipHopVM.

Ils seront alors obligés soit d’implémenter les fonctionnalités manquantes ou bien d’améliorer les performances du Zend Engine, l’un n’excluant pas l’autre évidemment.

Et pour la même raison, toute évolution fonctionnelle du Zend Engine devra forcément être répercutée au niveau de HipHopVM.

Cela aura aussi comme effet de bord intéressant d'obliger les développeurs actuels de PHP à décrire le fonctionnement du langage, afin que tout le monde puisse à la fois suivre son évolution et éventuellement développer sa propre machine virtuelle en étant certain qu'elle est à 100% compatible avec l'ensemble du code existant.

Les utilisateurs de PHP ont donc bien tout à gagner à tout faire pour disposer d’une alternative au Zend Engine qui soit totalement compatible avec ce dernier et comme je viens de l’expliquer, je pense que cela ne passe en aucun cas par une modification de leur code pour le rendre compatible avec HipHopVM.

En conséquence, le code d’atoum ne sera pas modifié pour le rendre compatible.

Cependant, cela ne veut pas dire que les développeurs d’atoum ne fourniront pas à ceux de HipHopVM toutes les informations à leur disposition afin qu’ils parviennent à rendre leur création à 100 % compatible avec le Zend Engine, car cela ne pourra qu’être bénéfique à la communauté des utilisateurs de PHP.

Et c’est la raison pour laquelle le rasta blanc y travaille !