OVH Cloud OVH Cloud

PHP versus Java

28 réponses
Avatar
charly
Bonjour,

J'ai l'habitude de développer des sites en PHP et je viens de terminer
un projet de site web en Java cette fois-ci.
Nous avons utilisé des taglibs, des beans, un modèle MVC pour
centraliser les requetes, des objets sessions etc...

Mnt que le projet est fini, je me pose une question : quels sont les
avantages de développer en Java un site web par rapport au PHP ?

Je précise que :
le projet Java comporte les mêmes fonctionalités qu'un simple site PHP
Nous l'avons fait en Java car contrainte de l'école pour nous former.

Ma question porte plus sur le marché du travail : prq utiliser Java pour
faire ce que PHP fait très bien ?
Je trouve que le développement PHP est bcp bcp plus rapide que Java pour
les sites...

Merci de bien vouloir m'éclairer ....

10 réponses

1 2 3
Avatar
Shamil
D'apres FBI vous, charly, avez écrit:

Bonjour,
Ma question porte plus sur le marché du travail : prq utiliser Java pour
faire ce que PHP fait très bien ?
Je trouve que le développement PHP est bcp bcp plus rapide que Java pour
les sites...



1. Portabilité
2. Java est un vrai langage (avec tout ce cela implique), et non un "col"
universel fait dans un garage pour des besoins personnels

cela devrait suffir, non? ;)

Mais à vrai dire, tout depend de la complexité du projet. Comme tu dis,
avec php c'est rapide à faire - tant mieux, vachement bien pout faire les
maquettes, des tests, etc. Apèrs, tu passes "aux choses serieuses" ;)

pour la suite rdv sur comp.lang.java.advocacy

--
Virtuellement votre

Avatar
Armel FAUVEAU
Bonjour,

1. Portabilité


Parceque PHP n'est pas portable ?

Peut-être pas dans le sens aussi fort que Java, mais je t'assure avoir migré
des projets (gros) de Windows/2IS à Linux/Apache en moins d'une journée (la
majorité du temps ayant été consacré à mener des tests histoire de valider
la migration).

A dire vrai, PHP tourne sur un nombre impressionnant de plate-forme et d'OS.
C'est un fait.

2. Java est un vrai langage (avec tout ce cela implique), et non un "col"
universel fait dans un garage pour des besoins personnels

cela devrait suffir, non? ;)


J'aime l'humour :)
Alors je ne sais pas si ca va lui suffir, mais moi, je me suis bien amusé en
te lisant :p

Mais à vrai dire, tout depend de la complexité du projet. Comme tu dis,
avec php c'est rapide à faire - tant mieux, vachement bien pout faire les
maquettes, des tests, etc. Apèrs, tu passes "aux choses serieuses" ;)


Bis repetita :) Très amusant.
Et la marmotte elle emballe les barres de chocolat dans le papier d'alu hein
:p
Profites de la journée de demain pour sortir un peu sur le Web et découvrir
les nombreux (gros) sites qui tournent avec du PHP. Et encore, ce n'est que
la partie visible de l'iceberg. De nombreux frontaux d'administration
(backoffice) sont également très largement développés en PHP.

Bref, merci pour le troll :)

Armel.

Avatar
charly
Je suis les réponses dans le forum java.programmer histoire d'avoir le
maximum de retour...

La portabilité : bof en fait : mon serveur, apache ou IIs (je m'en moque un
peu) il tourne pour le client et basta :)

Là où je m'interroge en fait c'est pour gérer un back office par ex, qui
fait des insert - update dans une DB : pour gérer la bête en Java, faut
sortir l'arrtillerie lourde : taglibs, jdbc, beans, descripteurs xml,
objets request, objet session, forward de requetes etc...

En php, je soumets mon formulaire à une procédure qui affiche un template
avec un bete echo et terminé...

Java est portable et ok pour du cross-plateformes : PDA et téléphones,
linux, W32 etc mais pour du service web, quel intéret ?

Je ne suis pas là pour dire que PHP est mieux que Java, je veux juste avoir
des arguments qui me ferait dire : pour tel site web, il vaut mieux le
développer en java qu'en PHP. Pour l'instant je n'en vois pas (ah si,
manier des objets en java, c'est + rigolo que des fonctions mais ca compte
pas vraiment comme argument :) )

Je vais aussi aller sur Java.advocacy histoire de me faire taper dessus :)
Avatar
Laurent Seguin
Shamil , le 02 août 2003 23:42:16, écrivait ceci:

Ma question porte plus sur le marché du travail : prq utiliser Java
pour faire ce que PHP fait très bien ?



On se demande... La raison serait elle que les chefs de projet ne disposent
que de programmeurs java ?

1. Portabilité


PHP l'est aussi.

2. Java est un vrai langage (avec tout ce cela implique), et non un
"col" universel fait dans un garage pour des besoins personnels


Si tu parles de POO, franchement je me demande encore a quoi ca peut bien
servir dans le développement orienté web... Et quand je regarde PHP5...

Et de toute façon Rebol vaincra (un jour pê) !


Avatar
Zoupla
charly - :

Ma question porte plus sur le march‚ du travail : prq utiliser Java pour
faire ce que PHP fait trŠs bien ?


Parce que ça fait plus sérieux... Quand tu commences à mélanger tous les
javamachins avec du websphere ou du weblogic tu obtiens des infrastructures
lourdes, chiantes, instables, couteuses et impossible à maintenir MAIS ça
rassure les gros clients (ou du moins leurs responsables informatique).

Si ça a l'air bien lourd, alors ça veut dire qu'on va avoir une solution
burnée, pas un joujou phpisé pour créateur de homepages.

C'est de l'esbrouffe mais c'est comme ça. Et ça marche. Et le montant des
contrats s'envole.

Avatar
John Gallet
Re,

PHP est exécuté par le
serveur seulement alors que Java est normalement exécuté par le
client
Bonne remarque sur le "normalement". A l'origine, Sun avait écrit java

pour être un **client universel**. En 1997-1998 on ne pensait même pas à
mettre cette m***e sur un serveur. Et comme ça n'a pas marché plus que
ça (passons sur les déboires des stations 'diskless' avec OS en java) il
a bien fallu recycler le langage.

a++
JG

Avatar
Seb
La portabilité : bof en fait : mon serveur, apache ou IIs (je m'en moque
un

peu) il tourne pour le client et basta :)


Oui, la portabilité n'est pas un argument pour dans le cas de PHP/java car
les deux sont portables....

Là où je m'interroge en fait c'est pour gérer un back office par ex, qui
fait des insert - update dans une DB : pour gérer la bête en Java, faut
sortir l'arrtillerie lourde : taglibs, jdbc, beans, descripteurs xml,
objets request, objet session, forward de requetes etc...

En php, je soumets mon formulaire à une procédure qui affiche un template
avec un bete echo et terminé...


Oui, c'est vrai en règle général PHP peux paraître plus simple et l'est....
dans la majorité des cas PHP suffit pour faire ce que tu veux ....
La force de Java, c'est le fait d'être pure objet : beaucoup d'avantages
mais également plus de complexité dans le développement web (PHP serait plus
procédurale)

Java est portable et ok pour du cross-plateformes : PDA et téléphones,
linux, W32 etc mais pour du service web, quel intéret ?


La portabilité n'est pas un argument.

mais pour du service web, quel intéret ?
bouh!!!!!

C'est bien ca tout l'intérêt ..... les principaux détracteurs de Java argent
que Java est lent et c'est vrai si on se réfère par exemple au développement
d'applications Java graphiques par exemple, Java n'est pas véritablement
fait pour ca mais Java excelle dans le cas de développement web (car c'est
bien de cela dont tu voulais parler je suppose car ce que l'on appelle web
service est encore différent). Le grand nombre d'api est un avantage bien
sur mais c'est surtout l'architecture (on parle d'architecture J2EE) de
l'ensemble qui est un atout et qui permet d'avoir des solutions web robustes
et d'avoir une très bonne monté en charge (point primordial dès que tu
attaques un gros projet web)

Je ne suis pas là pour dire que PHP est mieux que Java, je veux juste
avoir

des arguments qui me ferait dire : pour tel site web, il vaut mieux le
développer en java qu'en PHP. Pour l'instant je n'en vois pas (ah si,
manier des objets en java, c'est + rigolo que des fonctions mais ca compte
pas vraiment comme argument :) )


Ben si ca compte comme argument ....... C'est un peu comme la différence
entre l'assembleur et le C++ par exemple : fait moi un programme en C++ ....
puis essai de me le refaire en assembleur. Bon ok, c'est un mauvais exemple
mais les objets ne servent pas uniquement à "faire rigolo", par exemple,
tente de créer un pool de connections à ta base de donnée : facile en Java
mais plus difficile en PHP car PHP justement est beaucoup plus procédural.
Java permet ainsi (grâce au objets) d'avoir un niveau d'abstraction beaucoup
plus grand et permet une modélisation très pointu. En particulier, le modèle
MVC est largement utilisé dans les architecture J2EE (et java en général) et
permet de séparer la vue (ta page web HTML en gros), des datas et de la
logique applicative.

Bref, Java apporte (et oblige à avoir) une approche plus conceptuelle du
projet web sur lequel tu travailles en séparant distinctement les couches
(vue - logique applicative et data), cette modélisation préalable peut
paraître fastidieuse et longue comme tu le faisais remarquer mais en réalité
tu gagnes du temps sur le long terme.

En réalité, dans la majorité des projets, PHP est suffisant car la plupart
des projets ne demandent pas une modélisation poussée, donc pas besoin de
séparation entre la logique applicative et la représentation visuelle.

Il existe également de très gros site fait un PHP, il y a 1 an, Yahoo est
meme passé de J2EE à PHP (pas comprit pourquoi d'ailleurs)

Avatar
John Gallet
Bonjour,

J'ai l'habitude de développer des sites en PHP et je viens de terminer
un projet de site web en Java cette fois-ci.
C'est un bon exercice et ça permet de connaître plusieurs technologies

concurrentes.

Nous avons utilisé des taglibs, des beans, un modèle MVC pour
centraliser les requetes, des objets sessions etc...
Remarque : le fameux modèle MVC est une méthode de développement qui

n'est ***en rien*** réservée à java.

Mnt que le projet est fini, je me pose une question : quels sont les
avantages de développer en Java un site web par rapport au PHP ?
Comme pour tout développement, il y a quatre types de solutions selon

les besoins :
- l'incontournable
- l'optimisée
- la "quimarche"
- la non adaptée

Si tu veux faire un service au sens deamon (exemple : je me connecte à
un serveur puis je reçois en push des cours de valeurs de bourse que je
lis dans un client) il est clair que :
- toute solution genre cgi-like est non adaptée, et là dessus, php en
fait partie.
- l'incontournable passe par ne technologie qui fera un vrai deamon qui
reste à l'écoute et garde une socket ouverte tout le temps, sait
forker/multithreader pour traiter N clients, etc... Exemples de langages
applicables : C, C++, java

Ensuite, quand on n'a pas de spécifique (site web dynamique par
exemple), alors il y a des solutions optimisées ou non. Je considère que
pour des raisons de temps de développement, de maintenabilité, et de
performances par rapport aux coût (en particulier de hardware) engagés,
il est sous-optimal de faire du web dynamique en java (jsp etc...). Mais
"ça marche".

a++
JG

Avatar
John Gallet
Re,

dans la majorité des cas PHP suffit pour faire ce que tu veux ....
C'est bien là le seul point à prendre en compte : les besoins du projet.


La force de Java, c'est le fait d'être pure objet :
Je n'ai pas envie de rentrer dans le troll poo vs non poo. Je

remarquerais seulement que le C ou l'ada permettent de faire des projets
de même envergure que du c++ ou du java.

Le grand nombre d'api
PHP n'a rien à envier à java de ce côté là, bien au contraire, surtout

avec la facilité d'ajout de librairies existantes en C/C++. J'ai intégré
la même lib C en PHP et en java. Intégration PHP : 2 semaines.
Intégration JNI/java : 2 mois et demi. Réécriture de la lib en full java
: en cours, déjà plusieurs semaines consommées. Sur le prototype, on a
entre 20 et 25 % de perfs en moins par rapport à la version jni.

d'avoir des solutions web robustes
et d'avoir une très bonne monté en charge


Le couple PHP+apache n'a aucun problème ni de robustesse, ni de montée
en charge.

tente de créer un pool de connections à ta base de donnée : facile en Java
mais plus difficile en PHP car PHP justement est beaucoup plus procédural.
On y revient : un pool de connexion c'est utile pour des deamons,

inutile pour des 'cgi-like' (que sont les jsp aussi).

De plus c'est un mauvais exemple : en PHP on a pas besoin de pools de
connexion, on a les fonctions pconnect qui sont faites pour ça donc on a
**rien** à coder...



Java permet ainsi (grâce au objets) d'avoir un niveau d'abstraction beaucoup
plus grand et permet une modélisation très pointu.
Là dessus, on revient sur le troll poo...


En particulier, le modèle
MVC est largement utilisé dans les architecture J2EE (et java en général)


Qu'est-ce qui empêche de le faire en PHP ?

paraître fastidieuse et longue comme tu le faisais remarquer mais en réalité
tu gagnes du temps sur le long terme.
Non : tu ***peux*** gagner du temps sur le long terme, mais c'est un

autre débat.

En réalité, dans la majorité des projets, PHP est suffisant car la plupart
Agreed.


des projets ne demandent pas une modélisation poussée, donc pas besoin de
séparation entre la logique applicative et la représentation visuelle.
Pas d'accord, on peut sans problèmes séparer le code et la logique en

php sans avoir un analyse de modélisation de deux semaines à faire.

Il existe également de très gros site fait un PHP, il y a 1 an, Yahoo est
meme passé de J2EE à PHP (pas comprit pourquoi d'ailleurs)
Les raisons en ont été données publiquement par Yahoo :

http://www.afup.org/article.php3?id_article4 et lien en bas.

a++
JG

Avatar
Seb
dans la majorité des cas PHP suffit pour faire ce que tu veux ....
C'est bien là le seul point à prendre en compte : les besoins du projet.



Oui, effectivement comme dit quelque part ds le thread : ca rassure les gros
clients .... Peut être ....
Il y a de nombreux projets qui se contenteraient aisément du PHP au lieux de
J2EE (je dis contenteraient d'un point de vu économique car PHP est bien
moins cher que les solution J2EE meme si il existe des serveur J2EE open
source Jboss...)

La force de Java, c'est le fait d'être pure objet :
Je n'ai pas envie de rentrer dans le troll poo vs non poo. Je

remarquerais seulement que le C ou l'ada permettent de faire des projets
de même envergure que du c++ ou du java.


Ouai, ouai ... c'était peut être provocateur et réducteur.
Quoi qu'il en soit la poo apporte indéniablement un + dans la modélisation
d'un langage meme si il est possible de faire sans (mais en beaucoup plus
long probablement)

Le grand nombre d'api
PHP n'a rien à envier à java de ce côté là, bien au contraire, surtout

avec la facilité d'ajout de librairies existantes en C/C++. J'ai intégré
la même lib C en PHP et en java. Intégration PHP : 2 semaines.
Intégration JNI/java : 2 mois et demi.


Pas un bon argument : cela reflète juste que tu es bien meilleur programmeur
PHP que Java car les principes d'intégrations sont pratiquement les mêmes.
C'est toujours le meme problème quand quelqu'un demande un comparatif de tel
ou tel technologie : chacun défend son bout de gras en vantant les mérite de
son langage de prédilection : java, C, Lisp , PHP, pyton ..... je ne crois
pas qu'un langage soit meilleur que tel autre, mais chacun à ses
spécificités .....

Réécriture de la lib en full java
: en cours, déjà plusieurs semaines consommées.


Quel genre de Lib?

Sur le prototype, on a
entre 20 et 25 % de perfs en moins par rapport à la version jni.

d'avoir des solutions web robustes
et d'avoir une très bonne monté en charge
Le couple PHP+apache n'a aucun problème ni de robustesse, ni de montée

en charge.


Jamais dit le contraire.....
mais J2EE est généralement tout de meme bien plus efficace dans ce
domaine.... c'est indéniable....
Dans la pratique, la performance des serveurs permet la majorité du temps de
ne pas s'inquiéter de la monté en charge (d'ailleurs la majorité des
problèmes de performance sont du à des requêtes SQL mal écrite)
Pour les applications critiques c'est une autre histoire

tente de créer un pool de connections à ta base de donnée : facile en
Java


mais plus difficile en PHP car PHP justement est beaucoup plus
procédural.


On y revient : un pool de connexion c'est utile pour des deamons,
inutile pour des 'cgi-like' (que sont les jsp aussi).


Oui enfin c'est très réducteur de limiter simplement J2EE au JSP.

De plus c'est un mauvais exemple : en PHP on a pas besoin de pools de
connexion, on a les fonctions pconnect qui sont faites pour ça donc on a
**rien** à coder...


Oui, tout comme en Java les pools de connexion sont gérés par le serveur
d'application.....

Java permet ainsi (grâce au objets) d'avoir un niveau d'abstraction
beaucoup


plus grand et permet une modélisation très pointu.
Là dessus, on revient sur le troll poo...


En particulier, le modèle
MVC est largement utilisé dans les architecture J2EE (et java en
général)


Qu'est-ce qui empêche de le faire en PHP ?


Rien, sauf qu'en Java c'est natif, pas besoin de réinventer la roue

paraître fastidieuse et longue comme tu le faisais remarquer mais en
réalité


tu gagnes du temps sur le long terme.
Non : tu ***peux*** gagner du temps sur le long terme, mais c'est un

autre débat.


Ouai, enfin dans une application Java bien conçu, la réutilisation des
objets t'évite de réinventer la roue chaque fois : tu passe plus de temps au
début à la conception, mais tu en gagne par la suite .....
Évidemment que si c'est pour faire 2 ou 3 requêtes à ta base de données,
inutile de modéliser ou de faire du n-tiers

En réalité, dans la majorité des projets, PHP est suffisant car la
plupart


Agreed.

des projets ne demandent pas une modélisation poussée, donc pas besoin
de


séparation entre la logique applicative et la représentation visuelle.
Pas d'accord, on peut sans problèmes séparer le code et la logique en

php sans avoir un analyse de modélisation de deux semaines à faire.


Sauf qu'une bonne modélisation est souvent le gage de la réussite d'un
projet : il ne suffit pas de foncer tête baisser dans le code puis se rendre
compte 3 semaines plus tard que c'est mauvais. Je crois que pratiquement
tous ce qu'il est possible de faire en Java est possible à faire en PHP
mais Java impose effectivement plus souvent de faire une modélisation
préalable et je crois que c'est une bonne chose.

Il existe également de très gros site fait un PHP, il y a 1 an, Yahoo
est


meme passé de J2EE à PHP (pas comprit pourquoi d'ailleurs)
Les raisons en ont été données publiquement par Yahoo :

http://www.afup.org/article.php3?id_article4 et lien en bas.


Oui, donc rectification, Il ne sont pas passés de J2EE à PHP mais de C à
PHP.
Comme je le disais plus haut, chacun a sa préférence pour tel ou tel
technologie, il faut essayer et comparer .....
La connaissance du langage est également très importante dans le choix de la
technologie : c'est donc aussi une affaire de goût... Pour ma part j'étais
développeur ASP, devenu développeur PHP puis finalement développeur J2EE
.... Aujourd'hui mes connaissances Java sont bien meilleurs que celle en PHP
donc ma préférence pour la réalisation d'un projet va toujours vers Java
alors que ce n'est pas toujours justifié .... affaire de goût donc.... et
donc pas vraiment objectif.

Seb


1 2 3