IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Interêt de Java face à PHP


Sujet :

Développement Web en Java

  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 77
    Par défaut Interêt de Java face à PHP
    Bonjour,

    Avant de commencer, j'aimerai signaler que je n'ai pas dans l'intention de lancer un enième débat Java/PHP. Ce n'est pas le but de mon post.

    J'utilisais pas mal le langage Java quand il s'agissait de développer des applications et je dois dire que j'appréciais énormement ce langage, et couplé avec Eclipse, j'avais une productivité vraiment très bonne.
    Je me suis ensuite tourné vers le développement web, avec entre autre un jeu web PHP. J'utilisais donc des technologies telles que APACHE/PHP5, PostgreSQL, Javascript, HTML/CSS. J'appréciais beaucoup la rapidité avec laquelle on pouvait mettre en place un projet utilisant ces technos. Le PHP, que je considére maîtriser relativement correctement, m'a permit de développer de façon efficace des projets de taille moyenne.

    Cependant je suis aujourd'hui confronté à un problème. Je souhaite me lancer dans un projet d'une ampleur plus importante. Pour faire simple, il s'agit d'une plateforme web rassemblant divers services communiquant entre eux (blogs, réseaux sociaux...). Bref un projet bien à la "mode web 2.0".
    Le choix des technologies utilisées et de l'architecture mise en place aura donc une grosse importance.
    Alors que dans les projets que j'ai réalisé jusqu'à aujourd'hui, ces choix relevé encore des préferences personnelles.

    Initiallement je comptais partire sur du PHP5 pour réaliser ce projet, car j'ai une assez bonne experience avec et je serai en mesure de réaliser ce projet avec.
    Sauf que je craints que les impératifs techniques (clustering, nombre d'utilisateur très élevé, communication entre les différents services web...) ne me fassent renoncer à ce choix.

    Je me tourne donc vers Java. Le problème est que je n'ai aucune experience dans son utilisation dans le développement Web. Même si je pense pouvoir apprendre assez rapidement, je suis cependant +/- perdu face à la grande différence avec PHP.
    J'aimerai donc développer ce projet avec des technologies web les plus standards. Je ne suis pas un adepte de l'utilisation d'une multitude d'API tierce.
    En PHP, je développais moi même mes propres framework et outils.
    Or là je suis confronté à une multitude de technologies et de framework différents.

    Déjà, j'entends beaucoup parler de Webservice. Mais qu'est ce exactement ?
    Et les Beans, les taglibs etc... ?
    Ensuite, si l'on veut développer un site web sans avoir recours à Struts etc...que doit on utiliser ?
    Actuellement j'ai mis en place un serveur Tomcat et je m'initie aux Servlets.

    Bref, pour l'instant, j'ai encore du mal à voir les interêts que j'ai à utiliser Java plutôt que PHP ? Toute cette diversité de techno est assez rebutant pour quelqu'un venant de PHP et je craints que développer mon projet avec des technos Java ne soit plus complexe et long que si je le faisais en PHP.
    En PHP, j'écrivais mes classes, sous forme de scripts PHP, executés par le serveur et qui me renvoyaient sous forme HTML le résultat de mes scripts.

    Quels sont donc les avantages à développer un projet en Java ? Quelles technologies "standards" dois-je alors utiliser ? Par standard, j'entends des API qui ne soit pas développées et utilisées par un petit nombre de personne, peu maintenues, et donc que je sois bloqué en cas de "bug".
    De plus j'aimerai aussi utiliser dans mon projet du JavaScript et de l'AJAX. Je faisais ça de façon tres simple et efficace mais avec Java visiblement les solutions sont multiples.

    Merci d'avance pour vos réponses

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    je te conseilerais de le faire en PHP si tu ne connais pas du tout Java.
    et puis d'experience les frameworks de Java sont longs a apprendre.
    Aussi Struts s'integre mal avec Javascript.

    en fait pour avoir fait du ASP.NET, du Java et du PHP,
    le plus embetant etait de developper sur une plateforme puis de changer parce qu'un client n'avait pas le bonne infrastructure...

    donc mon raisonnement a été le suivant, le point commun c'est Javascript et HTML, et j'ai fait ca pour mon dernier projet... seul le code metier est en ASP.NET, Java ou PHP ce qui est relativement facile a porter... le format d'echange étant JSON entre le code metier et la page html. Le resultat est superbe, j'ai utilisé JQuery et franchement c'est splendide.

    Les framework Java ont pour sale habitude d'abstraire le code html en rendant assez difficile le javascript, avec pour slogant que n'importe qui peut coder une appli web...

    et pour le code metier, mon experience montre que Java ou ASP.NET c'est pareil. Pour PHP, j'ai moins l'habitude mais c'est pareil, tous les langages se ressemblent maintenant, les libs dispo etant la principale distinction, et il y en a beaucoup pour PHP...

    a+

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut
    J'ai le même problème. Hors du J2E, mes clients d'applications professionnelles lourdes ne veulent rien entendre (banques, assurances). Ils ne sont peut-être pas tous comme ça.

  4. #4
    Membre émérite Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Par défaut
    En fait, à mon avis, ce n'est pas un problème Java ou php. Si on compare du jsp pur avec du php, c'est à-peu-près identique (à la configuration du serveur près).

    Non là d'où viens la complexité c'est des frameworks, pas du langage. Pour l'instant je ne faits que du java, mais en regardant le framework Zend pour php, on retrouve à peu de choses près la même chose que dans les frameworks java (genre spring).

    Donc la question c'est plus s'il est utile d'utiliser tous ces frameworks.



    > Déjà, j'entends beaucoup parler de Webservice. Mais qu'est ce exactement ?

    Au lieux de retourner une page web, ça retourne un résultat au format XML souvent, c'est aps fait pour être regardé par un humain mais par une machine, rien du bien compliqué.

    > Et les Beans, les taglibs etc... ?

    beans, de nos jours, c'est une classe java qui suit les conventions java (get/set).
    tagslib c'est la définition de balises qui en internes sont remplacée par du code. C'est pour faire des jsp qui n'ont pas de code directement.

    > Ensuite, si l'on veut développer un site web sans avoir recours à Struts etc...que doit on utiliser ?

    Quoi? Ne pas utiliser le duo Spring2.5/Struts2???
    Comme dit du jsp pur, c'est facile. Sinon JSF est un standard Java, mais c'est complexe aussi.

    > Aussi Struts s'integre mal avec Javascript.

    Hum, je ne vois pas le problème. Peut-être l'utilisation des tags struts?

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Sans être un expert de php, il s'agit plutôt d'un outil pour faire des sites dynamiques, pas vraiment adapté pour des applications complexes.
    On peut comparer php avec jsp, c'est presque pareil, avec les mêmes limites...

    L'approche par couches qui semble être la base de ton nouveau projet fait pencher la balance vers J2E, mais il est certain qu'on n'est pas expert J2E en quelques jours, il y a un apprentissage conséquent, mais tu as de grandes chances de le récupérer dans la maintenance....
    C'est vrai aussi que sur ce forum, tu trouveras de l'aide...
    Ça dépend du temps que tu veux consacrer à l'apprentissage

    Pour le reste, Jester à tout dit...

    Pour mieux t'aider, peux-tu expliquer plus précisément ce que tu veux faire ?

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre émérite Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Par défaut
    > L'approche par couches qui semble être la base de ton nouveau projet fait pencher la balance vers J2E

    Et encore, avec Zend Framework ça semble simple de faire des webservices, donc on peut aussi faire des couches sur des machines différentes (serveur apache/php5 comme serveur d'application? amusant).

    Le seul point qui pourrait être embêtant c'est de recharger et de compiler à chaque fois tous les scripts php utilisés, mais je doit être naïf de penser qu'il n'y a pas un système de cache de nos jours. Il ne me semble pas y avoir non plus de gestion de variable d'application (encore une fois ça doit être mon incompétence).

  7. #7
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Sans être un expert de php, il s'agit plutôt d'un outil pour faire des sites dynamiques, pas vraiment adapté pour des applications complexes.
    On peut comparer php avec jsp, c'est presque pareil, avec les mêmes limites...
    Je suis un développeur php qui est tombé par hazard sur ce sujet et cette phrase m'interpelle.
    Qu'est ce que tu appele les limites de php ?

    Je développe mes sites en php pur, je n'ai jmais utilisé de framework et je ne voit pas vraiment ce qu'ub framework peut apporté de plus ?
    Au contraire moi j'aurais pensé qu'en utilisant un framework on serai limité aux possibilitées de celui ci alors qu'en php pur on fait ce que l'on veut et on est 100% maitre de son code.

  8. #8
    Membre émérite Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Par défaut
    Citation Envoyé par Seb33300 Voir le message
    Je développe mes sites en php pur, je n'ai jmais utilisé de framework et je ne voit pas vraiment ce qu'ub framework peut apporté de plus ?
    Au contraire moi j'aurais pensé qu'en utilisant un framework on serai limité aux possibilitées de celui ci alors qu'en php pur on fait ce que l'on veut et on est 100% maitre de son code.
    C'est parce que la culture des framework n'est pas encore inscrite dans la communauté php. Ca viendra au fut et à mesure que php sera utilisé pour des projets plus ambitieux.

    Les frameworks (comme les design pattern qu'ils implémentent) servent à simplifier la maintenance et l'extensibilité d'un projet conséquent.

    En dessous de 10k de code on peut s'en passer.

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Seb33300 Voir le message
    Je suis un développeur php qui est tombé par hazard sur ce sujet et cette phrase m'interpelle.
    Qu'est ce que tu appele les limites de php ?
    Je développe mes sites en php pur, je n'ai jmais utilisé de framework et je ne voit pas vraiment ce qu'ub framework peut apporté de plus ?
    Au contraire moi j'aurais pensé qu'en utilisant un framework on serai limité aux possibilitées de celui ci alors qu'en php pur on fait ce que l'on veut et on est 100% maitre de son code.
    Comme tu le dis, tu développes des sites, pas des applications (et ne vois pas là un dénigrement, je ne cherche pas à abaisser, si je devais développer un site, j'utiliserais php également) et à mon avis, il y a de grosses différences entre les 2.
    Certes, pour développer un site avec pages dynamiques, le php est un excellent langage (jsp serait très bien aussi, c'est plus une question de connaissance de la techno) mais pour ce qui est du découpage des couches "applicatives", ça me parait léger (mais je ne suis pas expert php, j'ai testé la v5 à l'époque où elle est sortie et ça n'a pas fonctionné comme prévu du point de vue de la propagation d'objets)
    Dans tous les cas, je n'aime pas le panachage de code html et php (ou java), je préfère de loin l'approche MVC, plus facile à maintenir, plus facile à distribuer en terme de rôles, architecte, développeur, designer etc...
    L'aspect multi-langue est très bien géré également dans les frameworks tels que struts, jsf.
    Pour la persistance des données, ejb3 me parait un must, ou hibernate directement quand on n'a pas de conteneur ejb sur son serveur.
    Bref, une multitude d'api qui permettent de développer des applications robustes (presque) facilement.

    Maintenant, tu as raison en disant que le framework limite à ce qu'il sait faire, mais les limites sont rarement atteintes.
    La plus grosse contrainte est certainement le temps d'assimilation...

    Voilà, c'est mon avis, désolé de t'avoir interpelé, c'est pas trop grave ?
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Par défaut
    Ce n'est pas facile de faire une comparaison pertinente.

    Php est uniquement serveur déjà, alors que java est serveur mais aussi client avec les appelets qui permettent d'integrer des petites applications dans les pages web

    Ensuite côté serveur, de ce que j'ai pu comparer java est nettement plus puissant mais c'est plus cher à héberger.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 433
    Par défaut
    normalement , une application web qui tourne avec du java est couplé forcément avec des frameworks qui permettent la séparation des couches n-tiers de ton application, et donc struts ou jsf sont essentiels à l'utilisation de java dans les applications web. tu peux utiliser les servlets/jsp , mais coté maintenance ça laisse encore à désirer

    L'idée est de ne plus faire un code de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
     
    mysql_connect('db1') couche métier
    echo "<input type="select" name="blabla">" couche Presentation
     
    echo "<option>" couche presentation
    if(res->cd)
    echo "erreur applicatibr"  couche controle
    echo $res->cd;
    echo "</option>" couche presentation
    ?>
    donc on a crée des frameworks qui servent à rendre complétement indépendants ces 3 couches

    Struts ou jsf faisant generalement la liison entre la couche presentation -> et la couche controle , spring faisant la liaison entre le controle et le métier , et hibernate faisant la liaison entre le métier et la base de données.

    l'interet principale a faire ceci , c'est de permettre à d'autres développeur qui n'ont jamais travaillé sur une application de pouvoir redévelopper des modules dessus, j'ai déja travaillé sur une grosse appli php et je peux te dire que sa maintenance applicative etait tres tres dure , pour pouvoir se retrouver dans une page de 1600 lignes ou sont mélagés métier controle et presentation ce n'est pas évident du tout.

    ensuite un taglib c'est une balise struts ou jsf .c'est de l'html personnalisé relié avec un attribut java dans une classe. l'aspect dynamyque de ta page est externalisé vers les classes java.

    Webservice : c’est pour faire communiquer deux applications pas forcément web , c’est un peu comme corba je ne crois pas que tu auras besoin de ça

    Les beans : ce sont les classes java avec lesquelles tu relies tes pages jsp.

    Pour le serveur d’application que tu devrait mettre je te conseille websphere , le probleme c’est qu’il est payant , mais c’est de loin le plus performant , renseigne toi sur jonas ou jboss je crois qu’il est free.

    Pour les controles de surface javascript , si tu utilises struts ça te facilite la vie d’une maniere incroyable tu n’as qu’a utiliser un nombre incalculables de controles déjà implémentés à ce framework

    Ensuite toutes ces techno que je t'ai cité sont utilisés generalement pour les applications java qui tournent sur le web apres si tu veux faire du j2ee pour les portails renseigne toi sur websphere portal qui est un gestionnaire de contenu j2ee un peu comme joumla qui est tres tres bon et que je ne connais pas beaucoup

Discussions similaires

  1. [Système] Exécuter un programme Java en PHP
    Par sylsau dans le forum Langage
    Réponses: 10
    Dernier message: 26/04/2006, 20h02
  2. Agenda partagé : Choix entre Java et PHP ?
    Par joxbl dans le forum Général Conception Web
    Réponses: 19
    Dernier message: 31/03/2006, 13h55
  3. [Conception] Connecteurs Java Notes/PHP
    Par lebebert dans le forum Général Java
    Réponses: 10
    Dernier message: 02/02/2006, 08h41
  4. Exécution java et php
    Par KinF dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 04/11/2005, 15h02
  5. Création d'un chat : java ou php ?
    Par bakonu dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 13/01/2005, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo