Trois LAMP pour le prix d'une
A l'origine LAMP était l'acronyme désignant les plateformes Linux Apache MySQL PHP. Avec la popularité acquise, les amateurs des langages commençant par un P se le sont également approprié. Le P signifie maintenant PHP/Perl/Python. Comment peut-on choisir entre ces trois langages pour un développement ?
Les langages concernés par ce P sont PHP [1] donc, son ancêtre Perl [2] et le dernier venu Python [3]. Perl et PHP sont très répandus. Perl de par son ancienneté, PHP par sa facilité de programmer des pages web. Python est en retrait par rapport à ces deux langages mais gagne en popularité en suivant le succès notamment de Zope.
Alors quels vont être vos critères de choix ? Le plus important à mon sens, si vous devez intégrer votre travail dans un environnement donné, est de choisir le langage de cet environnement. Cela n'aurait que peu de sens de développer en Perl pour une plateforme Zope. Cela alourdirait la maintenance, les développeurs devant connaître les deux langages. Cela affecterait aussi les performances, une plateforme étant en général bien déployée pour un seul langage. En parlant des performances, une étude récente de Newsforge montre que Perl et PHP sont proches du point de vue performance. Cela tord le cou à la réputation de mauvaises performances de Perl. D'ailleurs Python est dans le même cas (de mauvaise réputation sur ses performances), mais je n'ai pas trouvé d'étude comparative là-dessus.
Le deuxième critère qui me semble presque aussi important, est le langage maîtrisé par les développeurs qui vont intervenir sur le projet. Un développeur connaissant peu le langage choisi aura toutes les chances de fournir un programme peu performant et difficilement maintenable. C'est particulièrement vrai pour Perl dont le credo est que "il y a plusieurs façons de le faire", donc forcément certaines façons moins bonnes... Je mets ce critère en deuxième position mais il n'est pas rare de voir choisir une plateforme parce que son langage est connu de l'équipe de développement.
En fait je n'ai encore jamais vu de cas où les deux critères ci-dessus ne suffisent pas à choisir un langage. Et évidemment une fois le choix fait, il est facile de trouver à posteriori d'autres critères justifiant ce choix. Perl pour des traitements de chaînes de caractères (par exemple pour traiter des fichiers log), PHP pour mixer avec du HTML, et Python ... pour Zope.
[1] http://www.php.net/
[2] http://www.perl.org/
[3] http://www.python.org/



