Se connecter

Informatique

Programmation

Sujet : Clarifications sur le PHP
1
Suque
Niveau 17
17 novembre 2019 à 20:52:56

J'ai jamais vu autant d'avis mitigés à propos d'un langage
Ce que j'ai pu lire sur le PHP:

  • Le PHP est accessible pour tout le monde.
  • Le PHP a une syntaxe à gerber,repousse les débutants.
  • Le PHP nécessite un très bon niveau pour réussir un code cohérent
  • Plus personne n'utilise de PHP (vanilla du moins) car y'a de meilleures options de back, PHP est mal conçu
  • PHP7 est très populaire
  • PHP c'est de la merde

Bref personne n'est d'accord dessus, si le PHP est toujours d'actu pourquoi est-il méprisé ? S'il a mal vieilli pourquoi l'utilise-t-on encore ? Tout se contredit

godrik
Niveau 22
17 novembre 2019 à 21:38:38

Il est encore utilise parcequ'il y a plein de systeme qui ont ete ecrit et qu'on ne va pas reecrire de sitot. Parceque ca coute cher, et que ca marche, alors pourquoi le reecrire.
C'est un langage relativement boiteu et qui n'a pas ete concu de facon tres coherente, du fait les developement nouveau ont tendance a etre dans d'autre langage. Cependant, il y a plein de gens qui connaissent bien le langage et de leur point de vue, c'est un outils qui marche et qu'ils connaissent. Donc developper quelquechose de nouveau en PHP est relativement efficace pour eux.

boucif
Niveau 24
17 novembre 2019 à 21:45:15

Le 17 novembre 2019 à 21:38:38 godrik a écrit :
Il est encore utilise parcequ'il y a plein de systeme qui ont ete ecrit et qu'on ne va pas reecrire de sitot. Parceque ca coute cher, et que ca marche, alors pourquoi le reecrire.
C'est un langage relativement boiteu et qui n'a pas ete concu de facon tres coherente, du fait les developement nouveau ont tendance a etre dans d'autre langage. Cependant, il y a plein de gens qui connaissent bien le langage et de leur point de vue, c'est un outils qui marche et qu'ils connaissent. Donc developper quelquechose de nouveau en PHP est relativement efficace pour eux.

Un modo qui crache sur un langage ça se fait pas :doute:
Même si je pense la même chose.

Et le PHP sera encore là un moment, si tu en fais l'auteur t'inquiète t'aura du taf pendant un moment, et les frameworks moderne ont l'air de faire le taf en plus que maintenant il est orienté objet, la transition vers d'autre langage sera pas trop compliqué.
Un autre point faible de ce langage c'est que tu peux faire que du Web de base.
Et niveau sécurité de base, je crois qu'il y a pas de prévention, résultat plus de failles de sécurité sur des sites développer en PHP que Java/Net.

fanof_banni
Niveau 10
17 novembre 2019 à 21:45:25

Le PHP à la base était juste un langage de templating dont le boulot était d'appeler des script écrit en C.
Le langage à évolué de façon brouillonne et des choix ont été fait qui nuisent à la cohérence du langage (certaines fonctions de PHP font directement référence à des fonctions du langage C et sont restées fidèles à la syntaxe de ces dernières, de fait des fonctions PHP similaires peuvent avoir des noms et un ordre de paramètre très différents).
Le langage est effectivement très accessible et permissif ce qui a accentué l'idée de langage brouillon.

Maintenant PHP à énormément évolué et continue à progresser, le passage de la version 5.6 et 7 à entre autre amené un notable gain de performance.
PHP reste de très loin le langage backend le plus utilisé au monde et à encore de beau jours devant lui.
Par contre utiliser le langage "nu" ne se fait plus vraiment, on fait du PHP via un framework (Symfony en France, Laravel ailleurs) ou un CMS comme Wordpress.

Au final la mauvaise réputation de PHP est héritée de ses déboirs de jeunesse.

blackapplex
Niveau 10
17 novembre 2019 à 23:10:02

Bref personne n'est d'accord dessus, si le PHP est toujours d'actu pourquoi est-il méprisé ? S'il a mal vieilli pourquoi l'utilise-t-on encore ? Tout se contredit

PHP est beaucoup critiqué sur sa version de base mais c'est moins un problème de PHP qu'un problème de structuration de code.
Avec PHP t'es très libre, trop libre, du coup tu peux faire des choses salement et ça marche, sauf que si tu fais que des trucs salement qui marchent au bout de 2 mois de projets t'as un code incompréhensible et inutilisable.
PHP c'est un excellent proto-langage, sur sa version raw tu peux tout faire mais c'est moche, PHP n'est utilisable proprement que dans le cadre d'un framework. Donc là, soit tu crées ton propre framework (ce que très peu de monde sait faire proprement et personne prend le temps de le faire), soit tu en prends un existant (Symfony, Laravel & co).
Et à partir du moment où tu prends PHP dans un framework, c'est un excellent langage web.
Mais là encore certains le critiqueront parce que PHP ça reste du backend & que du backend, et donc t'as le même problème, si t'es face à quelqu'un qui ne sait pas structurer une interface front-end / back-end, il va te dire que PHP ça craint.

Le problème de PHP c'est pas qu'il soit un mauvais langage, c'est un bon langage de programmation mais un mauvais langage de conception web. On attend d'un bon langage de programmation qu'il puisse tout faire facilement. On attend d'un bon langage de conception web qu'il puisse te permette de structurer des pages web facilement. Donc pour que PHP soit un bon langage de conception web il faut lui ajouter une béquille qu'est le framework.

C'est pareil pour le C. Le C est un mauvais langage de conception de jeux 3D ou même 2D. Tu peux faire un jeu en C mais c'est juste qu'il faut faire une très bonne conception de ton code à la base, et donc il faut que tu utilises un framework (tu codes le tien ou t'en utilises un, ou les deux). Le C est un bon langage de programmation, et si tu as un framework et du C++ pour l'épauler c'est aussi un bon langage de conception de jeux 3D.

godrik
Niveau 22
17 novembre 2019 à 23:38:39

Le 17 novembre 2019 à 21:45:15 boucif a écrit :

Le 17 novembre 2019 à 21:38:38 godrik a écrit :
Il est encore utilise parcequ'il y a plein de systeme qui ont ete ecrit et qu'on ne va pas reecrire de sitot. Parceque ca coute cher, et que ca marche, alors pourquoi le reecrire.
C'est un langage relativement boiteu et qui n'a pas ete concu de facon tres coherente, du fait les developement nouveau ont tendance a etre dans d'autre langage. Cependant, il y a plein de gens qui connaissent bien le langage et de leur point de vue, c'est un outils qui marche et qu'ils connaissent. Donc developper quelquechose de nouveau en PHP est relativement efficace pour eux.

Un modo qui crache sur un langage ça se fait pas :doute:
Même si je pense la même chose.

Pourquoi? Si un outils est objectivement nul, je vais presenter les raisons pour lesquels l'outil est un probleme. En l'occurence PHP est un langage qui a commence comme un simple bash pour le web et qui a evolue parcouche pour devenir un langage complet. Mais cette progression a ete faite dans un garage dans les premieres annees et ca a amener a des decisions douteuse tot dans le langage parceque ca a ete fait a la va vite sans regarder les consequences de design et a long terme.

Trois exemples particuliers:
-les magic quotes ont virtuellement ete retire du langage parceque c'est une faille de securite difficile a mitiger.
-la lib standard n'adopte aucune convention particuliere dans le nom des fonction, de si ca doit faire du snake case ou mettre les mot les un apres les autres, et n'a aucune convention sur l'ordre des parametres
-le manque de typage du langage rend la plupart des codes difficile a maintenir et il a fallu attendre php 7 en gros pour avoir du type hinting et strict typing. C'est quasiment obligatoire pour arriver a pondre du code maintenable a long terme.

Suque
Niveau 17
17 novembre 2019 à 23:39:31

Merci pour vos réponses, cependant j'ai quelques questions supplémentaires :
Ok les frameworks c'est génial c'est une sorte de PHP+, dans ce cas là le native n'a pu lieu d'être si c'est forcémment mieux en Symfony :( d'ailleurs au final un framework reste un framework, pourquoi en faire 36000 ? Qu'est-ce qui diffère finalement qui te laisse choisir du JEE disons plutôt que du Node ou autre

godrik
Niveau 22
17 novembre 2019 à 23:50:45

Toujours pour les memes raisons. Les framework one ete developpe par des gens different qui essayent de repondre a des problemes different. Avec le temps, les framework ont tendance a converger en terme de fonctionallite mais a etre tres different en terme d'utilisation et d'architecture interne parceuqu'ils ont ete developpe independement.

JEE c'est en Java et Node c'est un framework javascript.

J'ai pas fait assez de dev web pour repondre a cette question clairement. Donc je vais laisser les autres fournir une reponse.

[Black_Spirit]
Niveau 15
18 novembre 2019 à 00:11:34

Quand on est étudiant, vous pensez que c'est utile d'apprendre php ? Est ce un incontournable à connaître si on veut taffer dans le backend web ?

Perso j'ai pas appris de PHP à l'école donc je fais mes backend en python, java ou Go en fonction des contraintes que j'ai et de la performance que je recherche.

blackapplex
Niveau 10
18 novembre 2019 à 00:24:25

dans ce cas là le native n'a pu lieu d'être si c'est forcémment mieux en Symfony

Bah non, pourquoi se priver de pouvoir faire du natif si t'as envie de recréer ton propre framework ? PHP est un langage de programmation, pas un langage de conception web. Si tu veux faire du web, tu peux utiliser Symfony, mais si tu veux juste parser des documents ou faire des routines de traitement de document rien ne t'oblige à utiliser Symfony.

Par contre là où je suis d'accord, c'est qu'il ne faut plus enseigner PHP sans enseigner un framework avec (et ça c'est valable pout tous les langages).

d'ailleurs au final un framework reste un framework, pourquoi en faire 36000 ? Qu'est-ce qui diffère finalement qui te laisse choisir du JEE disons plutôt que du Node ou autre

Déjà tout n'a pas été développé au même moment. Comme dit godrik tous ne font pas les mêmes choses, ne sont pas désignés aux mêmes personnes et même s'ils convergent (parce que tous essaient d'être plus génériques les uns que les autres), les pro pourront encore te lister allègrement les différences & cas d'usage de chacun.

Je ne suis pas pro mais je peux te dire que les performances de Java, Python, PHP et Javascript ne sont pas les mêmes selon les usages. Je peux te dire que Java a une excellente intégration du côté applicatif. Donc si tu fais tout en JEE tu pourras utiliser les mêmes codes pour derrière faire des IHM. Mais si tu utilises Java tu utilises la JVM donc ça peut être moins optimisé que d'autres langages, et de toute façon avec les ORM maintenant l'interface langage - BDD pour deux applications en langage différent est moins contraignante (tu peux très bien faire un site en PHP qui utilise un ORM pour la BDD et faire un GUI JAVA avec un autre ORM pour la BDD sans avoir de problèmes).
Et du coup si on veut pas JAVA parce que c'est lent ou autre, on fait du PHP. Pourquoi? La commu est énorme, il y a des frameworks dédiés au web et donc tout est pensé pour le web. En plus PHP ça s'installe facilement & ça tourne rapidement, et puis c'est pas Oracle derrière. Mais en fait non parce que PHP c'est vieux et c'est full back-end, donc on prend NodeJS comme ça on fait du back-end et du front-end en même temps? Mais en fait non parce qu'on veut surtout gérer des données et du coup là c'est les libs python qu'il nous faut donc on fait du Django. Sauf que non on aime pas le python c'est moche, c'est trop simple puis on y connait pas grand chose à la datascience donc en fait on va plutôt prendre Ruby On Rails ça sonne bien, puis c'est direct basé sur l'architecture MVC donc niveau conception c'est cool. Puis en fait on en a marre, il y a trop de langage qui font trop de chose donc on passe 10 ans à choisir, on fait un burnout à lister toutes les possibilités puis on refait un standard web en C pour essayer de faire mieux que les autres & on se retrouve à ajouter un nouveau standard. Ainsi va la vie des frameworks :)

blackapplex
Niveau 10
18 novembre 2019 à 00:28:20

Le 18 novembre 2019 à 00:11:34 [Black_Spirit] a écrit :
Quand on est étudiant, vous pensez que c'est utile d'apprendre php ? Est ce un incontournable à connaître si on veut taffer dans le backend web ?

Perso j'ai pas appris de PHP à l'école donc je fais mes backend en python, java ou Go en fonction des contraintes que j'ai et de la performance que je recherche.

Il vaut surement mieux apprendre n'importe quoi d'autre que le PHP si tu apprends cette autre chose avec un framework. Mais apprendre PHP avec un framework ça vaut d'apprendre quoique ce soit d'autres avec un framework. Pour le comparatif je renvois aux probables 5000 pages versus pour chaque duo de framework qu'on peut trouver sur son moteur de recherche préféré :ok:

boucif
Niveau 24
18 novembre 2019 à 08:09:03

Ruby On Rails vaut mieux éviter c’est vraiment un marché de niche en plus il est sur le déclin.
Python par contre lui monte, dernièrement ma boîte recherchait des dev angular/python pour un client, ça commence à se concrétiser donc côté emploi.
Après si tu fais du web php/java/.net il y a du taf, il y a Go aussi mais pas énormément utiliser non plus même si c’est le plus performant.

Raidden36
Niveau 6
18 novembre 2019 à 12:21:05

Le 18 novembre 2019 à 00:11:34 [Black_Spirit] a écrit :
Quand on est étudiant, vous pensez que c'est utile d'apprendre php ? Est ce un incontournable à connaître si on veut taffer dans le backend web ?

Perso j'ai pas appris de PHP à l'école donc je fais mes backend en python, java ou Go en fonction des contraintes que j'ai et de la performance que je recherche.

Oui, clairement. Qu'on aime ou pas, la plupart des back-ends dans le monde sont en PHP, symfony ou natif, et parfois, tu n'auras pas d'autres choix que de te plier à des exigences de technos.
Autrement-dit, sans connaître PHP, tu te fermes beaucoup de portes.
Mais c'est aussi le cas pour JS et toutes les technos autour (node, react) qui montent sérieusement en puissance et en popularité ces dernières années.

[Black_Spirit]
Niveau 15
18 novembre 2019 à 18:32:09

Le problème c'est que j'ai déjà fait du Php et je déteste ce langage x)
Et honnêtement, vu toutes les possibilités qu'on a de nos jours, je comprends pas en quoi PHP est une solution pertinente (quand on commence un nouveau projet je veux dire)

boucif
Niveau 24
18 novembre 2019 à 19:25:24

Le 18 novembre 2019 à 18:32:09 [Black_Spirit] a écrit :
Le problème c'est que j'ai déjà fait du Php et je déteste ce langage x)
Et honnêtement, vu toutes les possibilités qu'on a de nos jours, je comprends pas en quoi PHP est une solution pertinente (quand on commence un nouveau projet je veux dire)

Bein quand les décideurs ne connaissent que ça, quand ton équipe de dev ne connaît que ça ...

[Black_Spirit]
Niveau 15
18 novembre 2019 à 19:28:43

Quand on est dev faut continuellement de former donc je trouve pas que ça soit une raison suffisante.

fanof_banni
Niveau 10
18 novembre 2019 à 20:15:33

Le 18 novembre 2019 à 18:32:09 [Black_Spirit] a écrit :
Le problème c'est que j'ai déjà fait du Php et je déteste ce langage x)
Et honnêtement, vu toutes les possibilités qu'on a de nos jours, je comprends pas en quoi PHP est une solution pertinente (quand on commence un nouveau projet je veux dire)

Parce que la majorité des boîtes choisissent un langage en se basant davantage sur des critères comme la richesse de l'ecosystème (frameworks éprouvés, nombreuses bibliothèques maintenues) ou la facilité à recruter des devs déjà formé plutôt que sur l'esthétique de la syntaxe.
Pour 90% des besoins développer une solution en PHP sera beaucoup moins couteux qu'en Rust sans que le produit final soit globalement inférieur.

Le 18 novembre 2019 à 19:28:43 [Black_Spirit] a écrit :
Quand on est dev faut continuellement de former donc je trouve pas que ça soit une raison suffisante.

En règle général tu t'amuses pas à apprendre 15 langages/framework pour répondre au même besoin.

EDIT : Pour répondre à la question posée plus haut, non, l'apprentissage du PHP n'a rien d'obligatoire, mais il sera plus simple/rapide de trouver du boulot en tant que dev Symfony qu'en tant que dev Django.

[Black_Spirit]
Niveau 15
18 novembre 2019 à 20:23:56

Bah justement, en terme d'écosystèmes et nombre de libs, python bas PHP j'ai l'impression. En plus, la plupart des libs pour faire de l'IA sont en python.
J'essaie juste de comprendre hein, objectivement je comprends pas pourquoi prendre PHP plutôt que autre chose pour un nouveau projet.

fanof_banni
Niveau 10
18 novembre 2019 à 20:50:53

PHP n'est pas le meilleur langage jamais inventé ni le plus adapté dans tous les cas de figure, si tu veux faire de l'IA t'auras certainement des facilités avec Python.
Mais PHP est un langage populaire, bien installé, équlibré et sans grave lacune.
C'est juste la solution la plus efficace et économique à la majorité des problèmes qu'on peut rencontrer.

boucif
Niveau 24
18 novembre 2019 à 21:02:55

Le 18 novembre 2019 à 19:28:43 [Black_Spirit] a écrit :
Quand on est dev faut continuellement de former donc je trouve pas que ça soit une raison suffisante.

Tu penses que tous les dev font ça, surtout que les boites ne prenne pas ça sérieusement lautoformation, d’autres personnes aussi aime le php, le choix d’une solution prend en paramètres un paquet d’éléments dans certains cas vait mieux partir sur du php pour pas que ça se vautre ...

1
Sujet : Clarifications sur le PHP
   Retour haut de page
Consulter la version web de cette page