Bonjour,
Je me permets d'ouvrir ce topic afin d'avoir l'avis de la communauté qui crée des sites web.
Je remarque que sur de nombreux topic le PHP est fortement non recommandé et que NodeJS est plébiscité.
Ayant fait du PHP depuis mes 15 ans (J'en ai 32) je suis d'accord sur le point que PHP était et est encore un langage simple à apprendre.
Mais et il y a un grand mais, celui-ci a énormément évolué surtout depuis PHP 7 avec de la vrai programmation Orientée Objet, la possibilité d'indiquer le type d'une variable et depuis PHP 8 une grosse amélioration des performances avec le JIT.
Ce qui fait que grand nombre de gens, juste pour créer un site vitrine ou petit blog, utilisent NodeJS avec Express (que je ne critique pas attention) alors qu’il serait par moment plus simple et rapide de le faire en PHP.
C'est pour cela que je souhaite avoir l'avis des développeurs PHP et NodeJS pour avoir leur point de vue sur ces deux technologies très différentes.
Pour ma part NodeJS excel dans le temps réel (Jeux vidéo, Tchat en ligne, application web nécessitant du temps réel pour du travail collaboratif), mais pour des site web plus traditionnel je trouve que le PHP à plus de performance dessus (couplé avec un Framework tout comme NodeJS avec Express).
Car j’aimerai refaire un vieux projet en PHP avec un Framework au goût du jour mais j’hésite
Bonne soirée à tous
PHP est un langage de merde et ce n'est pas parce qu'il est bien moins merdique qu'il ne le fut jadis qu'il n'en reste pas à chier aujourd'hui.
Le type system est cheap au possible, y a énormément de limitations, pas de generics, c'est extrêmement casse couilles de travailler avec des itérateurs, la lib standard est incroyablement pauvre, le support de l'asynchrone est pitoyable, c'est un enfer de travailler avec des raw buffers, avec des streams, avec de l'IO en général.
Bonjour,
Merci de ton retour, après NodeJS aussi à de gros soucis c'est aussi pour ça que son créateur à quitté NodeJS pour Deno (que j'ai utilisé).
Je pense que Deno a plus d'avenir que NodeJS car la dépendance des paquets dans NPM à plusieurs fois été une grosse source de faille sur des postes.
Si j'étais pas pour PHP je miserai sur Deno au lieu de NodeJS
Quand au PHP pas Asynchrone c'est normal il est pas prévu pour cette façon de travailler
Bien cordialement,
Mycaranille, je suis assez d'accord avec toi. J'ajouterais la nécessité de se tourner vers des surcouches du genre TypeScript pour corriger les problème inhérent à javascript et une complexité plus importante de déploiement.
Je mange du Symfony tous les jours donc je ne suis pas 100% objectifs, mais si tu veux refaire ton projet en PHP et qu'en plus de ça, tu as conscience qu'il sera plus adapté selon ta compréhension de l'intérêt de tel ou tel langage selon le contexte, alors fonce.
Le 23 septembre 2021 à 14:31:32 :
Mycaranille, je suis assez d'accord avec toi. J'ajouterais la nécessité de se tourner vers des surcouches du genre TypeScript pour corriger les problème inhérent à javascript et une complexité plus importante de déploiement.Je mange du Symfony tous les jours donc je ne suis pas 100% objectifs, mais si tu veux refaire ton projet en PHP et qu'en plus de ça, tu as conscience qu'il sera plus adapté selon ta compréhension de l'intérêt de tel ou tel langage selon le contexte, alors fonce.
Bonjour,
Mon projet c'était un RPG textuel sur navigateur Web du style à la Ogame, image et texte, pas de temps réel.
Je l'avais fait en PHP classique sans fonction rien (du mauvais PHP et j'envisage Symfony pour ce projet vieux de 12 ans déjà ^^.
Que faire du NodeJS avec Exress juste pour un site ou tu clique sur attaquer, mon personnage etc... ben c'est un site web classique de base ^^
J'attends juste Symfony 5.4 la futur LTS qui va imposer le typage des retour de fonction avec PHP ^^
Bien cordialement,
J'appose juste une petite remarque sur ce que tu as dit sur ton topic :
Je remarque que sur de nombreux topic le PHP est fortement non recommandé
Ou ça ?
Je te demandes ça car je vois tous les jours de mes propres yeux des gens conchier sur PHP car " why not " sans jamais aller au bout de leur raisonnement, ils ont entendu du pote du frère de l'arrière tonton qui pensait que Wordpress = bad et voilà ça s'arrête malheureusement là quand tu leur demandes leur avis.
J'irais pas jusqu'à faire de la sociologie bancale mais c'est souvent les mêmes profiles Front / NoSQL / biaisé JS qui reviennent.
Monadent a surement pas ce profil là, mais j'ai bien peur qu'il soit dans l'exception, ou de ceux qui chient sur PHP depuis le début.
Par contre que reddit ou la twittosphère le fasse, en vrai je conseillerai de pas trop s'attarder dessus.
Tu as du recul sur les choses donc ça devrait pas t'apprendre grand chose ce que je te dis, mais on sait jamais.
Le 23 septembre 2021 à 20:40:33 :
J'appose juste une petite remarque sur ce que tu as dit sur ton topic :Je remarque que sur de nombreux topic le PHP est fortement non recommandé
Ou ça ?
Je te demandes ça car je vois tous les jours de mes propres yeux des gens conchier sur PHP car " why not " sans jamais aller au bout de leur raisonnement, ils ont entendu du pote du frère de l'arrière tonton qui pensait que Wordpress = bad et voilà ça s'arrête malheureusement là quand tu leur demandes leur avis.
J'irais pas jusqu'à faire de la sociologie bancale mais c'est souvent les mêmes profiles Front / NoSQL / biaisé JS qui reviennent.
Monadent a surement pas ce profil là, mais j'ai bien peur qu'il soit dans l'exception, ou de ceux qui chient sur PHP depuis le début.Par contre que reddit ou la twittosphère le fasse, en vrai je conseillerai de pas trop s'attarder dessus.
Tu as du recul sur les choses donc ça devrait pas t'apprendre grand chose ce que je te dis, mais on sait jamais.
Pas sur ce forum mais plus le forum Développement.
Beaucoup disaient ne pas surtout pas de PHP etc...
Mais merci de vos messages à tous ;)
Quand au PHP pas Asynchrone c'est normal il est pas prévu pour cette façon de travailler
Le problème c'est que PHP n'est même pas prévu pour ce pour quoi il est utilisé aujourd'hui, à la base c'est qu'un moteur de template qui a grossi comme une gangrène.
Un langage back-end qui supporte pas l'asynchrone c'est quand même con sachant qu'un back-end ça fait rien d'autre qu'appeler des services tiers.
Bah après j'ai déjà fait du temps réel avec PHP hein... (et je parle pas d'un pooling Ajax dégueulasse).
Pour ce qui est "de base" php à énormément évolué par rapport à la version 1 donc faut un peut évoluer ses remarque vis à vis de lui.
Sinon pour l'auteur, on a le même profil, j'y ai beaucoup réfléchis et bosser aussi bien en php qu'en node ma conclusion UTIME c'est... Tellement balek d'utiliser l'un ou l'autre quand on peut utilisé l'un ou l'autre.
Tout dépend de ses affinité.
Par exemple j'ai déjà fait du machine learning en php par ce que j'aime pas python (oui ...). Dans les faits, es ce que c'était optimal ? Bouarf. Es ce que je pourrais le réutiliser ?... Bouuuuarf. Mais es ce que j'ai prit du plaisir' à le faire et à apprendre la logique et les algos de cette manière ? Carrément.
Et entre me faire plaisir, ou faire plaisir a d'autre qui ne se servirons jamais de ce que je fais, le choix est fait
Le 24 septembre 2021 à 08:57:05 :
Bah après j'ai déjà fait du temps réel avec PHP hein... (et je parle pas d'un pooling Ajax dégueulasse).Pour ce qui est "de base" php à énormément évolué par rapport à la version 1 donc faut un peut évoluer ses remarque vis à vis de lui.
Sinon pour l'auteur, on a le même profil, j'y ai beaucoup réfléchis et bosser aussi bien en php qu'en node ma conclusion UTIME c'est... Tellement balek d'utiliser l'un ou l'autre quand on peut utilisé l'un ou l'autre.
Tout dépend de ses affinité.Par exemple j'ai déjà fait du machine learning en php par ce que j'aime pas python (oui ...). Dans les faits, es ce que c'était optimal ? Bouarf. Es ce que je pourrais le réutiliser ?... Bouuuuarf. Mais es ce que j'ai prit du plaisir' à le faire et à apprendre la logique et les algos de cette manière ? Carrément.
Et entre me faire plaisir, ou faire plaisir a d'autre qui ne se servirons jamais de ce que je fais, le choix est fait
Merci de ta réponse 👍 car j’ai un autre projet perso pour plus tard ou là j’aimerai faire du temps réel (Tamagoshi en html5) et pour lui node serait parfait.
Mais pour mon rpg textuel avec texte et image et bouton pour alller d’une page à l’autre symfony me suffira largement 👍
Bien cordialement
Le backend ne fais qu'appeler des service tuer ? What ? Ah bon ...
Oui tu peux aussi faites des appel direct en MySQL pour sortir du json ...
Mais j'ai pas vue quelqu'un le faire...
Le 24 septembre 2021 à 15:37:16 :
Le backend ne fais qu'appeler des service tuer ? What ? Ah bon ...Oui tu peux aussi faites des appel direct en MySQL pour sortir du json ...
Mais j'ai pas vue quelqu'un le faire...
Je pense que c'est un troll c'est bien pour ça que je ne l'ai pas trop écouté, car râler sans donner des exemples ou preuves ça ne fait pas avancer le pourquoi j'ai demandé de l'aide.
En tout cas vous autres qui m'avait bien répondu je vous remercie beaucoup ;)
Je pense faire Symfony et pourquoi pas plus tard NodeJS (Ou Deno)
Après je reste ouvert aux autres avis
Bien cordialement,
Honnêtement, prends la technologie avec laquelle tu es le plus à l'aise !
Les deux technologies sont matures et possèdent les outils nécessaire à ce que tu veux faire. Si tu veux utiliser Node, tu peux utiliser AdonisJs qui est l'équivalent d'un Laravel, mais pour node et qui utilise TypeScript, c'est vachement sympa honnêtement.
Et oublie Express, c'est pas top. Si tu comptes juste faire une API, mets toi plutôt sur Fastify, sinon bah Adonis c'est bien aussi pour ça.
Quant aux plaintes de Monadent, je pense pas que ce ne soit un Troll et il à raison, même si je suis pas conscient de tout ce qu'il dit (j'ai moins de connaissances), pour autant PHP reste fiable et correct et il y a beaucoup de librairies pour faire les choses non native au pire des cas, pis Symfony ou Laravel font les choses bien.
Si c'était moi je partirais sur NodeJs, avec du TypeScript, j'aime beaucoup l'écosystème.
J'ai pas eu de problème avec ExpressJS, je trouve l'écosystème simple à prendre en main, le système de middleware est bien pensé et permet de respecter le principe DRY.
Après oui il n'a pas de système d'authentification intégré, d'ORM, de gestion de migration mais c'est ce qui le rend très customisable.
Le 04 octobre 2021 à 09:31:07 :
J'ai pas eu de problème avec ExpressJS, je trouve l'écosystème simple à prendre en main, le système de middleware est bien pensé et permet de respecter le principe DRY.Après oui il n'a pas de système d'authentification intégré, d'ORM, de gestion de migration mais c'est ce qui le rend très customisable.
C'est plutôt qu'il a pas mal de vulnérabilités et n'est pas correctement maintenu, comparer à d'autres Framework, et d'ailleurs Express n'est pas le seul dans ce cas de figure dans l'écosystème Node.
Le 04 octobre 2021 à 10:26:50 :
Le 04 octobre 2021 à 09:31:07 :
J'ai pas eu de problème avec ExpressJS, je trouve l'écosystème simple à prendre en main, le système de middleware est bien pensé et permet de respecter le principe DRY.Après oui il n'a pas de système d'authentification intégré, d'ORM, de gestion de migration mais c'est ce qui le rend très customisable.
C'est plutôt qu'il a pas mal de vulnérabilités et n'est pas correctement maintenu, comparer à d'autres Framework, et d'ailleurs Express n'est pas le seul dans ce cas de figure dans l'écosystème Node.
Bah justement il a moins de vulnérabilité car ce n'est pas une usine à gaz, https://www.cvedetails.com/vulnerability-list/vendor_id-16822/year-2018/opdos-1/Expressjs.html, la seule vulnérabilité trouvé c'est une REDOS dans l'entete X-Method-Override qui a été corrigée depuis
Express supporte mal l'async/await, c'est peu maintenu et les versions ne changent pas, c'est lent comparé à Fastify ou Koa, si tu veux un Framework minimaliste autant partir sur des choses activement maintenu et tout autant customisable, comme les deux autres que j'ai cité. (même si je crois que Koa est maintenant plutôt vers le chemin de l'abandon aussi)
Pour la vitesse, on peut donner des arguments comme quoi ça importe peu tant que ça fait ce que l'on veut, oui, mais la différence entre Express et Fastify est minimal, surtout si tu es déjà à l'aise avec l'écosystème Node et que tu connais le JavaScript, donc je vois pas pourquoi démarrer un nouveau projet Node sur quelque chose qui évolue peu alors que tu as exactement pareil techniquement (Customisable, minimaliste, etc), mais de meilleures performances en sortie et moins de problèmes (car c'est maintenu).
Ensuite si c'est pour rapidement construire son application, je vois pas l'intérêt des frameworks minimaliste, autant ne pas avoir à se focaliser sur un milliard de modules externe et partir sur des solutions d'avantages "clé en main". Mais ça, c'est subjectif j'en ai conscience.
Le 24 septembre 2021 à 15:37:16 :
Le backend ne fais qu'appeler des service tuer ? What ? Ah bon ...Oui tu peux aussi faites des appel direct en MySQL pour sortir du json ...
Mais j'ai pas vue quelqu'un le faire...
Gné ? J'ai rien compris
Historiquement le back-end c'est le code spécifique au protocole de communication utilisé (HTTP) qui extrait les informations de la requête pour la transmettre à une partie service qui elle est agnostique du mode de communication employé
app.post("/resized-images", request => {
// lecture
const image = extractImage(request)
const newSize = extractNewSize(request)
// appel au service tiers
const resizedImage = resizeImage(image, newSize)
// écriture
respondWithImage(request, resizedImage)
})
Ici ce qui appartient au back-end c'est
et le service tiers c'est resizeImage
Le back-end s'occupe uniquement du protocole de communication et pas du code applicatif, tandis que la partie service ne s'occupe quant à elle nullement du protocole de communication mais effectue le "vrai travail" demandé par la requête
Bref, le back-end c'est une très fine couche entre l'utilisateur et la partie service
Avec le temps et grâce aux mauvais cours, notamment sur internet, les gens ont commencé à croire à tort que le back-end serait tout le code côté serveur mais c'est évidemment pas ça et c'est un dévoiement total du sens originel du mot back-end
Maintenant évidemment la partie service peut tourner dans le même processus que le back-end, sauf qu'en pratique absolument tout le monde sait que ça ne scale pas. L'exemple typique c'est une base de données. On a besoin de pouvoir appeler des services tiers via de l'ipc.
Je n'ai pas de préférence.
J'aime l'environnement Node car j'y suis habitué et ça permet d'avoir un stack entièrement JS back et front. Le système de module est bien foutu donc super.
Mais foncièrement PHP est tout aussi valide, surtout que Wordpress reste très populaire avec son API REST et d'autres gros CMS.