@pivwan T'en as pas marre d'utiliser des 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 :
- 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.
- 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.
- 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.
- 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.