Le langage PHP

Ce langage est incontournable pour la programmation Web, en particulier dans les logiciels OpenSource. Il existe d'autres langages bien sur, mais c'est le PHP qui domine, en volume, dans ce domaine.

PHP n'est pas le plus rigoureux, le plus beau, ... mais il est accessible et efficace pour les applications simples et rapides à mettre en œuvre.

La grande majorité des projets OpenSource est basée sur PHP et ce n'est pas rien! Pour citer quelques domaines où la suprématie des applications PHP est évidente :

  • Gestion de contenus (CMS)
  • Sites ecommerces
  • Outils collaboratifs

Parmi ces domaines, nombreux sont les socles Open Source à s'appuyer sur Symfony ou ses composants, rendant ce framework un peu incontournable pour ceux qui veulent bien programmer en PHP.

Mais revenons-en au langage proprement dit. Si affecter à une même variable une chaîne de caractères, un nombre, un tableau voire un objet ne vous gêne pas spécialement, alors PHP vous intéressera.

Autre non sens pour ceux qui aiment les langages structurés : Imaginez une classe bien structurée avec des attributs privés et tout, mais quand vous appelez une méthode de cette classe, il n'y a aucun contrôle de type sur les paramètres! Bizarre, voire surnaturel dirons certains, d'autres y voient une souplesse. Après il ne reste plus qu'à être très rigoureux (ou à ne pas écrire de classes ;-))

Conscient de toutes ces critiques, le langage n'en fini pas d'évoluer : Il s'inspire grandement des autres langages notamment Java. Ainsi le typage des variables, paramètres et retour de fonctions arrivent avec PHP 7. Cependant, compatibilité ascendante oblige, ce n'est pas obligatoire. Qui plus est, le PHP impose des contraintes incongrues sur ce typage. Ainsi, par exemple, déclarer le type retourné par une fonction interdit de retourner null. Il faut aller jusqu'en 7.1 pour pouvoir déclarer que ce type retourné pourrait être null. Parfois je me dis que le PHP c'est le Basic du Web...

Des frameworks sont apparus pour le PHP : Symfony, Zend, ... Ces frameworks suffisaient-ils pour que le PHP prétende rivaliser de rigueur, de structure avec des langages comme Java et .Net? C'est loin d'être évident. Mais il faut reconnaître l'évolution positive du langage et de ses frameworks, notamment Symfony qui s'inspire également des grands frameworks Java (Spring notamment).

JIT compilation au dernier moment

En cette fin de novembre 2020, la version 8 de PHP sort. LA nouveauté de cette version est l'intégration d'un compilateur JIT (Just In Time, Juste à temps) pour améliorer les performances de PHP.

C'est extraordinaire, il y a de quoi s'extasier !

Là encore, PHP rattrape son retard : Java dispose d'un compilateur JIT depuis 1996.