Ce qu’il me manque vraiment dans PHP

DISCLAIMER : je suis en mode grosse mauvaise foi ce soir, mais si ça peut donner des idées…

PHP est un langage que j’aime beaucoup. Je l’utilise depuis plus de 10 ans maintenant, et dans ce laps de temps, il a énormément évolué.

J’ai connu un langage de script facile à utiliser, mêlant  à l’époque le code et le HTML (je sais, on ne fait plus ça maintenant, mais j’étais jeune et innocent…).

La version 5 a amené un modèle objet qui tenait enfin la route. Ne serait-ce que les accesseurs et la différentiation entre méthodes statiques et d’instance ont donné un énorme confort d’utilisation et une limitation des erreurs d’utilisation des librairies par des clients.

Malheureusement, depuis 2 versions, j’ai la nette impression que les ajouts faits au langage sont plus du cosmétique.

  • PHP 5.4 : principalement de la syntaxe avec la notation courte des tableaux, la possibilité d’appeler des méthodes sur une instance anonyme créée, ou la dispo de <?= même si les short_open_tags sont désactivés. (Bon OK, il y a les traits aussi, mais je n’aime pas trop ce type de structure qui nuit à la lecture du code à mon avis)
  • PHP 5.5 : une nouvelle API pour gérer les mots de passe (euh… je faisais très bien sans en fait), le mot clé finally (OK, celui-ci est plutôt utile), et opcache (plutôt une extension et les générateurs (pratiques, mais pas révolutionnaires non plus)
  • PHP 5.6 va sans doute proposer une possibilité de gérer des fonctions variadics (avec un nombre variable d’arguments) par exemple.

Je sais, je suis de mauvaise foi, car chaque version apporte une évolution en terme de performance, et, de plus, il y est fait un gros nettoyage d’un certain nombre de mauvaises idées (comme le safe-mode) ou fonctionnalités obsolètes (comme les fonctions ereg*).

Mais est-ce vraiment ce qui nous bloque le plus ? J’aurais tendance à dire que non (mais je suis peut-être le seul à le penser bien sûr).

Ce qui me manque le plus, c’est un vrai contexte d’application, et pas seulement une capacité de persister un contexte réutilisable facilement (comme dans un memcache par exemple). Une zone dans laquelle on pourrait gérer un vrai pool de connexion aux bases de données (à la manière des datasources de Java), et ceci faciliterait aussi la gestion des connexions persistentes aux bases de données (en cas d’indisponibilité temporaire, ou en cas de bascule automatique sur une standby par exemple).

Pour avoir ce genre de système de manière efficace, il faut en général se tourner vers Java, mais quand de grandes sociétés ont basé leur stratégie de développement sur un langage, il est toujours difficile d’ajouter un nouveau larron dans le SI (même si une architecture basée sur les principes de la SOA peut faciliter cette transition bien sûr). De plus, la JVM apporte une complexité d’exploitation pour les ops et la nécessité de maîtriser les arcanes du garbage collector.

J’avoue ne pas avoir le début du commencement d’une idée sur la manière de gérer ce point de manière efficace… sans doute en utilisant un nouveau type de SAPI, ou faire évoluer APC… mais avouer que ce serait top, non ?

Allez ! Je me le note sur ma liste au père noël pour l’an prochain… et pourquoi pas essayer de le faire si j’arrive à me dégager un peu de temps.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *