Merci pour toutes vos réponse. :) La mienne sera longue en retour ;)
Citation:
C'est à mon avis un manque d'expérience et/ou d'outil adapté qui vous font pensez cela.
Avec un IDE digne de ce nom il est tout à fait possible de remonter vers les définition de methode d'une classe soit disant "boite noire" de php.
J'utilisais netbeans. Si j'ai une variable dont je ne connais pas le type, comment pourrais-je remonter à sa définition ? De même comment remonter à la définition de ses membres ? Netbeans me permet de remonter à la définition d'une classe quand je connais son nom, c'est déjà ça mais loin d'être suffisant. Pour connaitre le reste, je suis très souvent obligé de debugger pour savoir où le programme "passe". C'est long et ça implique d'exécuter le programme, çe qui n'est pas sans conséquences...
Citation:
Avec une doc correcte tu fais l'auto complétion, tu remontes tes defs ect sans problèmes.
De même qu'avec un ide décent tu peux voir tes erreurs syntaxique à l'écriture.
Donc pour un ide sympa pour php => netbeans.
Citation:
Toujours dans le même esprit , un ide correct, va t'avertir des erreurs de débutant tel que la synthaxe ou les fonctions inexistante.
Netbeans ne le fait pas en tout cas. Je n'ai pas l'intellisens quand j'écris les première lettre et je n'ai pas de correction si j'écris n'importe quoi. Même si j'avais l'autocompletion, ça ne serait pas interessant car ça me proposerai une liste énorme de fonctions (toutes les fonctions php) puisque celles-ci ne sont pas rattachées à une classe et n'ont donc pas de context. En .net à partir du moment où je tape "." sur une variable, la liste de tous les membres du type correspondant à la variable m'est proposé. C'est un gain de temps non négligeable. De plus, le peu d'auto-completion et correction automatique que l'on a se paye par une longue étape de parsage des fichiers au moment de l'ouverture du projet.
Citation:
Quand je dois développer en C , je suis toujours entrain de me demander si j'ai pas oublier libérer la mémoire,si j'écris bien au bon endroit , si mon tableau va être assez grand.
Tous les langage statiques ne sont pas comme le C. Je n'ai pas ces problèmes en c#. Je trouve même que la gestion des collections et des énumération est bien plus puissante que ce qui se fait en php.
Citation:
Perso, je vois pas l'intérêt des langages dynamiques.
moi non plus ;) J'essaie de comprendre...
Citation:
Bien sûr que non ! Ca dépend surtout de ce que tu en fais. A compétence équivalente, tu iras toujours plus vite à taper 3 lignes de script que de faire un programme en Java ou C.
Par contre, il est clair que la méconnaissance d'un langage peut entrainer une réelle perte de temps. En outre, selon l'auteur du code que tu lis, tu pourras te retrouver avec un code illisible et inmaintenable...
Je suis d'accord. Si j'ai juste quelque lignes de code à modifier, ça peut être très pratique de ne pas avoir à recompiler, relancer l'application etc... Mais très rapidement dès que je code un peu plus, je préfère aussi largement les langages statiques.
Citation:
Ben, y'a quand même la réflection, et pouvoir changer une fonction à l'exécution, et les tests...
La reflection existe aussi en .net, les tests existent aussi en .net et java. On peut aussi changer une fonction à l'exécution, même si c'est un peu moins rapide à écrire.
Citation:
Attention un langage ne peut pas etre dissocié de son écosysteme. En ce qui concerne PHP, si tu l'utilises avec les bons outils et les bonnes librairies. Tu auras un des outils RAD les plus intéressant pour le developpement orienté Web. Surtout ne reste pas figé sur ta premiere impression.
J'ai fais de l'ASP.net et du PHP. Je trouve le premier nettement plus propre que le second. En ASP.net, on a un vrai séparation des couches métier et affichage. Tout est orienté contrôle. En php, c'est une autre histoire. Alors je ne comprends pas trop quand on me dit que les langages dynamiques on un meilleur niveau d'abstraction...
Citation:
En ce qui concerne l'interet des languages dynamiques il faut pas essayer de le comparer a un langage static car tu n'en verras que les défauts.
Ca doit vouloir dire qu'ils sont moins bons ;) Mais alors pourquoi sont-ils à la mode ?
Citation:
Car sur ces deux pages voila ce que j'en tire :
langage dynamique = typage dynamique (ou non typage) = PHP = de la merde
Pour ma part, je trouve que le typage dynamique est le plus gros inconvénient des langages dynamiques... c'est sans doute pour ça que la discussion tourne autours de ce point. Mais je te remercie de me faire voir d'autres aspect. C'est ce que j'attends au fond.
Citation:
- L'évaluation de code (ndlr. eval()) Sympas quand on veux faire de la
meta programmation
Metaprogramming Metaprogramming
, non ?
Je ne connais pas. Ca consiste en quoi ?
Citation:
- Les fonction d'ordre supérieur
- Les fonction lambda
Ca existe en c# en tout cas, et c'est d'ailleurs parfaitement compatible avec un typage fort. Au passage, les expressions lambda de PHP ne volent vraiment pas haut...
Citation:
- Pouvoir faire de la programmation fonctionnelle. Bon d'accord ça c'est pas utile pour tout le monde mais quand je lis des articles "programmation fonctionnelle en java" ou le type simplifie le truc a des appelles récursif de méthode, j'ai honte pour lui.
programmation fonctionnelle = programmation procédurale ?
En tout cas on peut tout à faire faire de la programmation procédurale avec les langages statiques.
Citation:
- l'exécution au runtime. ...
oui, comme je l'ai dit plus haut c'est clairement un avantage... pour les petites modifications.
Citation:
Mais ils sont balèzes pour faire de la récursivité, résoudre des problèmes ou justement le problème change en court de route ou encore ces problèmes ou on sais plus ou moins ce qui rentre, mais on sais pas ce qui va en sortir.
oui c'est vrai. Mais je trouve que le jeu n'en vaut pas la chandelle. Avec c#, je trouve que le compromis n'est pas mal: on peut dans tous ces cas utiliser des variables dynamique et rester dans le monde statique pour tout le reste. Mais je pense qu'on peut encore faire mieux en introduisant la notion d'implémentation implicite d'interface afin de garder l'intellisens tout en manipulant des objets qui n'ont pas de lien de parenté !
Citation:
Va pour un solution JAVA. Tu connais déjà c#, java et c# sont... très similaires. Tu vas donc être plus vite opérationnel (bien que tu vas voir là où .net est merveilleux de simplicité, java se contente de rajouté complication sur complication), les choses vont te paraître normal et à leur place
oui mais j'ai l'impression que java n'est pas aussi souple que c#. Du moins si il reste au niveau de c# 2, il manque: l'inférence de type, les variable implicitement typé, les expression lambda, les variables dynamiques, etc...
Citation:
en plus je vois pas l'interêt d'écrire un ERP en python.
Il s'agit d'OpenERP. Si quelqu'un le connait et peut nous en dire un peu plus ?
Citation:
P.S.: fait attention aux anachronismes, les langages statiques sont les dinosaures de l'histoire la ou les langage dynamique sont plus du 21eme siècle.
Tu veux dire l'inverse ? ;)