Je me suis arrêté en bas de la première page donc je ne sais pas où en est le débat mais j'ai l'impression que ce débat n'a pas vraiment lieu d'être étant donné que les deux langages ne s'orientent pas forcément vers les mêmes besoins.
PHP pour ajouter "un peu" de comportement serveur à des sites web de présentation.
Java/J2EE pour les applications web avec un grosse orientation métier.
Il ne me viendrait pas à l'idée de développer un site J2EE pour ajouter une gestion BDD à mon blog perso comme il ne me viendrait pas à l'idée de développer mon projet actuel en PHP au vue de sa complexité.
A moins que PHP ait énormément évolué sans que je suive (c'est possible) mais je ne pense pas qu'il dispose de frameworks aussi puissants que Spring et Hibernate pour ne siter qu'eux (encore une fois c'est possible)
Ou alors on ne parle ici de Java que par rapport au jsp peut être ? (ça mérite d'être précisé)
# A propos des performances, voici un article sur la scalabilité de PHP sur le site Digg. L'auteur est clairement un protagoniste PHP (alors qu'il vient lui même du monde Java), et il aborde le problème avec de bons arguments.
http://www.oreillynet.com/onlamp/blo..._and_perf.html
Comme je m'y attendais dans cet article, les problèmes les plus courants ont à voir avec les accès extérieurs à l'application, très souvent la base de données.
Il parle également de déporter les calculs fait en base de données à l'intérieur de l'application. A ce sujet j'aurais plus de critiques, mais entre base de données et application PHP, j'aurais fait pareil!
Pour des performances brutes, il y a des gens qui ce sont amusé à des petits benchmarks; en voici quelques-uns:
http://blog.dhananjaynene.com/2008/0...-jruby-groovy/
http://www.timestretch.com/FractalBenchmark.html
Evidement ce sont des benchmark limités dans leur portée, mais ils donnent une vue d'ensemble sur les performances des langages. Bref, la surprise est que Java et C/C++ se tirent la bourre (avec un gros plus pour C/C++), alors que PHP reste quand même bien en retrait.
# Un autre plutôt article orienté PHP aborde d'autres points tel que l'outillage et la maintenabilité:
http://www.cmswire.com/cms/industry-...uby-000887.php
# Et encore on oublie les problématique d'environnement de dev, d'intégration, de prod. J'ai entendu nombre de fois des amis se plaindre de la gestion "au petit bonheur la chance" ou des développeurs limite mauvais en PHP, alors qu'en Java c'est plutôt rare et les devs bon sont monnaie courante. Mais j'ai vu de la merde Java aussi et j'ai également rencontré quelques personnes qui étaient un peu faible techniquement.
# En abordant le sujet je viens de penser au versionning, en Java on a depuis longtemps ces problèmes, et on a pas encore de solutions parfaites dabs tous les cas. Bien sur on a maven pour les dépendances, mais pour quelques choses de plus tricky les versions d'un service, c'est déjà plus délicat, eh bien il y a depuis longtemps maintenant des solutions basées sur OSGi. Je crois que l'OSGi n'en est encore qu'à l'état de concept / poc.
# En PHP je pense que les processus, les gens (dev/cp/client), les technologies sont plus light que les gens qui bossent en Java. Alors effectivement l'argument - Java est un peu trop gros pour des petits projets - que je vois régulièrement revenir, oui cet argument tient la route, ...si le client veut un truc rapide mais pas très net alors PHP est très bien, mais des qu'on veut un projet à plus long terme, maintenu, encadré, avec foule de bon développeurs eh bien je choisirais Java/J2EE.
Bref clairement je verrais Java et son environnement comme beaucoup plus intéressant et mature que l'environnement PHP sur l'ensemble des aspects connexe au développement. J'ai déjà donné mes raisons lors de précédants posts et les posts de brissou, de inconnu652000 et des autres me confortent dans cette position.
Les posts en question:
http://www.developpez.net/forums/d73...a/#post4274689
http://www.developpez.net/forums/d73...a/#post4275628
http://www.developpez.net/forums/d73...a/#post4277827
http://www.developpez.net/forums/d73...a/#post4290036
http://www.developpez.net/forums/d73...a/#post4321715
http://www.developpez.net/forums/d73...a/#post4330549
http://www.developpez.net/forums/d73...a/#post4636275
http://www.developpez.net/forums/d73...a/#post4637432
http://www.developpez.net/forums/d73...a/#post4762986
Lorsque je lis ça, je te confirme, tu n'es pas au courant de l'actualité php... En ce qui concerne spring, hibernate et compagnie, il y a pour php symfony et doctrine par exemple. Cependant, je suis d'accord sur un point, lorsqu'on a utilisé les frameworks java, on a un petit peu de mal avec les frameworks php, notamment pour les orm où j'ai le sentiment que l'on ne retrouve pas la même simplicité, mais cet avis n'engage que moi, bien entendu.
Ah la la... en résumé, php et ses developpeurs php, c'est de la m**** et java et ses développeurs, c'est l'élite... Cependant, si tu veux dire par là que des manchots ayant programmé 3 lignes de code en php se disent développeur pro, là, je suis d'accord. il est vrai que cette situation se rencontre beaucoup plus rarement en java (enfin je crois)... Mais programmer objet avec les bonnes pratiques que cela impose (maintenabilité, encadrement, design pattern, évolutivité, mvc, etc, etc...) est possible dans ces deux langages (et php n'a presque plus à rougir niveau objet !).Envoyé par TheNOHDirector
Quoi qu'il en soit, il convient quand même de faire attention et d'éviter de faire confiance à des tests souvent pratiqués avec une mauvaise foi inébranlable et une tonne de préjugés (aussi bien pour l'un et l'autre des langages), et il serait peut-être déjà bon, si de n'est de maitriser les deux langages, de pratiquer un minimum les deux pour donner un avis pertinent !
A titre d'information, je l'ai déjà écrit plus haut, mais il est quand même étonnant (non ?) qu'environ 70% des applis web soient réalisés avec php (et non des moindres), environ 20% avec asp, et les 10% qui restent se partagent java/jee et les autres langages... Et la balance n'est pas prête de changer vu les nouveautés annoncées par php 6 et la volonté de conquérir davantage les entreprises (sans compter la peur du moment avec le rachat de sun, mais ça c'est un autre débat)...
Il y a effectivement des domaines où java est plus performant que php et vice-versa (voir plus haut), mais ça s'arrête là. Il n'y en a pas un à privilégier pour faire du code dég*** et un autre pour faire de belles petites applis maintenables et évolutives. Et de plus, quand je lis les messages dont tu as laissé les liens, je m'aperçois que tu fais beaucoup de généralités, mais tu as au moins l'honnêteté de dire que tu ne connais pas bien php. Allez, un petit test pour toi, je te cite d'abord :
Moi, dans ma rue, il y a deux boulangers, l'un fait l'effort de faire du bon pain, l'autre non (selon mon palais et celui de quelques congénères)... Donc, à ton avis :Et dans la plupart des projets PHP, comme le coût est relativement important, il y a peu de gens qui sont compétents même s'ils ont quelques années d'éxpérience. Bref sur les gens en PHP que j'ai rencontré peu font vraiement l'effort de devenir spécialiste.
Réponse A : tous les boulangers de la terre sont mauvais et seul celui de ma rue est bon,
ou
Réponse B : l'un des deux boulangers de ma rue n'est pas bon et je ne connais pas les autres donc je ne peux pas les juger.
Bref...
Ceci-dit, il y a une chose que java à largement réussi et où php ne lui arrive pas à la cheville : sa campagne publicitaire... même certains développeurs y ont cru, y croit, et vont y croire encore longtemps !
Petit edit, car en regardant différent tests, je crois qu'il y a un point qu'il faut souligner... Les tests comparent d'une part des langages qui ne "fonctionne" pas de la même façon (compilation avant ou à la volée par exemple), parfois sur différentes machines et différents os, et d'autre part, sur des boucles qui itèrent des dizaines de milliers de fois, etc... et tout ça pour quelques millisecondes d'écart ! Sérieusement, qui s'en soucis ? Avec la puissance des serveurs actuels, c'est le programme qui attend le visiteur et non l'inverse. il est peu probable qu'une méthode métier réalise un calcul scientifique, non ? Alors, soyons honnête, quel est l'intérêt de savoir si php ou java est plus rapide de quelques millièmes de secondes ? On sait de toute manière que pour un site à forte charge, cette différence sera gommée grâce aux systèmes de cache ou d'accélérateur de ces langages...
Dernière modification par seb92400 ; 09/11/2009 à 23h42.
J'ai déja donné plusieurs fois mon avis sur ce sujet. Je continue de penser que PHP fera aussi bien que Java sauf sur certains mechanismes qui sont fournis par des framework liés à Java. Ce n'est pas vraiment le language mais plus son éco système. Cependant j'ai besoin de créer un site web d'Ecommerce, un reseau social avec plusieurs millions d'utilisateurs ou un intranet pour entreprise. Je peux le faire en PHP sans aucun problème.
Peux-tu être plus explicite, qu'est-ce qui est si complexe que PHP ne pourrait pas le faire.
Framework aussi puissant j'en sais rien mais ceux que j'utilise remplissent leur mission à merveille.A moins que PHP ait énormément évolué sans que je suive (c'est possible) mais je ne pense pas qu'il dispose de frameworks aussi puissants que Spring et Hibernate pour ne siter qu'eux (encore une fois c'est possible)
D'accord avec batataw, pour info j'ai implementer pas mal d'algo de traitement de l'image en php (canny edge detector, watersheet) et des trucs bien drole en IR comme des chaines de markov cache, du alpha-beta etc... et franchement deja de 1, le language a tout les outils de programmation pour ce genre de tache par contre niveau performnce, j'avoue que j'ai du bien ruser pour avoir des perf acceptables.
Toujours est-il qu'a l'heure actuel (ca fait deja un an que je le dit) php et java c'est du kif-kif. Le choix d'une sur l'autre et avant une question de gout et de culture. J'ai remarquer qu'en france on etait vachement java la ou d'autre pays mettent l'accent sur d'autre techno.
Conclusion, il n'y a pas de mauvais outils mais que des mauvais ouvriers comme on dit dans le nord.
La qualité des langages converge, leur simplicité aussi. On met en avant en Java les interfaces métiers, des tonnes d'interfaces à implémenter que si on n'a pas Spring ou qu'on n'y connait rien en proxy dynamique on n'a que ses yeux pour pleurer, mais à côté de ça on court vers Groovy et Grails car c'est plus simple et moins verbeux... Et côté PHP cela semble plus simple mais les perfs sont peut-être moins au rendez-vous, et finalement un objet reste un objet, c'est sa conception qui importe... Quite à fleurter avec la frontière du débat, à mon avis on a trop souvent tendance à confondre application ou architecture et langage... Un bon server Apache avec les bon modules (dont celui de cache ou/et de reverse proxy et/ou de réécriture d'url), un bon PHP des familles avec du code simple à comprendre par quiconque (sans avoir des taglib, des jsf et autres partout), un bon framework Javascript et un bon petit bus ESB Java type MULE, pour gérer simplement les échanges, s'affranchir des contraintes de PHP, bénéficier de toute la puissance de Java et pouvoir écrire tous les objets métiers qui tiennent tant à coeur, voilà l'architecture qui me plairait de voir plus souvent en place !
ERE
Je suis d'accord avec toi, la plupart des personnes qui donnent leur avis considèrent le fait que php ce sont des pages web où on y met tout et n'importe quoi...
Au risque de faire une analogie qui ne va pas plaire à certains : une page php est une page jsp ! On peut effectivement développer une page php en y mettant son code métier, ses accès à la base, des balises entrelacées dans tous les sens et on peut faire la même chose avec des pages jsp, ça marche tout pareil... Sauf qu'il est reconnu que cela a été fait en php alors qu'en java, on a tout de suite adopter les bonnes pratiques. Mais... eh les gens !!! Ce temps est révolu !
Oh, bien sûr des développeurs php qui codent de cette façon, ça existe toujours... Tout comme il y a des développeurs qui codent encore en java 1.3, et alors, ça voudrait dire que tous les développeurs php ou java sont mauvais sous prétexte que certains n'ont pas souhaité évoluer ?
Je te rejoins donc ici, arrêtons de confondre langage et architecture. Comme je le disais plus haut, il y a un point ou sun a été très fort, c'est sur son marketing. Quelques exemples :
- En php, avec doctrine, un objet entité n'a pas vraiment de nom, en java on appelle ça des EJB Entities, waouh, ça pète, mais c'est la même chose. (d'ailleurs en java des EJB, on en retrouve à toutes les sauces, et ça ne veut plus vraiment rien dire : EJB Session Stateless ou Statefull, EJB Messages, EJB Entities...)
- En java, on utilise JTA basé sur une couche de persistance Hibernate ou TopLink ou EclipseLink, etc... Et bien, en php, on utilise Doctrine avec des méthodes... Ah ouai, effectivement, ça sonne moins bien, mais ça fait la même chose...
- Si on utilise Struts en java, on a les formBean, les actionBean, les beans, la aussi à toutes les sauces, etc... Si on utiise symfony en php, on a aussi nos formulaires avec nos règles de validation, nos actions, etc... mais là encore, tout ça n'a pas vraiment de nom, c'est noyé dans la conception mvc...
- Les pojos aussi me font rire ! Ce mot est marrant non ? (Plain Old Java Object), et bien, en php, on appelle ça un objet... pas top, non ?
Certains disent également que java, c'est plus simple et moins fouillis que php... Il est vrai que pour certains frameworks, la simplicité, tout au moins dans les dernières versions, est de mise. Mais laissons le temps aux frameworks php d'évoluer également !
Mais il faut reconnaitre également que parfois c'est pas simple en java, déjà entre le choix d'une technologie basée sur jee ou non pour développer, le tyoe de serveur à utiliser, bah oui, parce que Tomcat peut suffire dans un cas, par contre dans un autre il faudra Glassfish ou Jboss, parce que certains ont un conteneur EJB et pas l'autre, etc... et les bibliothèques à importer, heureusement maven simplifie les choses, etc...
Bref, on pourrait parler longuement de tout ça, mais encore une fois, comme le dis ERE, est-ce qu'on compare les architectures ou les langages. Et de plus, j'ai fait un tout peut exprès de citer des noms et des technologies avant juste pour soulever la complexité, alors que c'est un choix technique à la base...
Alors par pitié, arrêtez de faire des comparaisons sur la scalabilité par exemple, où un système de cache et/ou d'accélérateur permet de gommer la différence. Soyez objectif ! Ou alors, dites nous aujourd'hui, avec un exemple concret et pas un "Ce que je fais en ce moment est impossible en php", ce qu'il est ou non possible de faire dans l'un et l'autre des langages...
Bonne journée !
ok donc apparemment PHP semble avoir beaucoup évolué au sens fonctionnalité/framework d'après les témoignages. Je m'en sers très peu donc je ne suis pas les outils de haut niveau sur ce langage.
Par contre qu'en est-il des environnements de développement, de la gestion de projet, de version, de tests unitaires, d'outils pour la qualité de code ... ?
(je pense en vrac à Eclipse, Maven, Hudson, les mock objets, Mylyn, checkstyle, PMD, ....)
Tu as par exemple NetBeans qui dans sa version 6.8 a intégré les frameworks symfony et doctrine. Tu as aussi phpEdit (payant) qui intègre les mêmes frameworks. Tu peux donc écrire proprement ton code, tester, versionner si tu ajoutes un dépôt comme pour java ou n'importe quel langage, etc...
Sur mon projet actuel j'utilise:
- Zend Studio for Eclipse (pour IDE)
- Mercurial (Pour le versionning)
- Cruise control + Phpunit (Pour les tests unitaires)
@seb92400: concernant ton long post, voire même si tu es sur Paris: !
ERE
Pour moi c'est PHP bien que j'eus quelques connaissances en Java mais plus dans le déploiement de client lourd.
Php est beaucoup plus documenté sur le net, on trouve de l'aide à peu près partout. Surtout il est plus intuitif.
J'avoue que je code maintenant PHP en 100% objet ce qui le rapproche de java.
PHP c'est comme Java mais en mieux.
Hello,
Je viens de passer un bout de temps à essayer de remettre la main sur ces chiffres, mais je ne les retrouve plus. Il s'agissait de stats indiquant quels langages étaient utilisés de préférences pour la conception de sites web dynamiques (sites web, donc tout ce qui est intranet, applis persos, etc... non comptées). De mémoire, php était aux environs de 67-68%, asp 21-22, et le reste pour les autres langages dont java qui devait tourner aux environs de 7%.
Ces chiffres datent un peu il est vrai, mais la balance ne s'est pas inversée du jour au lendemain. De toute façon, même si ces chiffres sont aujourd'hui erronés, il suffit de regarder par exemple les offres des hébergeurs, combien proposent un serveur java ?
Ceci étant dit, pour ma part, je ne pense pas qu'un des deux langages soit supérieur à l'autre. Et de plus, quitte à avoir une vision un peu étriquée de la chose, je réserverais php pour des applis web et java pour des applis client dites lourdes, même si ce n'est pas trop la mode actuelle (encore que ce genre d'appli ait tendance à revenir sur le devant de la scène).
Quoi qu'il en soit, je pense que l'utilisation de l'un ou l'autre des langages est une question de goût (et/ou de méconnaissance) avant tout et non de performance.
Bonne journée.
Partager