One language to rule them all (oh god no !)

saloperies en PHP?

-- Nikkau (@Nikkau) December 18, 2013

Paradoxalement non, je n'en ai pas marre. Pourquoi ? Probablement parce que je considère PHP comme le langage le plus approprié pour gérer un simple site web avec une base de données bête et méchante.

PHP c'est tout pourri et surtout on fait de la merde avec...

J'entends tout à fait cet argument. Cependant, le mot PHP peut être remplacé n'importe quel langage et ce sera la même chose. Je suis très volontiers d'accord avec le fait que des codes PHP immondes pullulent encore et participent à cet état de fait. Cependant :

  1. C'est un langage simple pour faire des choses simples. il est possible de faire de grandes choses mais cela implique d'avoir une équipe très compétente.
  2. Oui, c'est un joyeux foutoir dans les nommages de fonctions (genre les chaînes de caractères & mbstring) mais il faut se rappeler que les objets & namespaces ne sont pas des concepts présents dès la conception du langage. L'arrivée des namespaces a, à mon sens, très fortement contribué à rationaliser tout cela.
  3. La compatibilité descendante. On pourra dire ce que l'on veut, mais PHP doit faire partie des langages les plus permissifs que je connais sur le sujet. J'ai vu peu de fonctions réellement retirées du langage.
  4. La sécurité intrinsèque de PHP est tout aussi mauvaise que celle des autres langages. Oui, il y a plus de CVE déclarées pour des projets incluant PHP (20000) que Perl (5000) mais ces chiffres sont à pondérer avec le nombre de projets web utilisant chaque langage.

Globalement, la qualité des codes PHP produits ces dernières années s'est améliorée. Des frameworks tels symfony2 ou zf2, des groupes comme le PHP- FIG, des spécifications telles que les PSR et des outils comme composer ont participé à une élévation du niveau. Et, de ce que je peux en lire sur internals, un mouvement pour rationaliser le langage et ses dépendances s'initie.

Le gang des bricoleurs

Je ne le répéterai jamais assez : chaque langage a ses forces & ses faiblesses. Utiliseriez-vous une visseuse pour planter un clou ? Bien sûr que non, et c'est pareil dans l'informatique.

Faire un site transactionnel en PHP est pour moi une aberration sans nom. Et a contrario, même si le langage est très puissant, je ne considère pas Java comme le bon langage pour coder un CMS (et pourtant j'en administre régulièrement)

Tout langage a été créé pour répondre à un besoin : il peut être détourné mais il faut bien comprendre les limites à ne pas dépasser, ce qui est souvent difficile.

Je suis un fervent partisan du couplage faible. Je veux bien un frontend en PHP qui publie des messages à destination d'autres applications. Mais non, développer un système de publish/subscribe en PHP est une mauvaise idée. Des outils comme ActiveMQ ou RabbitMQ le font très bien et ont le mérite de proposer des connecteurs pour PHP.

Donc oui, je continuerai à utiliser des composants en PHP si je considère que c'est l'outil le mieux adapté à ce que je veux.

Show Comments