Articles

Recent Posts

Parlons-en d’emblée : PHP est un langage étrange et laid. Il n’est pas exceptionnellement rapide. Il n’est pas beau syntaxiquement. Il n’est pas formulé autour d’une opinion claire sur les bonnes pratiques de développement logiciel. Et c’est pourtant dans ce langage que j’écris beaucoup de logiciels. La question évidente est : pourquoi ? Pourquoi utiliser PHP aujourd’hui ?

Il y a beaucoup de bonnes raisons pour cela, au-delà des préférences idiosyncratiques personnelles. Voici l’espace pour couvrir exactement cela. Pourquoi PHP est-il mon langage de prédilection pour le développement web ?

Qu’est-ce que PHP ?

« Qu’est-ce qu’un PHP ? ». Ou, plus communément,  » qu’est-ce que le PHP ? « . En bref, PHP est un langage de programmation fait pour le web, construit à partir du langage de programmation C, et qui utilise des balises idiosyncratiques de type HTML (ou sigles) pour contenir son code. Le langage de programmation PHP est principalement utilisé côté serveur, ce qui signifie qu’il s’exécute sur votre logiciel de serveur web, qui va habituellement servir du HTML à vos visiteurs.

PHP signifiait initialement « Personal Home Page ». Parce que cela limitait assez complètement le sens et la désirabilité de l’utilisation du langage pour un usage général, le langage s’appelle maintenant « PHP : Hypertext Preprocessor ». C’est ce que l’on appelle un acronyme récursif (un nom qui contient le nom). Les nerds les adorent.

Que peut faire PHP ?

À quoi sert PHP ? Fondamentalement, tout ce que vous voulez faire sur un serveur web, vous pouvez le faire avec PHP. Faire un blog ? Oui. Créer une application logicielle à part entière ? Absolument. Écrire un petit script pour traiter des données en quelques secondes ? PHP est idéal pour cela. Écrire un ensemble compliqué de scripts qui devient accidentellement une entreprise logicielle prospère ? PHP est beaucoup utilisé comme ça.

Si vous ne me faites pas confiance, le site web de PHP liste les utilisations suivantes :

  • Scripts côté serveur
  • Scripts en ligne de commande
  • Écrire des applications de bureau

Je ne suis pas tellement sûr d’encourager le dernier point, mais c’est possible. Mais les deux premiers sont des raisons communes et bonnes d’utiliser PHP en 2019.

Cela mène à un fait important et inévitable…

PHP est PARTOUT

Il y a beaucoup de raisons de connaître et d’aimer PHP, dont la plus puissante et la plus valable est probablement celle-ci : il est utilisé et fonctionne PARTOUT où le web le fait. Votre petit compte d’hébergement bon marché de 3 $ par mois peut vous permettre d’exécuter une application web en Python ou Ruby si vous faites attention. Mais il fera tourner PHP à coup sûr. Cela signifie que vous pouvez compter sur lui où que vous soyez.

Symony is one of the reasons that people choose PHP

Et parce qu’il tourne partout, et qu’il est facile de démarrer avec, beaucoup de logiciels très populaires sont écrits en PHP. WordPress est l’exemple qui est à la fois le plus grand et le plus familier pour moi, mais des outils comme Joomla, Drupal, Magento, ExpressionEngine, vBulletin (yep, c’est toujours là), MediaWiki, et plus encore font tous tourner PHP sur le serveur.

Et il y a plus de cadres d’application PHP que vous pouvez secouer un bâton aussi bien : Symfony, Zend, Laravel, Aura, CakePHP, Yii, et même le vénérable CodeIgnitor. Vous pouvez certainement dresser une liste de frameworks web d’une certaine longueur pour presque tous les autres langages. Et pour les langages web couramment utilisés comme Python, Ruby ou Node/JavaScript, vous pouvez même être en mesure d’établir une liste numériquement compétitive. Mais le simple volume de sites utilisant PHP est immense.

WordPress se vante fièrement d’alimenter plus de 30% de l’internet. Vous n’avez même pas besoin de croire ce fait pour réaliser qu’une grande partie de l’internet doit utiliser PHP si ce fait est même concevable.

PHP a de très bonnes qualités

Dynamisme facile est cuit dans PHP

PHP logo

PHP fait le rendu HTML et la programmation plus facilement que presque tout autre langage. Il est donc assez simple de transformer le HTML en PHP. Il suffit de changer votre file.html en file.php, d’ajouter un peu de dynamisme à l’intérieur de quelques balises <?php et ?>. La plupart des serveurs web auront déjà été configurés pour s’occuper du reste pour vous. C’est tellement simple que presque tout le monde peut s’y mettre sans avoir besoin de beaucoup plus de connaissances en programmation que cela. Parce que PHP est si convivial pour se faire les dents, beaucoup de mauvais code est écrit dedans.

Une fois que vous réalisez que la plupart des mauvais PHP sont écrits par des programmeurs novices, la plupart de la peur et de la haine de PHP que vous rencontrez dans le monde provient d’un autre problème essentiel : PHP n’a jamais eu une grande conception avec une idée visionnaire sur la raison pour laquelle il était le langage parfait pour votre serveur web. Au lieu de cela, son résultat d’une large collaboration à travers un processus ouvert qui servent de creuset à travers lequel toute bonne idée – et quelques mauvaises – doivent passer.

L’orientation objet avec la (grande) gestion des paquets est maintenant la norme en PHP

Composer PHP language
Composer est une excellente raison d’utiliser PHP

Et les mauvaises idées peuvent passer à travers ce creuset. L’exemple le plus populaire est que PHP 5.3 – considéré séparément comme la première version moderne de PHP – a introduit l’instruction goto, qui est généralement soit moquée, soit considérée comme une source facile d’erreurs.

Des choses tout aussi mauvaises en PHP qui ont résulté du processus par lequel le langage s’est développé : l’orientation objet a d’abord été implémentée comme un concept imparfait et limité, la bibliothèque standard est pleine de noms incohérents et d’ordonnancement des paramètres, et (dans un exemple qui a récemment reçu pas mal d’attention) le token :: est appelé par l’interpréteur par l’impénétrable aux anglophones : T_PAAMAYIM_NEKDOTAYIM.

Mais aujourd’hui, la POO est pleinement réalisée en PHP. Peu de langages ont autant de pratique de la POO à la Java que PHP. De plus, contrairement à Java, PHP dispose d’un gestionnaire de paquets unique et largement apprécié, appelé Composer. Il était très bon, et donc la facilité de tirer d’autres bibliothèques bien écrites et bien maintenues en PHP n’est pas à négliger.

PHP Has Gotten a Lot Faster

Mais ces choses dites, PHP évolue de manière intéressante. Il se développe pour devenir un langage orienté objet assez complet de type Java (pour le meilleur et pour le pire). Et comme Java, il gagne des abstractions faciles pour la programmation fonctionnelle – sans doute la tendance actuelle. Il se développe également un ensemble d’outils assez impressionnants – PHP aime Composer, et pour une bonne raison – et un effort louable pour que tous ces grands projets open source en PHP travaillent un peu mieux ensemble.

Oh, et nous ne devrions pas oublier l’actualité brûlante : les gains de vitesse réalisés par PHP dans la série de versions PHP 7. Ceci est largement considéré comme ayant été initié par le HHVM sortant de Facebook. Pendant un court moment, il y avait un risque que la vitesse de la HHVM fracture la communauté PHP. Mais cela n’a pas été le cas. Au lieu de cela, PHP est juste devenu tellement plus rapide que les gens ont pour la plupart oublié que le HHVM existe.

PHP a une ÉNORME communauté ; c’est facile à apprendre

Si vous décidez quelle nouvelle technologie cool utiliser, une chose qui, je pense, reçoit souvent peu d’attention est ce que c’est que de venir aux termes avec le langage. Comment se déroule l’apprentissage de PHP ? Les tutoriels PHP sont courants et souvent assez bons.

Un inconvénient de la popularité de PHP est que vous pouvez trouver des formations pas très bonnes de la part de personnes qui n’en savent pas assez sur ce qu’est réellement l’utilisation de l’outil. Ou qui suivent en dernier lieu des « meilleures pratiques » qui étaient d’actualité il y a une décennie. Mais dans l’ensemble, c’est suffisamment rare pour ne pas vous décourager. Découvrir qu’une pratique que vous avez utilisée pendant quelques mois n’est pas géniale est rare, et n’est pas un énorme problème.

Comparaisons courantes avec PHP

Beaucoup de personnes débutant en programmation recherchent des face-à-face très généraux de langages. Alors, les voici. Tous les langages que je vais écrire ici ont les traits suivants en commun avec PHP :

  • Ils sont open-source. Ce que cela signifie, c’est que vous pouvez utiliser le langage sous-jacent gratuitement (no cost), et vous êtes en mesure de voir et de comprendre le programme sous-jacent si vous le souhaitez.
  • Ils sont souvent utilisés pour le développement web. Assez simple, ce sont des langages utilisés beaucoup pour le développement web. Certains sont également largement utilisés en dehors de ce lieu, mais pas tous.
  • Ils sont de haut niveau, faiblement et dynamiquement typés. Cela signifie qu’une variable peut changer de type, et que vous n’avez pas à définir lorsque vous définissez une variable quel type de choses (nombres vs chaînes de caractères vs objets, etc) elle va stocker. Ceci est généralement favorisé pour la programmation web, mais pas universellement.
  • Leurs communautés sont de bonne taille ou mieux. Il y a beaucoup de langages intéressants qui ont les qualités énumérées ci-dessus, mais qui n’ont pas une grande communauté de pratique. Je les laisse de côté ici.

Pourquoi utiliser PHP ? Pourquoi pas JavaScript?

Peut-être que le langage le plus important auquel comparer PHP est JavaScript. Le développement moderne exige que chaque projet utilise au moins un peu de JavaScript pour le développement côté client et l’interactivité. Avec Node, il est devenu relativement facile d’utiliser JS sur le serveur également. L’idée d’utiliser le même langage de manière « isomorphique » sur le client et le serveur est très séduisante.

Comme PHP, JavaScript est un langage éclectique et parfois laid avec beaucoup de verrues et de « gotchas ». Mais JavaScript est devenu extrêmement rapide au cours de la dernière décennie, donc les arguments en sa faveur sont réels. Pourquoi choisir PHP plutôt que JavaScript ? Vous avez une expertise ou un besoin d’utiliser des bibliothèques en PHP. Sinon, je pense que JavaScript peut être un meilleur choix.

PHP vs Active Server Pages ((.Net) Core)

Active Server Pages a commencé sa vie comme un langage Microsoft à source fermée pour la programmation web. Il était assez directement comparable à PHP, mais fonctionnait dans des environnements Windows Server. Il a été remplacé par ASP.net. Qui a maintenant été remplacé par ASP.NET Core. Ces deux derniers sont maintenant des langages open-source, comme l’est PHP. Et je n’ai personnellement jamais écrit une lichette d’ASP, dans n’importe quelle variation.

Je favoriserais ASP si j’utilisais et aimais les serveurs Microsoft. Sinon, donnez-moi PHP s’il vous plaît. La taille et l’échelle des communautés ne sont pas vraiment comparables.

Dois-je utiliser Ruby ou PHP ?

Ruby, spécifiquement Ruby on Rails, était très populaire il y a une décennie. Ruby est toujours un langage très apprécié, qui est beaucoup plus élégant que PHP à mes yeux. Cela dit, sa communauté est plus petite. Et j’ai l’impression que Ruby a cessé d’être le « langage à la mode » (étant supplanté dans ce rôle par JavaScript). Ruby est beau, et il y a suffisamment de personnes qui le maîtrisent pour que je ne l’évite pas pour cette raison. Mais il sera toujours plus difficile de recruter des personnes qui le connaissent déjà que de le faire en PHP. (Bien que je pense que la compétence d’un développeur Ruby moyen est probablement plus élevée que la même pour PHP.)

Python vs PHP : Lequel est le meilleur ?

Le dernier langage qui a du sens dans une comparaison un à un avec PHP est Python. Python est utilisé dans beaucoup plus de contextes que le développement web (il est également très populaire pour les statistiques et l’analyse de données). C’est aussi l’un des langages les plus stables et les mieux conçus qui existent, selon le consensus populaire.

Python (comme Ruby, et JavaScript) est un peu plus difficile à faire fonctionner sur un serveur web que PHP. Mais c’est un langage plus joli, et plus utilisé que PHP. C’est l’un des langages que je réfléchirais sérieusement à favoriser par rapport à PHP, toutes les autres choses (accès à une bibliothèque externe, accès à l’expertise d’embauche, etc) étant égales.

PHP vs Go ? Scala ? Java ? etc?

J’ai mentionné au début qu’il y avait beaucoup de similitudes avec toutes les comparaisons de langages directs antérieures que j’ai faites. Mais si on laisse tomber ces contraintes, il y a des tonnes d’autres langages que nous pourrions comparer. Donc, pour en aborder brièvement quelques-uns :

  • Java est extrêmement populaire, et très rapide. Il est utilisé pour construire des applications Android, des applications de bureau et des applications Web. Il n’est pas dynamiquement typé cependant, ce qui a de meilleures garanties de performance, mais une moins bonne facilité de programmation web.
  • Go est un langage plus récent et en pleine croissance soutenu par Google. Il est axé sur les serveurs web, mais légèrement plus bas niveau (plus comme C) que PHP. Il est rapide, mais la communauté de pratique est plus petite.
  • Scala est un langage populaire fonctionnant avec une JVM (compatible avec Java) qui semble toujours gagner en popularité. Il est plus élégamment conçu que PHP, mais je ne peux pas dire beaucoup d’autres choses à son sujet avec confiance.

Encore, c’est tout ce que je sens que j’ai assez de contexte pour toucher. Mais il y a encore plus d’options que vous pouvez considérer. Mais c’est la fin des alternatives spécifiques que je vais considérer à PHP.

Le choix du langage de programmation est une question de contexte

Avec ces comparaisons, pourquoi utiliser PHP ? J’ai énuméré certaines des choses qui sont mauvaises à propos de PHP, et j’en ressens certaines régulièrement. L’incohérence de l’aiguille et de la botte de foin dans les fonctions de recherche me mord au moins une fois par mois lorsque je fais rapidement quelque chose sans autocomplétion.

Pour un vrai et complet projet greenfield, sans besoin d’interopérer avec un autre système, ou besoin de fonctionner dans un environnement arbitraire, sans expertise existante dans l’équipe, je réfléchirais assez profondément avant de recommander PHP. Python m’attire vraiment dans ce scénario. Mais ce sont beaucoup de mises en garde. Il y a de grandes raisons pour que même un projet greenfield frais soit écrit en PHP.

Tout langage web moderne peut vous aider à faire de bons sites web et des applications. Et chacun d’entre eux a des caractéristiques qui ne sont pas idéales. PHP, comme chacun d’entre eux, nécessite que vous compreniez vraiment ses compromis pour vous dans votre projet afin de déterminer si oui ou non il a du sens pour vous. Mais pour moi, personnellement, je continue à trouver qu’il est possible d’être – comme Keith Adams l’a dit dans une grande conférence – « choquamment productif en PHP. »

Si vous avez une équipe de programmeurs Python, écrivez votre application en Python. Si vous avez un cofondateur qui connaît Java, écrivez votre SaaS dans cette langue. Les considérations personnelles du logiciel devraient toujours l’emporter sur celles des langues.