|
|
|
|
Landon Bradshaw
Directeur
technique
Maguma |
|
Landon
Bradshaw
"Objet
et modules font de PHP5 une évolution nécessaire"
L'allemand Maguma, créé par Tobias Ratschiller, développeur principal de phpMyAdmin et qui a depuis quitté la société, propose un éditeur de code PHP. Entretien.
(15/03/2005)
|
|
|
|
Quelles sont les raisons de
la création de Maguma ?
À l'origine, amener plus de professionnalisme au développement
PHP, par le biais d'outils de création d'applications.
C'est toujours notre objectif aujourd'hui, bien qu'après
avoir travaillé sur une plate-forme applicative côté serveur,
nous mettons maintenant l'accent sur des outils côté client.
En quoi votre éditeur PHP se
démarque-t-il ?
En lançant notre produit Maguma Studio, nous nous sommes
aperçus qu'une application monolithique risquait de rendre
difficile l'ajout de fonctionnalités, que ce soit celles
rendues nécessaires par les évolutions de PHP, ou d'autres.
Aussi quand est venu le moment de lancer Maguma Workbench,
nous avons décidé de parier sur la modularité. Ainsi Workbench
est une plate-forme qui offre l'API pour se connecter
aux fonctionnalités de Studio.
Diriez-vous
que PHP5 est une révolution pour le développement PHP,
ou une évolution nécessaire ?
Je dirais une évolution nécessaire, et ce de deux manières.
Pour commencer, la structure et la gestion de l'Objet
ont été largement améliorées et standardisées depuis PHP4.
Baser la structure sur le modèle Java a été une décision
intelligente : il s'agit d'une architecture éprouvée et
permettant aux programmeurs de l'autre côté de la barrière
d'être rapidement productif en PHP.
Je m'attends à ce que les sites comme PHPClasses.com
soient inondés d'objets réutilisables, pouvant être facilement
intégré par le programmeur PHP.
Ensuite, les modules : placer un bon nombre d'extensions
dans PECL est une des idées que j'ai cherché à propager
depuis un bon moment. À l'époque de PHP3, nous avions
10 modules parmi lesquels choisir, mais avec PHP4 il y
en avait trop dans le paquetage de base. Prenons exemple
sur Apache : les modules de base du serveur sont maintenus
à un nombre minimum, on ne garde que l'essentiel, et les
autres artifices sont ajoutés atour de l'installation
initiale.
Connaissez-vous les proportions
de code PHP3/4/5 conçu avec vos produits ?
Je ne peux pas vous donner les chiffres exacts, mais d'après
ce que je sais de nos clients par le biais des retours,
je pense pouvoir les estimer respectivement à 0%, 85%
et 15%. PHP4 reste largement la plate-forme la plus utilisée,
tandis que PHP5 augmente, même si le plus gros des projets
PHP5 semble être des projets internes que des extranets.
Dans combien de temps estimez-vous
que PHP5 sera plus utilisé que PHP4 ?
À la vitesse où vont les choses avec PHP5, je pense que
le passage de flambeau se fera début 2006 au plus tard,
ce principalement pour deux raisons : le meilleur support
Objet, et l'intégration de MySQLi. Le support Objet offre
une structure try/catch très attendue de la part des programmeurs
en provenance d'autres langages fortement Objet, et MySQLi
rend l'intégration à une base de données plus robuste
que jamais, en ajoutant les fonctionnalités des derniers
produits MySQL.
Quels sont les outils et méthodes
utilisés par vos développeurs pour concevoir Maguma Workbench
?
L'outil le plus utilisé lors du développement de Workbench
est sans contexte wxWidgets.
Il s'agit d'une boîte à outils de création d'interface
multiplate-forme dont la robustesse autorise le développement
d'un tel produit. Par ailleurs, il dispose d'un grand
nombre d'objets de base requis pour toutes les fonctionnalités
que nous ou nos clients pourrions rêver. Côté Windows,
nous en restons à Visual
C++ 6 pour le développement et le débogage. Sur Linux,
c'est une combinaison de vim, gcc, gdb, et l'un d'entre
nous utilise CodeForge.
Nous utilisons CVS
pour gérer les fichiers sources, et CVSTrac
pour la maintenance et la communication.
Pendant les premiers développements de Workbench, nous
avons mis en place une série de directives et conseils
pour indiquer comment l'architecture devait être implémentée,
et comment le code devait être formaté et documenté. Notre
API de documentation est générée avec Doxygen.
L'un des plus importants aspects du développement continu
de Workbench reste nos utilisateurs : nous essayons de
prendre chacun idée en compte, envoyée par mail, via les
forums ou dans nos rêves, et de les implémenter dans la
plate-forme. Certaines idées prennent plus de temps que
de coller une étiquette sur une bouteille.
Votre outil est multiplate-forme
: Windows, Linux et Mac OS. Comment se déroule le développement
dans de telles conditions ? Chaque plate-forme s'est-elle
révélée un bon investissement ?
Linux et Windows se sont révélés assez simples à mettre
en place, tandis que le port Mac OS se présente comme
le plus difficile des trois, et nous ne sommes même pas
sortis de la phase bêta, car nous voulons ajouter les
fonctionnalités sans briser l'arbre-source. Nous pensons
que notre décision de proposer notre outil sur plusieurs
plates-formes est importante, car même si beaucoup de
débutants PHP viennent du monde Windows, les utilisateurs
plus anciens ou avancés ont souvent migré vers d'autres
plates-formes, et nous devons rester avec eux tout en
offrant un bon produit aux nouveaux.
|
|
Nous
avons préféré C++ à
Java pour le développement multiplate-forme" |
|
Avec les optimisations au coeur
de Java, comme le gain en vitesse d'exécution, pensez-vous
que la décision originelle d'écrire Workbench en C++ tient
toujours la route pour un projet multiplate-forme ? Quelles
autres technologies pourraient aujourd'hui être utilisées
pour un tel développement ?
Certes, Java a été optimisé et est bien supérieur à ses
versions précédentes, mais je pense qu'il reste trop compliqué
à gérer du côté de l'utilisateur final, trop en tout cas
pour proposer un environnement que nous pourrions soutenir.
Côté serveur, Java offre de nombreux avantages, on peut
s'en servir pour lui lancer des appels depuis une interface
PHP par exemple, mais je pense que notre choix de garder
le développement de Workbench en C++ est le bon. Cela
nous donne la sécurité de savoir qu'il n'y a pas une couche
supplémentaire hors de notre contrôle dans le programme.
La différence de vitesse entre notre Workbench compilé
et un programme similaire tournant sur la JVM n'est pas
aussi énorme qu'il y a deux ans, quand nous avons lancé
le développement, mais elle est toujours présente. Je
plaide cependant mon ignorance certaine sur les derniers
tests de vitesse pour des applications Java tournant dans
un environnement JIT compilé.
Votre société tient ses racines
dans l'Open Source. Quelles sont vos relations, en tant
qu'entité commerciale, avec ce mouvement aujourd'hui ?
L'Open Source est une part majeure de notre activité,
même si cela peut sembler étrange pour une société qui
produit des logiciels propriétaires. Il y a cinq ans,
vous auriez eu du mal à trouver une société qui utilise
des produits Open Source dans son environnement de travail,
mais les temps changent...
Quelles sont vos visions pour
2005, pour votre société comme pour le monde PHP ?
Pour notre société, 2005 sera très positive, car cette
année nous verra sortir plus de produits pour les développeurs
PHP. Nous avons des idées en attente, des produits visant
à un système particulier les structures que nous estimons
importants face aux technologies en cours et à venir.
Côté PHP, je ne crois pas qu'il se passera grand'chose,
simplement plus de migrations de PHP4 à PHP5, plus de
bonnes pratiques en matière de programmation, mais rien
de changement de paradigme bouleversant pour le langage.
Comme on dit, "Qui veut voyager loin ménage sa monture",
ou une phrase de cet acabit. Je peux raisonnablement prédire
que le futur promet beaucoup et que le langage continuera
d'obtenir de nouveaux serveurs dans les études Netcraft. |
|
Propos recueillis par Xavier Borderie, JDN
Développeurs |
|
PARCOURS
|
|
|
|
Landon Bradshow, est directement technique
de Maguma GmbH depuis 2003, après y avoir
été chef de projet de 2000 à
2002.
1998 Webmaster/développeur/administrateur
réseau chez Motorola.
1998 Développeur/graphiste chez Exxon.
|
|
|
|
|
|
|