A la rigueur pourquoi ne pas commencer par un langage interprété comme le php qui est très proche en beaucoup de point au C puis qui est très très simple à apprendre et/ou comprendre
A la rigueur pourquoi ne pas commencer par un langage interprété comme le php qui est très proche en beaucoup de point au C puis qui est très très simple à apprendre et/ou comprendre
Parce que le PHP a une syntaxe tordue. N'ayant pas été prévu à l'origine comme un langage de programmation, je trouve que sa syntaxe est peu agréable et peu appropriée. Être proche de C n'est pas un avantage pour l'enseignement: c'est un défaut.
Ce genre de code n'a rien d'agréable à lire et semble bien ésotérique. J'ai uniquemente tapé « PHP exemple » dans google et choisi le premier lien pour avoir celui-ci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php foreach ($values as $value): ?> <div class="item"> <div class="title"> <?php if ($value->hasDate()): ?><?=$value->getDate()?><?php endif; ?> <a href="<?= $value->getUrl() ?>"><?= htmlentities($value->getTitle()) ?></a> </div> <div class="content"> <?= htmlentities($value->getContent()) ?> </div> </div> <?php endforeach; >
À côté, le C, ou les C-likes, ont le = qui signifie autre chose que l'égalité mathématique. C'est un trouble énorme pour les débutants. Il y a les syntaxes mélangeant les accolades et les parenthèses. C'est évident de les différenciés quand on a compris à quoi elles servent, mais dans un premier temps les étudiants ont plutôt tendances à ne pas comprendre quand on utilise l'un et quand on utilise l'autre.
Parce que PHP est un langage absolument horrible. La syntaxe est assez laide mais surtout le langage est complètement inconsistant.
--
Jedaï
Quel langage n'a pas de défaut, l'ASP sont concurrent est encore pire... le php est fait pour faire des sites internet, pas des applications il n'a pas besoin d'être aussi performant que des langages pour faire des applications. Et au contraire sa syntaxe n'a rien de compliquer c'est juste la façon dont le code est présenté c'est tout, n'importe quel langage sans indentation correcte est illisible
Personnellement j'ai appris à coder avec le php et en à peine 5 mois j'avais toute les bases algorithmiques qu'il me fallait (or mit la récurrence et ce qui concernait les arbres) et je me suis mit à coder un CMS sans difficultée par rapport au code et il est très lisible, aussi c'était il y a 6 ans et j'était en version 4 je n'ai jamais regarder ce que donnait la 5. Et lorsque j'ai aborder le C je dois dire que c'était une grande facilité pour moi d'avoir déjà utilité php, sa me permettait d'avoir moins de difficultés à aborder (le C en à même trop à mon goût).
Pour moi il n'y a pas de mauvais ou de bon langage ils servent tous à quelque chose, et chaque langage est mieux adapté par rapport à un autre pour telle ou telle tâche, sinon personne n'en utiliseraient autant
Il y a des mauvais langages et PHP en fait partie... Ses avantages sont ses faiblesses, notamment le côté "tout intégré" qui en fait le chouchou des hébergeurs. Lis le document que j'ai donné ci-dessus et tu comprendras ce que je veux dire. PHP rend effectivement facile de programmer des petites pages web dynamiques, mais c'est tout ce à quoi il est vraiment adapté (dans tout autre cas, n'importe quel autre langage de la même famille le remplacera avantageusement), et même pour ce cas de figure il présente de terribles faiblesse côté sécurité, l'une (seulement l'une) des raisons pour laquelle le net est un tel cauchemard point de vue sécurité actuellement.
Dans une optique didactique, PHP n'est pas adapté.
Que tu ais commencé par PHP et survécu, et même apprécié n'est pas très révélateur parce qu'il est fort probable que tu sois de toute façon l'une des personnes susceptible d'apprécier l'informatique et la programmation en général de quelque façon que tu l'abordes par toi-même (j'ai commencé par du C moi-même, et continué avec du Perl, mais rétrospectivement je ne conseillerais aucun de ces langages pour aborder la programmation).
--
Jedaï
Le fait que les 3/4 des professionnels voir plus l'utilise est quand même une preuve mais bon je ne suis pas spécialisé dans ce domaine et c'est vrai que ton site montre pas mal de chose abérantes qui m'ont vraiment étonné de toute façon quoi qu'on en dise dans tout les cas il est parti pour duré encore des années et d'être toujours autant utilisé.
Le langage par lequel on commence de toute façon n'a pas grande importance du moment qu'on est motivé, j'ai un ami qui a commencé par le C++ et le Java en même temps et il s'en ai très bien sorti (d'ailleur il est en 1ère année d'ingé et il a déjà un cdi au même poste qu'un ingénieur sans le titre) sa prouve quand même quelque chose Mais bon personnellement je trouve que c'est un cas car c'est pas donné à tout le monde de faire sa.
loin de moi l'envie de dire que php est un bon langage pour débuter. je suis un partisan de langage à typage statique explicite et assez strict, tel pascal, mais je ne suis pas d'accord avec pas mal de points du document que tu cites.
personnellement, je suis souvent choqué par le mépris que certains montrent à l'égard de tout ce qui sort de leurs langages favoris, et la condescendance de pas mal "d'experts" ou d'académiciens qui tentent de prouver au monde qu'utiliser certains langages est une évidence, sans se soucier des longues années d'étude nécessaires pour réellement les connaître suffisamment pour mener à bien un projet de taille industrielle
- le coup des namespaces est inexacte, car on peut la remplacer aisément par une hierarchie de classes
- "No consistent naming convention", pas mal de frameworks ne peut se voir reprocher cela
- "fonctions case insensitive", quid du pascal pourtant très apprécié des académiciens
- ...
Ça arrange pas le problème. Si j'écris une classe "Client" et que tu écris une classe "Client", on va se cogner. Avec des namespaces, on mettrait chacun notre classe dans son namespace et on co-existerait.
Ça en reste pas moins un problème. En PHP, on peut jamais deviner, il faut toujours aller voir la documentation.* "No consistent naming convention", pas mal de frameworks ne peut se voir reprocher cela
Mais les variables sont case sensitive. Bonjour les problèmes. Aussi bien choisir une façon et l'utiliser à la grandeur du langage.* "fonctions case insensitive", quid du pascal pourtant très apprécié des académiciens
Et d'où sors-tu une telle statistique ? Par ailleurs beaucoup des "professionnels" du design de page web ne méritent pas ce titre (c'est la branche de l'informatique où tu trouves vraiment tout et n'importe quoi, de l'excellent comme de l'ignoble).
PHP peut également être demandé par le client parce qu'il est maintenant le langage "Web" le plus connu du grand public.
Malheureusement... Comme COBOL par exemple, qui malgré ses gros défauts continue d'être utilisé de par le monde alors qu'on prédit sa mort depuis des décennies.
C'est ce que je voulais dire dans mon dernier paragraphe : il y a un certain nombre de personne pour lesquelles le premier langage n'a pas beaucoup d'importance parce que de toute façon elles vont s'accrocher et approfondir dans d'autres langages. Mais nous ne cherchons pas à conseiller ces personnes, nous cherchons un langage qui puisse convenir à d'autres.
Personnellement j'ai commencé par C, un peu de C++, abordé Python, trouvé le langage ennuyeux, découvert Perl (mon langage préféré pendant longtemps), appris OCaml, fais du Java, un peu de Smalltalk, une pincée de Ruby, découvert Haskell (mon langage favori du moment)... Mais je ne recommenderais pas cet itinéraire à n'importe qui !
--
Jedaï
Ce n'est pas tout à fait la même chose car PHP n'est pas un langage "tout objet". Pour compenser beaucoup de librairies sont obligées de coller un préfixe à toutes leurs fonctions, ce qui est à la fois laid et pas pratique.
Certes, mais ici on parle des fonctions intégrées aux langages pas venant de frameworks externes...
Ce n'est pas parce que le Pascal a fait une erreur qu'il faut la féliciter dans d'autres langages... De plus au moins le Pascal est consistent, comme l'a pointé GnuVince, le pire dans l'affaire est que les noms de variables eux sont case sensitive.
Je ne suis pas forcément complètement d'accord avec l'ensemble du document mais toutes ses remarques sont pertinentes et méritent au moins d'être examinées.
--
Jedaï
D'un professionnel qui est ingénieur chercheur en nouvelle technologie internet qui travail en Java et php ainsi que les entreprises (hors ou non de la france) ainsi que les écoles (polytechnique, supinfo, universités, iut, et d'autres) avec lesquelles il travail.
Puis par rapport au Cobol je pense que php a une communauté assé conséquente pour qu'il survive encore un long moment Et puis si IBM utilise encore Cobol sa doit pas être pour rien
En effet oui c'est pas tout le monde qui va faire tout sa remarque le mien n'est guerre mieux
si l'on s'oblige à respecter le modèle objet, ça passe bien... mais c'est une question de discipline
qui les utilisent encore quand on voit le niveau atteint par les frameworks ?
perso, je n'aime pas cela, mais ça n'a jamais empêché un langage d'être bon pour l'enseignement (cf pascal)
j'ai beaucoup de critiques vis à vis de php, mais disons que je trouve ce document trop partial, et la moitié des arguments sont trop approximatifs
Etant un ferveur pratiquant du php, ben je vais confirmer que ce n'est pas un language pour débuter.
Je vais juste donner 2 raisons qui me paraissent le plus évidentes:
- Le PHP, c'est fait pour générer des pages webs : donc on retrouve autour du xhtml, du css, javascript ... Tous ces languages parasites, le rende plus perturbant qu'autre chose.
- Le PHP est un langage peu defini (y'a qu'a voir des structures comme echo qui ne s'ecrive pas pareil que les autres fonctions ...). Ce coté peut etre perturbant.
Apres PHP n'a pas que des moins, son tres tres gros plus, ça reste la gestion des tableaux. C'est reellement la que reside toute la puissance de ce language. Mais trop peu structuré pour etre un langage débutant.
C'est vrai que coté parcours tordu, c'est sympathique. On devrait faire des posts du parcours info les plus tordusPersonnellement j'ai commencé par C, un peu de C++, abordé Python, trouvé le langage ennuyeux, découvert Perl (mon langage préféré pendant longtemps), appris OCaml, fais du Java, un peu de Smalltalk, une pincée de Ruby, découvert Haskell (mon langage favori du moment)... Mais je ne recommenderais pas cet itinéraire à n'importe qui !
Le problème est que PHP n'a jamais été conçu comme un langage tout objet en premier lieu, il est donc très difficile de respecter une discipline complètement objet.
Je propose donc que nous supprimions PHP pour le remplacer par ses frameworks, le langage original étant tellement inutilisable que toutes ses fonctionnalités ont été recodées dans des frameworks...
(Les fonctions du langage continuent à polluer l'espace des noms (global, le seul qu'on ait) toutefois)
Au moins Pascal est consistent dans sa décision d'être case-insensitive, contrairement à PHP !
La gestion des tableaux ? En quoi PHP est-il particulièrement fort dans le domaine ? Il est meilleur que C c'est sûr, mais n'importe quoi est meilleur que C pour ce qui est des structures intégrées de base dans le langage.
Je ne vois pas en quoi PHP apporte quoi que ce soit à la gestion de tableaux par rapport à Perl ou Python par exemple, au contraire.
--
Jedaï
Il ne faut pas comparer des langages qui ne le sont pas, dans son domaine il fait son travail et bien car quand même plus évolué que ASP. je suggère de lire cet article qui fait une liste des faiblesse et des qualités de php par un "professionnel" de cet technologie comme sa tout le monde les connaitra.
http://www.cio.com/article/197152/PH...nesses_Take_/1
Et pour ce qui est de sa duré voir mon dernier post
Oui un professionel tout à fait : Un employé de Zend en fait... Evidemment son témoignage doit être impartial, j'en suis complètement sûr !!
Même en oubliant ce léger problème (ça s'appelle "conflit d'intérêt"), l'article est... bizarre : à lire la deuxième moitié on a l'impression d'entendre quelqu'un s'excuser que son bébé ait fait des bêtises chez le voisin et assurer qu'il est maintenant beaucoup mieux éduqué et qu'il ne le fera plus ("Donnez lui une nouvelle chance !").
Il explique l'absence de typage fort par le fait que les données qui arrivent et qui repartent du script ne sont pas typées et que "donc" il est normal qu'entre les deux elles ne soient pas typés non plus... Ben j'ai une nouvelle pour toi mon gars : c'est le cas dans tous les domaines et même les types ne sont qu'une abstraction utiles pour raisonner sur un programme : en-dessous toutes les données sont des séquences de 0 et de 1. Qu'il y ait des arguments pour le typage dynamique d'accord, mais là il passe complètement à l'ouest !
Par ailleurs il explique que PHP est mieux que Java parce qu'il gère l'état via des cookies et des requêtes... Révolutionnaire ! (et "mieux" ?)
Il dit aussi que PHP est en général plus performant que Java pour les pages Web dynamiques. (Ah bon ?)
Il parle de la communication avec les DB et oublie de dire que pendant longtemps il n'y avait pas d'interface unifiée, que la plupart des interfaces rendait extrêmement facile l'introduction de vulnérabilités pendant que d'autres langages avait tout cela (interface unifiée et sécurisé) depuis avant l'apparition de PHP4 sinon PHP3.
Il arrive même à dire sérieusement que PHP n'a pas eu nettement plus que son lot de faille de sécurité dans le coeur du langage et explique que tous les problèmes de sécurité ne sont dû qu'aux développeurs PHP incompétents (merci pour eux). Il admet tout de même un peu plus tard que peut-être, dans le passé, PHP n'a pas encouragé des procédures de sécurité saines. Mais ne vous inquiétez pas, PHP5 résout tous ces problèmes !
Ensuite il admet tout de même que l'API est complètement inconsistante, qu'elle tend à changer d'une version à l'autre (ou même entre deux PHP de la même version mais pas sur la même machine) et que les outils pour la qualité logicielle en PHP ne sont pas encore vraiment géniaux (mais si vous achetez tous les outils Zend évidemment tout va bien).
En bref, je trouve l'article peu convaincant, plein d'affirmations plutôt vagues et de points noirs vite poussé sous le tapis d'un passé poussiéreux. Alors même qu'il vient de quelqu'un qui est évidemment un supporter enthousiaste et bien informé de PHP puisqu'il vient de Zend.
--
Jedaï
Je ne disais pas que PHP allait bientôt mourir comme Cobol, je disais qu'il n'allait pas bientôt mourir, malheureusement. Comme Cobol, il y a maintenant trop de passif en PHP pour que le langage disparaisse aisément. Tu n'as pas l'air de comprendre pourquoi IBM utilise encore Cobol : je peux te dire que ce n'est pas parce qu'ils trouvent le langage super et bien supérieur aux alternatives dans son domaine, c'est parce que Cobol a eu un gros succès marketing et qu'aujourd'hui IBM comme beaucoup d'autres groupes continue à avoir une masse de programme en Cobol qu'il couterait beaucoup plus cher de refaire, sans parler des décennies de débugguage que ces programmes et librairies ont accumulé.
--
Jedaï
Pourquoi l'auteur ne serait pas impartial il n'y a aucune raison, il avoue bien que php a des lacunes et qu'ils sont la pour y remédié. Personnellement je prend en compte tes remarques et les siennes, qui sont très enrichissante, car je n'ai pas assé d'expérience en php pour pouvoir affirmé l'un ou l'autre mais si il a dit tout cela c'est que à mon avis il sait de quoi il parle et qu'il connait plus que largement son sujet (attention je ne dit pas que tu ne connais pas très loin de la). Mis à par pour le fait que php est il est vrai plus performant que java pour les pages web dynamique ceci est bien vrai mais pas dans tout les cas cela dépend de ce que tu veux faire.
Pour le Cobol tu as raison mais pas entièrement, IBM utilise encore Cobol car quand ils ont besoin d'une application pas trop "importante" le coup est beaucoup moindre qu'avec tout autre langage et ce même si cette application n'a strictement rien à voir avec les autres programmes écrit en Cobol à leur début. Mais il est vrai que maintenant pour les grosse applications ils les développent en Java et une fois que sa marche, les traduisent en C++.
Tout simplement parce que l'entreprise est composée de personne fortement impliqué dans le développement de PHP. C'est comme quand Sun te dit que Java c'est bien, que Microsoft te dit que C# c'est excellent, ou que Apple te dit qu'Objective-C c'est le meilleur...
Sur le site de Zend
Donc qu'un employé dise que « PHP c'est bien » manque d'objectivité puisque c'est grâce à ça qu'ils vivent. Quand une compagnie se nomme elle-même « The PHP Compagny » tu ne vas pas t'attendre à ce qu'ils soient objectifs sur ce langage.Les entreprises qui utilisent PHP savent que Zend détient l’expertise et les solutions technologiques de référence pour PHP. Andi Gutmans et Zeev Suraski, deux des fondateurs de Zend, sont des contributeurs majeurs de PHP et créateurs du Zend Engine, moteur open-source de PHP.
A ce moment la oui c'est sur personne ne va dire que son produit est nul, qu'il sert à rien et qu'il faut allé voir à côté. Mais je pense que pour quelqu'un justement qui travail dedans il dénigre déjà pas mal php, ce qui montre sa bonne foie tout de même. Et puis de toute façon je me doute bien qu'il est pas parfait, aucun langage n'est parfait, sinon il ne serait pas en constante évolution, c'est à cela que sert les critiques à dire ce qui est bien ou non et ensuite de corrigé Je trouve que c'est quand même une communauté assé à l'écoute des utilisateurs comparé à certaines grosse firme qui se fiche complètement de ce qu'on leur dit et font comme ils veulent eux Et puis dans la version 6 il y aura quand même pas mal de chose qu'on lui reproche maintenant qui seront corrigé.
Et puis voici un lien qui est je pense plus que concluent quand à l'utilisation de php par rapport à ses concurrents direct:
http://www.developpez.net/forums/showthread.php?t=10366
Ce que je me demande donc c'est pourquoi si il est si mauvais autant de gens l'utilise et qu'il est le plus utilisé pour le web ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager