Il s'agit d'une traduction de l'article "SitePoint Smackdown : PHP vs Node.js" de Craig Buckler et des jugements de Bruno Škvorc et James Hibbard.
Du traducteur
Il existe de nombreux articles sur ce sujet avec des analyses de caractérisation qualitative et des prédictions de performance. Cependant, je voulais quand même trouver un article où des programmeurs professionnels partagent leurs points de vue et essaient de donner quelques conseils et avertissements à un nouveau venu qui apprend juste le PHP ou NodeJS (JavaScript côté serveur). Beaucoup n'aiment pas PHP et disent que PHP est conçu pour mourir (oui, il y a un garbage collector qui tue nos variables après l'exécution du script, pas parce qu'il a été abandonné par Rasmus Lerdorf), mais que maintenant on n'apprend pas du tout PHP, alors qu'il fait tourner 80% des sites sur Internet. Donc, si nous voulons être des professionnels et essayer d'élargir nos horizons d'une certaine manière, nous devons clairement séparer les tâches PHP et les tâches NodeJS, au lieu de tout mettre dans le même panier.
"10 rounds de boxeurs de différentes catégories de poids"
Un beau jour, Craig Buckler, de SitePoint.com, a publié une analyse comparative de PHP et de NodeJS appelée "10 rounds" pour déterminer qui est le champion absolu. Cependant, il note en même temps qu'une telle analyse est quelque peu controversée. Par conséquent, pour se divertir, il a invité deux juges à contribuer à ce match de boxe. Il a demandé à Bruno Škvorc (rédacteur de la rubrique PHP de SitePoint.com) et à James Hibbard (rédacteur de la rubrique JavaScript de SitePoint.com) de commenter chacune des manches, coup par coup - score.
Introduction
La programmation Web évolue rapidement et les développeurs back-end doivent choisir entre les poids lourds établis que sont Java, C et Perl et les langages modernes orientés Web tels que Ruby, Clojure et Go. Votre choix fait une énorme différence, imposant sa propre empreinte sur les performances de l'application.
Mais quel choix faire pour le développement web ?
Je ne veux pas faire de chœur mais nous allons parler de PHP et de NodeJS :
PHP - a été créé en 1994 par Rasmus Lerdorf (Rasmus Lerdorf). Il a créé un logiciel shell (interpréteur), qui est installé comme un module pour le serveur web Apache ou Nginx. Il a été conçu à l'origine comme un préprocesseur pour les pages hypertextes, de sorte que PHP pouvait facilement être intégré dans le code HTML. Cependant, ce n'est plus une bonne pratique de nos jours, mais c'était encore une approche évidente pour les nouveaux venus. Cela a contribué à la popularité du langage, si bien que 80% des sites sur Internet sont écrits en PHP, ils font aussi, notamment, tourner le CMS WordPress (20% des sites sur Internet).
Node.js - a été créé en 2009 par Ryan Dahl (Ryan Dahl). Il a créé une plateforme logicielle basée sur le moteur JavaScript V8 de Google. Fait inhabituel, la plate-forme dispose de bibliothèques intégrées pour gérer les demandes et les réponses, de sorte que vous n'avez pas besoin d'utiliser un serveur web tiers ou d'autres dépendances. Node.js gagne du terrain et est utilisé par des entreprises comme Microsoft, Yahoo, LinkedIn et PayPal.
Pourquoi ne parlons-nous pas de C#, Java, Ruby, Python, Perl, Erlang, C++, Go, Dart, Scala, Haskell et autres ?
Lisez-vous un article sur tout et n'importe quoi, avez-vous besoin d'une encyclopédie ? Donc, nous avons limité et réduit à deux célèbres parce que :
1. PHP et Node.js sont orientés vers le web, ils ont tous deux un code source ouvert, ils sont uniquement destinés au développement web.
2. PHP est un langage ancien, mais Node.js, dans notre cas, est un nouveau venu qui gagne en popularité, de sorte que le développeur php devrait s'interroger. Cela vaut-il la peine de changer de technologie ?
3. de nombreux développeurs programment depuis les lointaines années 90 en PHP et JavaScript et ne veulent pas tous passer à d'autres langages de programmation, car ils ne leur accordent pas de crédit.
Les règles du jeu :
Le boxeur dans le coin droit est PHP, le boxeur dans le coin gauche est Node.js. Le vainqueur absolu sera la technologie qui l'emportera par le nombre de rounds.
Premier tour : démarrage rapide
Dans ce tour, nous déterminons à quelle vitesse nous pouvons écrire une page "Hello, world" dans un langage de programmation particulier, en incluant le temps passé à configurer le serveur.
Préparer l'environnement :
1) A quelle vitesse pouvez-vous construire une page web "Hello World" en PHP :
<?php
echo 'Hello World !
?>
Ce code peut être écrit n'importe où, généralement le code est écrit dans des fichiers se terminant par l'extension .php. Si vous avez écrit ce code dans le fichier index.php et que vous l'exécutez sur un serveur local sur le port 8000 (sur votre ordinateur, pas sur l'hébergement réel), il sera disponible à l'adresse suivante
http://localhost:8000
Cependant, l'utilisation d'un interpréteur PHP standard avec un serveur intégré n'est pas très fiable. Il est préférable d'utiliser des solutions prêtes à l'emploi, des builds Apache - XAMPP ou un OS virtuel (Vagrant). À propos, vous pouvez télécharger votre fichier sur n'importe quel site d'hébergement sur Internet.
2) L'installation de la plateforme Node.js est facile, si vous travaillez sur des systèmes de type unix, vous pourrez également le faire à l'aide de gestionnaires de paquets. Créons une page index.js :
const http = require('http');
const hostname = 'localhost'; const port = 8000;
http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n'); }).listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Nous avons répété des étapes similaires, le code JavaScript est généralement écrit dans des fichiers se terminant par l'extension .js. Si vous avez écrit ce code dans un fichier index.js et que vous l'exécutez sur un serveur local sur le port 8000 (sur votre ordinateur, pas sur un hébergement réel), il sera également disponible à l'adresse (en supposant que php fonctionne maintenant sur un port différent) :
http://localhost:8000
Maintenant, évaluons le code, même si vous connaissez bien le JavaScript côté client, vous devez réfléchir et comprendre ce qui est écrit ici. Vous devez comprendre les fermetures et les fonctions de rappel, les promesses, la programmation du côté de Node.js demande quelques compétences.
PHP est conceptuellement plus simple et gagne cette manche. Bien que PHP ait quelques dépendances de programmation, il est moins difficile à apprendre.
Notes du jury - PHP 1:0 Node.js
Bruno : Le PHP l'emporte en raison du faible seuil d'entrée. C'est plus une question de perception ici. Ils apparaissent identiques à l'écran et il n'y a pas de différence significative entre eux. En fait, la syntaxe est beaucoup plus facile pour les novices en programmation.
James : Lorsque je développe sur une machine locale, je ne vois pas de différence entre les deux. Pour exécuter un script dans un navigateur, vous devez disposer d'un serveur web et d'un terminal. Pour faire des choses sérieuses avec Node.js, vous devez installer des modules supplémentaires comme express (un framework pour les applications web). Cependant, d'un point de vue conceptuel, PHP est plus simple.
Deuxième round : aide et soutien sur le net
Vous n'avancerez pas vraiment dans vos connaissances sans suivre de cours, sans connaître les pratiques modernes, pour vous développer vous devez poser des questions sur des forums tels que - StackOverflow. PHP remporte facilement cette manche, il dispose d'un excellent guide sur php.net et de vingt ans de questions fréquemment posées. Quoi que vous fassiez, quelqu'un a rencontré ce problème et a essayé de le résoudre pour vous.
Node.js a une bonne documentation, mais la technologie est assez jeune, donc les réponses sur les forums, seront beaucoup moins nombreuses.
Évaluation des juges - PHP 2:0 Node.js
Bruno : silencieux.
James : Je suis d'accord. Node.js est une technologie plus jeune, donc le support et la documentation sont moins bons pour le moment. Ce problème, cependant, devient de moins en moins sérieux à mesure que Node mûrit.
Troisième round : la syntaxe du langage
Contrairement à certains langages et frameworks, PHP ne vous oblige pas à travailler d'une certaine manière, et évolue avec vous. Vous pouvez écrire vos petits programmes dans de simples fonctions PHP4, et ils auront un aspect différent du MVC de PHP 5+. Cependant, dans ce cas, votre code pourrait être chaotique, vous ne commencerez à écrire un meilleur code qu'en comprenant certaines choses.
La syntaxe de PHP a changé avec la sortie de nouvelles versions, ce qui a nécessité un travail de rétrocompatibilité. Vous pouvez facilement migrer du code de PHP4 à PHP5. Cependant, en conséquence de cette approche, le PHP est un fouillis.
Par exemple, comment compter le nombre de caractères d'une chaîne de caractères ?
- count() ? str_len() ? strlen() ? mb_strlen() ?
Vous trouverez plusieurs fonctions pour cela dans la documentation, mais en fait, c'est assez simple. En général, il existe de nombreuses fonctions en PHP qui fonctionnent de la même manière. Essayez d'écrire quelques lignes de code sans consulter votre tuteur.
'Hello world';
$str =$size_1 = count($str);
$size_2 = strlen($str);
$len = [$size_1, $size_2];
print_r($len);
On constate que JavaScript est à la fois relativement clair, avec plusieurs grandes tendances. Son modèle objet-prototype séduit les développeurs, et la syntaxe semble assez légère, mais elle ne l'est pas. Vous trouverez des critiques sur les erreurs mathématiques (0,1 + 0,2 != 0,3) et la saisie dynamique ('4' + 2 == '42' et '4' - 2 == 2). Mais ces situations posent rarement des problèmes et toutes les langues ont des particularités.
PHP présente de nombreux avantages, mais Node.js l'emporte pour plusieurs raisons :
1. JavaScript semble être le langage le plus obscur du monde, mais une fois que vous avez saisi son concept, les autres langages deviennent encombrants en comparaison.
2. JavaScript est plus minimaliste que PHP, vous n'avez pas à vous battre avec le même UTF-8.
3) Les développeurs complets peuvent écrire du code côté client et côté serveur en JavaScript. Vous ne devez plus passer d'une technologie à l'autre.
Apprendre JavaScript vous donne envie d'écrire dans ce langage de plus en plus souvent, on ne peut pas en dire autant de PHP.
commnent les bibliothèques javascript aident le marché
Évaluation des juges - PHP 2:1 Node.js
Bruno : Je ne suis pas du tout d'accord avec ce point. Bien que PHP ait ses particularités, beaucoup d'entre elles ont été corrigées récemment, et de nombreuses bizarreries ont été supprimées dans les versions les plus récentes. D'un autre côté, c'est exactement la même chose dans le monde JS. En ce qui concerne le côté serveur, je ne suis pas d'accord non plus. Le côté client et le côté serveur sont des choses différentes, et vous devez changer votre cerveau de toute façon, le côté serveur a sa propre syntaxe si nous écrivons en Node.js, si nous écrivons du code JavaScript pour le navigateur. Ayant travaillé avec JS et PHP en mon temps, j'aime de moins en moins le premier, bien que ce soit une préférence purement personnelle.
James : J'adore JavaScript. Je sais qu'il a ses bizarreries, et je sais qu'il y a quelques pièges, mais ECMAScript 2015 corrige beaucoup de choses tout en ajoutant de nouvelles fonctionnalités intéressantes au langage. JavaScript est à la fois puissant et flexible, et peut s'adapter à de nombreux styles de programmation différents. Contrairement à PHP, j'adore écrire en JavaScript. Node.js gagne ce round.
Quatrième round : les outils du développeur
Les deux technologies disposent d'une bonne sélection d'éditeurs, d'environnements de développement intégrés, de débogueurs, de validateurs et d'autres outils. Il y a un tirage au sort ici, mais Node.js a toujours un excellent outil, npm - gestionnaire de paquet, c il peut gérer les modules et les dépendances.
PHP possède son propre gestionnaire de paquets, influencé par npm - Composer. Toutefois, si npm est intégré par défaut, composer devra être intégré par lui-même. Grâce à l'utilisation généralisée par npm de Gulp, Grunt - système pour construire les projets frontaux.
Évaluation des juges - PHP 2:2 Node.js
Bruno : Si composer s'est inspiré à l'origine de npm, il est aujourd'hui encore meilleur que npm. Composer n'endommagera pas votre système si vous souhaitez installer deux versions de la même bibliothèque, contrairement à npm. De plus, contrairement à npm, composer peut installer des dépendances récursives, alors que npm ne le peut pas. Npm a également des messages d'erreur absolument horribles qui sont dits "amicaux". Enfin, npm ne fonctionne pas vraiment avec Vagrant, et vous empêche donc de démarrer correctement, sans compter qu'ils ne font pas attention aux souhaits de leurs utilisateurs. Il y avait un bogue ouvert depuis des années qui le rendait inutilisable pour les utilisateurs de Windows - ce qui n'est pas une petite base d'utilisateurs. PHP a sa part de bogues, bien sûr, des bogues stupides aussi, mais ceux-ci n'ont pas fait disparaître des systèmes d'exploitation entiers pendant des années.
James : J'adore npm. Il est facile à utiliser et il existe des milliers de paquets disponibles pour presque tous les besoins. J'aime aussi le fait que npm vous laisse choisir entre l'installation globale et locale des paquets (contrairement à des langages comme Ruby, où c'est la norme pour vos gems). Des outils comme bower et grunt occupent une place permanente dans mon travail et ont permis d'augmenter ma productivité à plusieurs reprises.
Cinquième tour : sur quel Support ?
Où ces technologies peuvent-elles être utilisées ? Comment peuvent-ils être déployés ? Quelles sont les plateformes prises en charge ? Les développeurs Web ont souvent besoin de créer des applications qui ne concernent que le Web, comme le développement de services en ligne, les scripts de conversion de données, etc.
Vous pouvez développer des applications de bureau ou des utilitaires de console avec PHP, mais en général, PHP est utilisé du côté serveur, et va rarement au-delà.
Il y a quelques années, JavaScript était utilisé exclusivement pour le navigateur. Avec l'arrivée de Node.js, vous pouvez écrire des applications de bureau et mobiles, et vous pouvez également programmer des microcontrôleurs. Node.js a repoussé les limites de JavaScript.
Note des juges - PHP 2:3 Node.js
Bruno : Tout d'abord, nous comparons PHP à Node.js, pas PHP à JS. Deuxièmement, nous comparons les langues et les environnements où elles peuvent fonctionner. Dire qu'un singe est meilleur qu'un poisson parce que le poisson n'a pas réussi à monter dans l'arbre est tout simplement stupide. Mais les singes et les poissons savent tous deux nager, alors comparons leurs performances.
James : Plusieurs des caractéristiques qui rendent Node.js si populaire (vitesse, évolutivité, compatibilité JSON, faible utilisation des ressources) lui permettent d'être utilisé pour de nombreuses autres applications, comme l'alimentation du développement de microcontrôleurs (IoT). Je veux dire, qui n'aime pas les robots ?
Sixième round : intégration.
Vos techniques de développement seront limitées si elles ne peuvent pas s'intégrer aux bases de données et aux pilotes. Le PHP est fort dans ce domaine. Le développement existe depuis des années et ses extensions système vous permettent de travailler directement avec n'importe quel hôte utilisant une API.
Node.js rattrape rapidement son retard, mais vous pouvez vous efforcer de trouver des composants d'intégration modernes pour les anciens éléments.
Note des juges - PHP 3:4 Node.js
Bruno : Je vais donner un match nul ici. PHP a l'avantage de l'âge, ce qui lui donne plus de fonctionnalités, mais vous pourriez souffrir ici aussi, de certaines intégrations dépassées, comme l'extension MySQL, dont ils ont finalement réussi à se débarrasser en PHP7.
James : Je ne suis pas sûr d'être d'accord avec ça. J'aurais espéré un exemple de "choses plus anciennes et moins populaires dans la technologie". L'un des principaux avantages de Node.js est qu'il comprend le JSON. JSON est probablement le format le plus important pour échanger des données sur le web ou interagir avec des bases de données NoSQL. Lorsque vous travaillez avec Node.js, les données peuvent se présenter sous forme de couches soignées sans qu'il soit nécessaire de les reformater. Vous disposez d'une seule syntaxe pour communiquer avec la base de données.
Septième série : hébergement et déploiement
Est-il facile de déployer une nouvelle application sur un vrai serveur web ? C'est une autre victoire nette pour PHP. Tout service d'hébergement Web prend en charge PHP. Vous pouvez obtenir une base de données MySQL à un prix avantageux. Ici, PHP est beaucoup plus facile à mettre en sandbox (serveur local) et vous serez informé exactement des extensions PHP qui sont désactivées et de celles qui ne le sont pas.
Node.js est une bête tout à fait différente, et il peut fonctionner sur le côté serveur tout le temps, sans rupture. Pour cela, vous devrez rechercher des services d'hébergement spécialisés. Vous aurez besoin d'un nuage virtuel (VDS/VPS, environnement serveur, avec accès complet). Malheureusement, tous les hébergeurs ne peuvent pas se le permettre, et les prix seront donc appropriés.
Évaluation des juges - PHP 4:4 Node.js
Bruno : silencieux.
James : Dans le futur, Node.js va rattraper beaucoup de choses. En général, le serveur web PHP est distribué avec MySQL. Pour voir du code php, il suffit de créer un fichier avec une extension .php et d'insérer du code <?php et ?>, de télécharger le fichier sur le serveur et de spécifier dans la barre d'adresse le chemin d'accès à ce fichier. On ne peut pas en dire autant de Node.js. Il existe, bien sûr, de nombreuses options d'hébergement pour Node.js, mais elles nécessitent invariablement une configuration plus détaillée et un accès en ligne de commande, ce qui peut décourager les débutants.
Huitième round : performance.
PHP n'est pas en reste et il existe des projets et des options réels qui permettent à PHP de fonctionner plus rapidement. Même le développeur PHP le plus exigeant s'inquiète rarement de la vitesse, mais les performances de Node.js ont tendance à être meilleures. Bien sûr, les performances sont largement le résultat de l'expérience et du développement de l'équipe, mais Node.js présente plusieurs avantages :
1. Moins de dépendances.
Toutes les demandes adressées à une application PHP doivent être dirigées vers un serveur web qui exécute un interpréteur PHP qui traite le code et le rend. Node.js n'a pas besoin de beaucoup de dépendances et, bien que vous utilisiez presque certainement un framework sur le serveur, comme express, il est assez léger et gère une partie de votre application.
2. interprète rapide.
Node.js est plus petit et plus agile que RNR. Cela est dû à l'héritage de Google qui a énormément contribué aux performances du moteur JavaScript - V8.
3. Les applications fonctionnent en permanence
RNR fonctionne selon le modèle client-serveur habituel. Chaque demande de page initie l'application, charge les paramètres de connexion à la base de données, récupère des informations et affiche le code HTML. Dans Node.js, l'application fonctionne en permanence et ne doit être initialisée qu'une seule fois. Par exemple, vous pouvez créer un objet de connexion à la base de données qui est réutilisé pour les nouvelles demandes. Il est vrai qu'il existe des moyens d'implémenter ce comportement en PHP en utilisant des systèmes spéciaux comme memcached, mais ce n'est pas une fonctionnalité standard du langage.
4. Flux d'E/S non bloquant et piloté par les événements.
PHP et la plupart des autres langages côté serveur utilisent un modèle de verrouillage évident. Lorsque vous faites une demande pour extraire des informations d'une base de données, la demande s'exécute et termine le processus avant de passer à l'instruction suivante. Dans Node.js, les choses sont différentes. Avec Node.js, vous n'avez pas à attendre. Au lieu de cela, vous pouvez créer une fonction de rappel qui, en écoutant le processus, s'exécute une fois l'action terminée.
Bien que les applications Node.js soient sensiblement plus rapides que les applications PHP, il existe quelques pièges.
Node.js / JavaScript s'exécute dans un seul thread, alors que la plupart des serveurs web sont multithreads et traitent les demandes en parallèle. L'écriture de code asynchrone est complexe et comporte ses propres défis.
Jugement - PHP 4:5 Node.js
Bruno : Les idées fausses sont nombreuses. Premièrement, les discussions sur la performance sont sans objet. Les éventuels gains de performance dépendent uniquement de l'expérience du développeur et du type d'application. Mais même si ce message n'est pas convaincant, voici quelques-uns de mes propres arguments : PHP fonctionne parfaitement avec un serveur web intégré multithread, il vous permet de ne pas utiliser entièrement un serveur externe, mais il n'est pas (encore) recommandé. Il existe également des serveurs ultra-rapides comme Nginx, qui permettent de faire tourner PHP et de lui déléguer des requêtes en toute transparence. Des projets comme HHVM et Appserver ajoutent de puissants aspects asynchrones et multithreading, PHP7 lui-même deviendra beaucoup plus puissant avec une mise à jour de version. Oui, l'application php n'est statique et ne vit qu'une fois par requête, mais cela peut aussi être contourné : memcached, ajax. Par défaut, les applications JS côté serveur s'exécutent en une seule requête. PHP par contre doit constamment faire des requêtes à la page pour la mettre à jour, mais en plus - la durée de vie d'une seule requête n'est qu'un avantage, car nous refaisons la requête à PHP, notre application est récupérée (à chaque fois que la requête est utilisée), quand elle est utilisée, ainsi nous évitons les problèmes de mémoire, garbage cleaning.
James : Node.js est distribué en tant que plateforme d'application à haute performance et faible latence. Avec son mécanisme d'E/S non bloquant et la technologie V8 de Google Chrome, Node.js est devenu synonyme des mots "rapide" et "évolutif". De nombreuses histoires racontent comment Node.js a apporté de sérieux gains de productivité aux entreprises et a produit des gains de productivité aux développeurs eux-mêmes. J'en suis heureux, mais encore une fois, c'est un point discutable.
Neuvième manche : la passion de la programmation
C'est une comparaison un peu difficile, mais relativement peu de développeurs PHP sont passionnés par le langage lui-même. À quand remonte la dernière fois où vous avez lu un article de PHP ou regardé une présentation qui a captivé un public ? Peut-être tout ce qui a été dit ? Peut-être y a-t-il moins de fascination ? Peut-être que vous ne cherchez pas aux bons endroits ? Certaines caractéristiques intéressantes sont plus récentes, comme l'arrivée de PHP7, mais cette technologie existe depuis plusieurs années. Cela a affecté le langage lui-même, de nombreux développeurs ont commencé à critiquer PHP.
JavaScript divise la communauté. Il y a ceux qui l'aiment et ceux qui le détestent, peu de développeurs sont assis sur la barrière. Cependant, les réactions sur Node.js ont été largement positives et la technologie est sur la crête d'une vague. C'est en partie parce qu'il s'agit d'une nouveauté. Pour l'instant, c'est Node.js qui remporte la palme.
Note des juges - PHP 4:6 Node.js
Bruno : Vous ne cherchez certainement pas aux bons endroits. La communauté PHP est incroyablement passionnée et très active. Il y a plus de 20 conférences majeures par an et des sujets étonnants y sont abordés. L'émergence de HHVM et de PHP7 se fait également sentir. J'aimerais également dire qu'il est intéressant de voir que les développeurs de Node.js n'ont toujours pas appris à changer les numéros de version (version v0.12.5 au moment de la rédaction), même après 6 ans de développement. De nombreuses immaturités, combinées à de vieux bogues critiques mais ignorés, peuvent faire disparaître des systèmes d'exploitation entiers, ce à quoi un développeur sérieux réfléchirait à deux fois. Je n'aime pas Node.js. Mon aversion est basée sur des expériences négatives, principalement avec npm. Peut-être que cela changera à l'avenir, mais pour l'instant, je suis plein de peur et de désespoir lorsque je dois utiliser Node.js une fois de plus. Nous avons tous nos préférences, mais il est important de rester objectif, nous devons choisir le bon outil pour notre travail. Il est également important de reconnaître que choisir le bon outil implique parfois de choisir le mauvais. N'écoutez pas les autres. Essayez vous-même - voyez ce qui fonctionne, découvrez ce que vous ressentez. En fin de compte, c'est ce que vous faites qui vous fait vous sentir productif et c'est le meilleur choix, pas celui qui vous donne quelques millisecondes de plus.
James : C'est très chaud dans la communauté Node.js. Il y a beaucoup de découvertes dans le monde de Node.js. Même si ma passion est subjective, je suis heureux que Node.js ait gagné ce tour.
Round 10 : L'avenir.
Le langage que vous utilisez côté serveur n'a pas vraiment d'importance, il fonctionnera même si le projet est abandonné. De nombreuses personnes continuent à utiliser PHP. C'est un pari sûr et son soutien semble assuré pour les vingt prochaines années.
Cela dit, nous savons que l'ascension de Node.js a été rapide. L'approche moderne du développement est évidente puisqu'elle utilise la même syntaxe que du côté client. JavaScript prend en charge HTML5, les sockets web. Node.js prend inévitablement des parts de marché, mais PHP, je doute qu'il les dépasse. Ces deux technologies ont un grand avenir. Je déclare que ce round se termine par une égalité.
Note des juges - PHP 5:7 Node.js
Bruno : silence.
James : Une égalité était un résultat équitable de ce tour. Node.js est une étoile montante, mais il ne peut pas détrôner l'énorme PHP. Pour conclure, j'ajouterai que si votre outil ressemble à un marteau, alors chaque problème ressemble à un clou. Node.js n'est pas parfait pour tous les scénarios, et il est vraiment préférable de réfléchir plusieurs fois à quand, et où, il est judicieux de l'utiliser. Cependant, là où Node.js est mauvais, il est même très bon. Vous serez en mesure de faire un choix éclairé et de choisir le meilleur outil pour votre travail.
Gagnant absolu.
Le score final est de 5:7 en faveur de Node.js. Node.js a une courbe d'apprentissage abrupte et n'est pas idéal pour les développeurs novices, mais il est tout de même gagnant. Simple. Si vous êtes un programmeur JavaScript compétent qui aime son langage, Node.js ne vous décevra pas. Vous vous sentirez plus frais et aurez une expérience libératrice du développement web. Mais ne négligez pas le PHP. PHP est vivant, et il n'y a guère de raison de mettre un pied dans le PHP parce qu'il semble à la mode. PHP est plus facile à apprendre, vous pouvez maîtriser les techniques professionnelles de programmation, l'essentiel étant la pratique. PHP est très facile à déployer sur le serveur. Même les développeurs Node.js les plus obstinés devraient utiliser PHP pour les sites et applications simples.
Mon conseil est d'évaluer vos options et de choisir une langue en fonction de vos besoins. C'est beaucoup plus pratique que de se fier aux pour et aux contre !