OVH Cloud OVH Cloud

PHP vs Java(servlets)

13 réponses
Avatar
Zouplaz
Bonjour, non ce n'est pas un troll !

Je voudrais juste avoir votre avis sur quelques points concernant ces deux
technologies.

Voila ce qui se passe. Ce week-end j'ai installé TomCat (un serveur http
entièrement écrit en java me semble-t-il) et j'ai jeté un oeil sur la
configuration, le déploiement (manuel) d'applications et installé un petit
servlet style "hello world".

Bon, à partir de là je me suis penché (un peu) sur l'API, puis j'ai
téléchargé quelques servlets dispo en freeware pour regarder les sources.

Il y a quelque chose que je ne comprends pas : les quelques exemples en
question m'horrifient totalement.
Par exemple, j'ai un servlet (quelque peu évolué quand même) qui transforme
un formulaire html en message email (whoua super trop fort).

Le code source est d'une longueur ahurissante, d'une complexité apparement
excessive au regard du résultat produit. Ca ne m'étonne pas franchement, je
m'attendais un peu à ce que le développement de servlets tourne à l'usine à
gaz, c'est bien le genre de la maison.
Et je ne parle pas des API !! Entre l'api JSP et les classes habituelles du
jdk ça confine au labyrinthe...

Maintenant la question que je me pose est celle ci : PHP est un langage
parfaitement adapté au développements d'applications et j'ai l'impression
que certaines technologies "concurentes" (dot net, java) peuvent déboucher
sur des projets extrêmement complexes à maintenir, plus long à développer
et donc au final plus couteux.

Qu'est ce qui peut bien pousser les développeurs (plutôt les SSII) à
s'embarquer dans des galères pareilles ? L'interfacage avec des systèmes
tiers ?

Quant à la partie cliente (site web, ou application intra/extranet
utilisant un navigateur comme médium), puisqu'on utilise une technologie
sous jacente absolument identique (les servlets sont confrontés aux mêmes
problèmes que php) où est l'intérêt ???

Est-ce que tout ça découle de la perception qu'on les "décideurs" de
certaines technologies ? Y aurait-il d'un côté ce qui apparait comme
"sérieux" et de l'autre ce qui serait de "la bidouille" ?

Voila, votre analyse m'intéresse.
Analyse de la situation actuelle et anticipation du rôle que jouera PHP
dans cet univers là.

3 réponses

1 2
Avatar
John Gallet
Bonjour,

- L'universalité
Universalité de quoi ? De l'opcode généré ? Pareil pour PHP. A part sur

VMS (et peut-être OS/2 ?) PHP tourne partout.

j'ai développé ordonnanceur de production
Là aucune différence. Ca se développe en ce qu'on veut (php, perl...)


avec une partie graphique qui affichait l'etat d'avancement des
traitements en temps réel,


Il est possible de faire une couche graphique en php-gtk. C'est un
problème d'utilisation (ne pas être en client/serveur sur http mais être
en mode daemon).

- La stabilité du code
Notion toute relative. Quand tu te prends une NPE dans la tronche au

runtime, c'est pas si stable que ça... Et qui fait dans son code un
catch des out of memory exceptions ? Des mathematical exceptions
(division par zéro au hasard, ou overflow...) ? Le compilateur ne
vérifie pas qu'elles sont catchées. Au mieux c'est le finally (s'il est
présent) qui s'en débrouille (sauf si on fait un catch de Exception sans
les spécialiser ce qui perd un peu de son intérêt).

- La facilité de déploiement
Peu de différences. Si tu prends deux choses comparables, il n'est pas

tellement plus complexe de déployer PHP en ligne de commande et la
version machin chouette du JRE. Je dirais même que tu as plus de risques
d'exploser ton système avec les différentes versions de java, même si
ceci s'est un peu calmé (la version microsoft de la jvm vs la version
Sun par exemple).

Mais bon, à chaque langage ses spécificités et capacités techniques.


C'est le point principal. On ne peut à mon sens comparer ces deux
plateformes que sur des applications précises, pas dans l'absolu. Il est
probablement vain de trop s'y essayer.

c'est un langage d'une puissance extraordinaire offrant
une liberté


Pour la liberté, je ne suis pas trop de cette opinion. Va essayer de
faire un void * qu'on rigole... Ca c'est de la liberté. Vas essayer
d'afficher un nombre formatté sur 3 chifres avant la virgule et deux
après... Essaye d'obtenir la date du jour dans une String au format "JJ
MM YYYY" en moins de 3 instructions et deux instanciations inutiles...

J'ai pas dit qu'on s'y faisait pas, surtout si on n'a rien connu
d'autre. Mais pour un développeur C ou PHP (par exemple), java est tout
le contraire d'un langage où il est libre de faire ce qu'il veut (entre
autres : n'importe quoi ;-)...)

De toutes façons, posez la question à n'importe quel "pisseur de code" :
le "meilleur langage", c'est toujours celui qu'il connait le mieux. Le
"meilleur langage pour faire [insérer ici le projet]" c'est donc souvent
celui qu'il connait le mieux aussi (déjà parce que ça lui permettra de
justifier son Compte Rendu d'Activités à la fin du mois).

et une sécurité de programmation inégalable.


Notion à définir précisement. On peut toujours écrire du code "de merde"
qui se vautrera lamentablement à intervalles réguliers et ce, quel que
soit le langage. C'est le développeur qui fait la différence dans la
qualité du code produit, pas la plateforme.

a++
JG

Avatar
loufoque
Message d'origine de Patrice :
- Essaie de développer une application "temps réel" en ligne En PHP pour
voir (A titre d'exemple personnelle, j'ai développé ordonnanceur de
production avec une partie graphique qui affichait l'etat d'avancement des
traitements en temps réel, avec signalement des plantages). Autre exemple,
un jeu en ligne en PHP me parait hasardeux
Tu compares un applet java embarqué sur une page web et une application

html générée par php. Bien évidemment, c'est pas vraiment comparable.

Avatar
loufoque
Message d'origine de John Gallet :
Celui qui me trouve le
besoin de faire un arbre d'héritage à 3 niveaux pour accepter 10
arguments en entrée et recracher un flux texte ou un graphe après 4
SELECT en jointure devrait se poser de sérieuses questions sur sa
capacité à écrire du code en adéquation avec le besoin réel.
Le besoin réel on s'en fou ce qui est important c'est que le code ait

une magnifique structure abstraite.

1 2