Articles

Interview d'Andrei Zmeivski (01-03-2002)

  • Ecrit par Damien Seguy
  • vendredi 01 mars 2002
Image pour le titre du contenu

This document is also available in English en 

Vendredi 1er Mars 2002.



Andrei Zmievski est un collaborateur prolixe de la communauté PHP, avec plusieurs contributions a des extensions complètes, et surtout le fameux PHP GTK, qui ouvre tout nouveau champs à l'utilisation de PHP : les interfaces graphiques. Andrei a fait une pause dans sa participation à PHP en décembre dernier, et il nous livre son opinion sur le langage et son évolution.

Damien  :  PHP a toujours été un langage fait pour le web. Qu'est ce qui vous a poussé vers cette nouvelle orientation?
Andrei  : En fait, j'ai toujours été intéressé par les application graphiques interactives, et était un excellent environnement. Mais écrire des applications en C était plutôt laborieux : gestion de la mémoire, possibilités limitées de passer des paramètres dans les fonctions de call back, etc... Et, à cette époque, je travaillais avec PyGTK (car j'aime Python), et je me demandais comment cela avait pu être fait. J'ai alors pensé qu'une librairie équivalente pouvait être mise en place pour PHP; ce qui semblait une idée vraiment cool et originale. Plus tard, bien sur, le slogan "une nouvelle façon d'utiliser la puissance de PHP" n'est venu que plus tard. Mais, à la base, c'était surtout un hack car je m'ennuyais.

Damien :  Avez vous démarré PHP-GTK pour aider un autre projet?
Andrei  : Non, il n'y avait aucune perspective pour un autre projet. Au début, je n'étais même pas sûr que cela puisse se faire un jour, et au fur et à mesure de mon travail, plusieurs manques du Zend Engine 2 ont du être corrigé. De larges pans du Zend Engine 2 ont été influencés par PHP-GTK.

Damien :  Quelles parties du Zend Engine 2?
Andrei  : Nouvelle surcharge d'objet généralisée, constantes de classe (désormais disponibles grâce aux espaces de noms), destructeurs (pas vraiment dûs à PHP-GTK, mais réellement nécessaires), et encore autre chose que j'ai oublié.

Damien :  Pensez vous que PHP (et PHP GTK) est suffisamment convivial pour que les utilisateurs puissent faire des applications avec, comme Visual Basic?
Andrei  : Probablement comme Visual Basic : il a été en développement depuis un long moment, et il y a une grande équipe de développement, sur les outils, les librairies, les docs. Mais PHP-GTK est suffisamment convivial, comme le prouve le fait que seulement quelques jours après la date initiale de publication, des auteurs ont commencé a écrire des applications avec.

Damien :  Avez vous des exemples d'applications utilisant PHP GTK?
Andrei  : Oui, le plus grand projet que je connaisse est PHPMole de Alan Knowles qui est un environnement de développement intégré pour écrire des applications PHP, des documents HTML... et qui est très modulaire. Un autre est Teak : un client IMAP de Rich Payne, GNUTeca (une librairie de gestion de logiciels) programmée par des brésiliens (et qui est plutôt importante, à ma connaissance). Il y a d'autres références sur freshmeat.net avec d'autres applications.

Damien :  Alors,contrairement à de nombreuses extensions PHP qui sont écrites pour répondre à un besoin, PHP-GTK est une pure invention. Comment expliquez vous qu'il ait un tel succès?
Andrei  : En bien, je crois qu'il y a toujours besoin d'écrire des applications graphiques avec un langage de développement rapide comme Python, et comme PHP 4.x est devenu un excellent langage d'utilisation générale, c'était une étape naturelle. PHP est plutôt facile à utiliser, et combiné avec son incroyable richesse de fonctionnalités (grâce aux extensions), toute sorte d'applications graphiques peuvent être programmées.

Damien :  Maintenant, avez vous des plans pour le futur de PHP-GTK?
Andrei  : Avec Gtk+ 2.0 et le Zend Engine 2 qui s'en vient, je pense que PHP-GTK 2 sera bientôt en développement. Le chiffre magique 2... Ce sera la version qui aurait du être faite depuis le début : Gtk+ 2.0 est unifié pour Windows et Unix, et il est très propre, le Zend Engine 2 dispose de nombreuses fonctionnalités que PHP-GTK pourra exploiter a son avantage.

Damien :  PHP se renforce au niveau de la programmation objet, et il rattrape des langages comme Java. Pensez vous que PHP sera aussi rattrapé par les mêmes inconvénients, comme la lenteur ou une portabilité limitées?
Andrei  : Je ne vois pas pourquoi cela arriverait à PHP. Ces inconvénients ne sont pas des caractéristiques inhérentes à la programmation objet.

Damien :  Certains développeurs réclament une direction technique plus claire. Ils pensent que les débats houleux et la compatibilité ascendante empêchent PHP d'évoluer. Qu'en pensez vous?
Andrei  : Je pense que c'est vrai à un certain point. Personnellement, je ne fait plus partie des listes de diffusions de PHP actuellement, pour plusieurs raisons. La première est, que j'avais besoin de temps pour moi sans être noyé dans des tonnes de emails, et j'étais un peu fatigué des discussions sans fin qui ne mènent nulle part. Comme le dit justement Sascha Schumann, "La qualité de vie est grandement améliorée lorsqu'on est pas sur php-dev". Cela dit, je surveille toujours les listes via news.php.net périodiquement, et je contribue au code. Mais je crois que les listes de diffusions du développement PHP sont plutôt remplies de personnages qui en disent plus qu'ils n'en savent. Je souhaite que nous ayons une liste de diffusion où seuls des développeurs qualifiés puissent participer, et que les autres aient un accès en lecture seule. Appelez ça le 'club des plus de 5000 lignes' si vous voulez. La compatibilité ascendante est une question épineuse. D'un coté, vous ne souhaitez pas aliéner votre base d'utilisateurs en introduisant des incompatibilités avec les versions précédentes tout le temps, mais je crois que PHP pêche par excès dans l'autre sens, et qu'il souffre actuellement à cause du tabou de la compatibilité ascendante. Je veux dire que d'autres langages (Perl et Python sont d'excellents exemples) ne sont pas effrayé par des incompatibilités entre versions majeures lorsque cela est significatif, et comme PHP 5 sera la prochaine version majeure, je pense que nous pourrions nous débarrasser du pire, et introduire de nouvelles fonctionnalités. La sensibilité à la casse est un bon exemple. Mais jetez simplement un oeil aux listes de diffusions de Zend Engine 2 et php-dev: il y a des milliers de messages de gens qui sont fermement divisés sur ce problème. Ce qui sont contre l'abandon de l'insensibilité à la casse disent "mais tous ceux qui passeront de PHP 4 à 5 en souffriront, et devront réécrire leurs scripts, et ils pleureront toutes les larmes de la terre". Mon opinion personnelle est : "C'est bien. Restez avec PHP 4 si vous voulez conserver vos scripts fonctionnels. Mais développez les nouveaux scripts avec PHP 5". Ainsi, j'espère qu'il y aura un changement d'attitude face à la compatibilité ascendante dans le futur.

Damien :  'club des plus de 5000 lignes' : est ce que l'on aura besoin d'avoir écrit autant de lignes de code C pour pouvoir accéder à cette liste?
Andrei  : Je pense que cela serait une excellente raison pour être accepté! Mais pas nécessairement, c'était juste un nombre sorti de nulle part. Il peut y avoir d'autres qualifications. Un bon nombre de RFC (Request For Comment : soumission à l'assemblée) bien conçues et bien pensées, une expérience réussie de recherche de bugs et de patches ad hoc. Il n'y a pas besoin qu'ils fassent 100-lignes de code, mais vous voyez ce que je veux dire.

Damien :  Est ce que PHP pourrait tirer avantage d'une direction plus claire?
Andrei  : Absolument! Je pense que c'est le point le plus handicapant de PHP en ce moment. Il n'y a pas de direction claire, comme dans de nombreux langages.

Damien :  Quelle forme pourrait prendre cette direction?
Andrei  : D'habitude, il y a un leader naturel qui émerge, mais ce n'est pas le cas pour PHP. Alors, à mon avis, nous devrions faire un effort pour qu'émerge une association PHP, leader du PHP. Elle serait composée de membres de la communauté de développeurs (et peut être d'autres domaines) avec un bureau élu qui aurait le pouvoir de prendre des décisions concernant le langage. Actuellement, le PHP Group est une entité nébuleuse qui gère les licences et les problèmes administratifs. Et je pense que l'association serait la mieux placée pour représenter PHP. En supposant que suffisamment de personnes sont motivées. Peut être que la communauté PHP est juste apathique, mais j'espère que non.

Damien :  Les langages les plus réussis ont tous leur légende (comme Larry Wall pour Perl), ou des sociétés célèbres (comme Java et Sun). Et ce que PHP a besoin d'un telle icône pour être crédible auprès des entreprises?
Andrei  : Actuellement, PHP est comparable à un pouf : c'est sympa, confortable, moelleux, vous pouvez vous asseoir ou vous allonger dessus dans n'importe quelle position, mais vous ne voulez pas le prendre avec vous une réunion professionnelle ([http://www.beanbagbeanbag.com/]). Je pense qu'il est important que la communauté professionnelle sache qui dirige PHP, comment il est développé, quel est sa direction future... Rien de tout cela n'est défini actuellement. PHP n'a pas de plan de développement, les développements sont ajoutés au hasard, et même si la plupart du temps ils tombent en marche, ce n'est pas une bonne approche du développement de langage.

Damien :  Est ce que le PHP group peut mettre sur pied une entité commerciale, comme MySQL? Elle est à la fois OpenSource et économiquement viable?
Andrei  : Je ne pense pas que cela soit le but du PHP group, ou même de l'association PHP. Créer une société OpenSource économiquement viable est difficile, et je pense que les efforts seraient mieux utilisés à travailler sur PHP. De plus, cela signifierai que personne d'autre ne pourrait mettre en place de telle compagnie pour fournir des services PHP, du support ou tout autre chose.

Damien :  De nos jours, comment peut-on vivre de PHP?
Andrei  : Et bien, je pense que comme PHP est un langage si populaire pour le web, il va y avoir une demande de plus en plus importante pour des programmeurs PHP qualifiés. C'est une voie. Une autre est de développer des logiciels commerciaux utilisant PHP. Encore une autre est de fournir des services techniques PHP et du support, développer des extensions PHP commerciales, etc... Il y a toujours moyen.

Damien :  Quels sont les obstacles principaux qui empêchent PHP d'être utilisés par les grandes sociétés?
Andrei  : Je n'ai jamais travaillé pour de grandes sociétés alors... En fait, la communauté de développeur PHP doit grandir, d'une part. Plus de conférences PHP sont un plus. Nettoyer PHP et ajouter des fonctionnalités professionnelles' (que je ne nommerai pas). Faire la promotion de PHP que PHP est plus qu'un langage pour le web. Disposer de compagnies tierces qui développent des outils comme des IDE, etc...

Damien :  Est ce que PHP peut prétendre rivaliser avec Java ou ASP? Qu'est ce qui lui manque pour le faire?
Andrei  : Bien sur qu'il le peut, et il le fait déjà. Java has juste une bibliothèque de classe mieux faite, mais c'est une question de temps. Oh, un autre grand progrès sera quand PHP disposera d'un système de cache et un accélérateur intégrés, ou facilement accessibles, ainsi qu'une solution d'encodage. Je pense qu'il y en a qui souffrent à cause de cela. Je pense que PHP 5 sera bien plus proche de Java. Il lui manquera toujours certaines fonctionnalités objets, mais nous ne pourrons pas tous faire en une seule version. J'espère que PEAR/PECL va vraiment démarrer. Je ne connais pas ASP, alors je ne pourrais pas répondre à l'autre partie de la question.

Damien :  PHP dispose de plus de 100 extensions. Qu'est ce qui manque?
Andrei  : Cela fait partie du problème. Un bon nombre d'extensions peuvent être unifiées et nettoyées. La plupart d'entre elles sont optionnelles et peuvent être placées dans PECL, ce qui sera le cas, autant que je sache.

Damien :  De quand date votre premier script PHP? Que faisait il ?
Andrei  : je ne me souvient pas vraiment. Probablement quelque chose comme

Damien :  Quand cela était-ce?
Andrei  : Quelque part en 1998, je crois... Nous recherchions une nouvelle plate-forme de développement dans notre compagnie, et PHP a semblé un bon choix.

Damien :  Pourquoi avez vous pensé que PHP était bon?
Andrei  : Facile à utiliser, syntaxe familière aux programmeurs C/Perl, bonnes interfaces aux bases de données, API plutôt bien pour écrire vos propres applications. Une base de code existant consistante, que nous appelons des extensions aujourd'hui. Fonctionne en tant que module Apache.

Damien :  Quand avez vous rejoint la communauté PHP?
Andrei  : A la fin 1998, je pense. J'ai lu un message de Rasmus qui disait que toute aide était la bienvenue, notamment avec le portage vers Windows (j'ai fait un peu de programmation win32. Mais c'est rapidement devenu une contribution à l'extension WDDX.

Damien :  Quelles sont vos contributions à PHP, en dehors PHP GTK?
Andrei  : Elles sont plus ou moins rassemblées ici : http://www.zend.com/comm_person.php?id=24.

  • PHP-GTK
  • Expressions régulières compatibles Perl
  • extension WDDX
  • Améliorations des sessions
  • Overloading d'objets
  • Aggregation
  • Fonctions sur les tableaux et diverses
  • Contributions au Zend engine
  • Système de template Smarty
  • Participation au site php.net

 

Damien :  Que faites vous dans la vie?
Andrei  : Actuellement, je suis Directeur de la recherche et développement chez ispi (www.ispi.net). Nous fonctionnons en mode ASP actuellement. Nous développons des technologies de commerce électronique et de publication en ligne, puis nous vendons une licence ou fournissons des services externalisés aux clients.

Damien :  Que faites vous en dehors de PHP?
Andrei  : Vélo... lecture.... musculation... j'aime découvrir de nouvelles musiques. Regarder autant de films que je peux. Travailler sur le voyage dans le temps à mes moments perdus. Mais uniquement dans le futur (grâce à la sieste). Je travaille aussi à une émission de la radio locale.

 

Damien Seguy

< Précédent   Suivant >

Commentaires

Vous pouvez ajouter votre commentaire!


Vous devez vous connecter pour commenter