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 :

Java ou PHP pour un "gros" site Web ?


Sujet :

Développement Web en Java

  1. #1
    En attente de confirmation mail
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut Java ou PHP pour un "gros" site Web ?
    Bonjour,

    Je connais bien PHP. J'aimerais construire un nouveau site, mais en JAVA (Pour me former et faire un truc à priori plus "propre").

    Mais j'ai quelques à priori :

    - Il semble beaucoup plus difficile de trouver un hébergeur avec une solution clef en main JAVA. Par exemple 0VH ne le fait pas.

    - Il semble beaucoup plus fastidieux de faire des mises à jour sous JAVA (puisqu'il semble qu'il faille recompiler tout le site dès qu'on veut changer la moindre virgule dans une page).

    - Il semble plus difficile de trouver des API pour du SOAP ou du captcha par exemple.

    - Ca semble plus lent que PHP ? Si ce n'est pas le cas connaissez-vous des gros sites développés en JAVA ? Comment est développé Facebook par exemple ?

    Pourriez-vous m'éclairer sur ces points SVP ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 55
    Points : 66
    Points
    66
    Par défaut
    Bonjour,
    -Pour les hébergeurs, tu trouve plus facilement des solutions PHP, mais avec une recherche approfondie, tu trouveras une hébergeur Java.
    - Pour les mise à jour, c'est plus facile en PHP, surtout si tu travaille avec dreamwaver, en Java tu ta compiler ensuite tu déploie sur le serveur. En utilisant un outils comme hudson, tu pourra programmer, il fait tout le boulot.
    -Côté rapidité, je ne suis pas d'accord avec toi, ce n'est pas le langage qui définit la rapidité des requêtes mais comment sont développées.
    - Un exemple, le site Voyages SNCF est développé avec les technologies J2EE.
    et pour finir, regarde ce tuto : http://jlafosse.developpez.com/livre...glassfish/php/
    tu peux coupler les deux techno ensemble
    ------------------------------------------------------
    La connaissance s'aquiert par l'expérience, tout le reste n'est que de l'information (A. Einstein)

  3. #3
    En attente de confirmation mail
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut
    -Pour les hébergeurs, tu trouve plus facilement des solutions PHP, mais avec une recherche approfondie, tu trouveras une hébergeur Java.
    -> Oui je me doute bien Mais est-ce que tu aurais par exemple 2 exemples concrets à me donner ?

    - Pour les mise à jour, c'est plus facile en PHP, surtout si tu travaille avec dreamwaver, en Java tu ta compiler ensuite tu déploie sur le serveur. En utilisant un outils comme hudson, tu pourra programmer, il fait tout le boulot.
    -> dreamwaver c'est bien pour les petits sites vitrines (et encore), là je parle de "gros" site. Hudson ? Ca m'a l'air intéressant je vais regarder merci

    -Côté rapidité, je ne suis pas d'accord avec toi, ce n'est pas le langage qui définit la rapidité des requêtes mais comment sont développées.
    -> Hum... tu devrais te documenter Ca c'est la théorie. Pourquoi les meilleurs moteurs 3D sont-ils écrits en assembleur alors ?

    - Un exemple, le site Voyages SNCF est développé avec les technologies J2EE.
    et pour finir, regarde ce tuto : http://jlafosse.developpez.com/livre...glassfish/php/
    tu peux coupler les deux techno ensemble
    -> Oui ça pourrait m'aider si ça coince mais j'aimerais tout faire en JAVA, sinon mon projet perd de son intérêt ludique

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    1) logique. PHP est une page web interprétée par le serveur web pour avoir un contenu dynamique et est adapté à ça. Java est une application, tournant sur un conteneur et qui, accessoirement, génère des pages web. Ceci implique que l'appli java est constament en mémoire, alors que la page php est déchargée dès le résultat employé. => ça nécessite plus de ressources sur le serveur. Ces ressources coutent de l'argent. De plus ils est assez compliqué de faire du java en mutualisé, un serveur java ayant quelques difficultés à faire tourner beaucoup d'applications simultanément

    2) ben oui, c'est une application

    3) ha bon? Ce ne sont pas les librairies qui manquent en java

    4) java ne fait pas de pages web. JSF en fait, servlet en fait, jsp en fait. Le deux derniers sont compilés en mémoire => gain de temps d'interprétation. Après, c'est une question de la qualité du code qui a été mis dedans. Si le dév a mis des 100aines de taglibs pour faire son truc, oui ca va être une usine à gaz

    Des exemples de site en java à fort trafic? Le site web du gouvernement belge pour les déclarations fiscales en lignes. Il avale 2 millions (si ma mémoire est bonne) de déclarations en quelques semaines, avec un gros pic les deux derniers jours de la limite légale. I est coté avec struts sur le front end. Exemple typique d'un application dont la page web n'est qu'une composante (ça stocke les dossier, donne des garanties de non répudiation, identifie le citoyen par carte d'identité électronique, transfère les dossiers aux agents, etc)

    Quand à facebook, techno propriétaire, spéciale clutering, bases de données distribuées, etc :p

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 86
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par bigsister Voir le message
    -> Oui je me doute bien Mais est-ce que tu aurais par exemple 2 exemples concrets à me donner ?
    Google app engine, playapps, amazon ec2, cloudfront, etc... Et beaucoup sont gratuits en plus

    quant à facebook, ils font un mix de technos propriétaires ou pas en front end, mais tout le back end c'est du pur clustering avec des solutions open sources, Hbase et hadoop meme s'ils osnt encore sous cassandra. De même pour twitter qui utilisent massivement hadoop pour faire du map reduce.
    Sinon pour moi la meilleure façon de faire du web en java, c'est d'eviter les frameworks stateful à composants du genre JSF ou certains jsp. C'est du desktop adapté au web et c'est pas trop ça. Utilise des frameworks comme grails ou play, ou spring mvc, dans lesquels tu fait du du web à la sauce html/js/css, et je trouve que ça marche mieux. Mais ce n'est que mon avis. Même si je suis un assidu utilisateur de gwt.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    946
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 946
    Points : 1 849
    Points
    1 849
    Par défaut
    Citation Envoyé par bigsister Voir le message
    - Il semble beaucoup plus fastidieux de faire des mises à jour sous JAVA (puisqu'il semble qu'il faille recompiler tout le site dès qu'on veut changer la moindre virgule dans une page).
    Vrai. En même temps, compiler un WAR se fait facilement avec Eclipse et il n'y a plus qu'à copier le fichier. Ou utiliser Hudson. De plus, envoyer une seule page est risqué : on peut oublier des dépendances, avoir deux pages dans des versions différentes etc...

    Citation Envoyé par bigsister Voir le message
    - Il semble plus difficile de trouver des API pour du SOAP ou du captcha par exemple.


    Citation Envoyé par bigsister Voir le message
    - Ca semble plus lent que PHP ? Si ce n'est pas le cas connaissez-vous des gros sites développés en JAVA ? Comment est développé Facebook par exemple ?
    Il y a quelques années, j'avais fait un test. PHP était plus rapide avec peu d'utilisateurs, mais ses performances se dégradaient rapidement avec la montée en charge. A l'inverse, Java commençait plus lent mais restait stable. Ceci dit, ce test date de plusieurs années et ne concernait qu'un exemple.
    Les peformances comparées de Java et PHP sont un vaste sujet. J'ai travaillé avec les deux, et la lenteur venait toujours d'un problème de conception lors d'un projet où les performances avaient été négligées. (Il n'y a jamais d'obligation de performances dans les cahiers des charges.)
    A mes yeux, PHP étant dépourvu d'une gestion correcte des threads, Java est mieux outillé pour gérer des cas complexes. (Notamment tout ce qui concerne des interactions en temps réel entre utilisateurs.) Malheureusement, beaucoup d'applications Java sont encombrées de code peu soigné conçu par des développeurs ignorant les bonnes pratiques de leurs outils (ex : tous les appels à Swing doivent être effectué depuis l'EDT mais les développeurs n'y font pas attention, il faut configurer le lazy loading sous hibernate ou ça rame).
    Au final, je ne pense pas que les différences de performances soient un critère de choix entre PHP et Java.

  7. #7
    En attente de confirmation mail
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut
    Merci pour ces réponses
    Effectivement je comprends maintenant que JAVA a besoin de plus de ressources et n'est pas dispo en mutu chez 0VH... Néanmoins dommage qu'ils ne le proposent pas en release pour des dédiés, c'est tellement pratique...
    Citation Envoyé par samkiller Voir le message
    Google app engine, playapps, amazon ec2, cloudfront, etc... Et beaucoup sont gratuits en plus
    -> J'ai regardé, playapps et amazon ec2 ne sont pas donnés.
    -> Amazon permettrait de démarrer gratuit
    -> Google aussi :
    App Engine costs nothing to get started. All applications can use up to 500 MB of storage and enough CPU and bandwidth to support an efficient app serving around 5 million page views a month, absolutely free. When you enable billing for your application, your free limits are raised, and you only pay for resources you use above the free levels.
    Je vais voir de ce coté là...

    Donc si je résume : Pas de problème pour faire du Web en JAVA, à condition d'y mettre les moyens (pour des serveurs plus puissants) ?

    Pour le reste, disons que la carotte c'est aussi pour moi de me dire que je pourrai sortir une version application et une version Web juste en changeant mes UI... mais est-ce possible/faisable facilement dans la réalité ?

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par bigsister Voir le message
    Merci pour ces réponses
    Effectivement je comprends maintenant que JAVA a besoin de plus de ressources et n'est pas dispo en mutu chez 0VH... Néanmoins dommage qu'ils ne le proposent pas en release pour des dédiés, c'est tellement pratique...
    Sur un serveur dédié, tu aura un OS, point barre. Pas de java ni de PHP. a toi de te logguer dessus et d'y installer ce dont tu as besoin, c'est pour ça qu'on utilise du dédié

    -> Amazon permettrait de démarrer gratuit
    -> Google aussi :
    Je vais voir de ce coté là...
    Attention que des solution comme mazon, etc, tu paie à la journée d'usage. amazon EC2 te fournis un service "gratuit" dans le sens ou tu peux t'enrregistrer, mettre tes informations bancaire et "si tu ne dépasse pas un certaine barre d'utilisation", rien ne te sera facturé. Google de son coté, fournis des possibilité "développeur" pour faire tourner une seule App gratuitement. Bref, tu a un environnement de dev gratuit, mais si tu passe en prod, tu paie.
    Donc si je résume : Pas de problème pour faire du Web en JAVA, à condition d'y mettre les moyens (pour des serveurs plus puissants) ?
    Et comme on dit, qu'est-ce que le cout d'un serveur par rapport au coup d'un développeur

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 55
    Points : 66
    Points
    66
    ------------------------------------------------------
    La connaissance s'aquiert par l'expérience, tout le reste n'est que de l'information (A. Einstein)

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    946
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 946
    Points : 1 849
    Points
    1 849
    Par défaut
    Citation Envoyé par bigsister Voir le message
    Donc si je résume : Pas de problème pour faire du Web en JAVA, à condition d'y mettre les moyens (pour des serveurs plus puissants) ?
    La configuration minimum pour faire tourner Java est plus élevée, mais pour des applications qui gèrent un gros volume, cette configuration minimum n'est plus d'actualité.

    J'ai eu un cas où le manque de threads en php m'a contraint à faire des appels AJAX au serveur à intervalles réguliers. Ça peut facilement tripler le nombre d'appels, voir le multiplier par 100 selon l'utilisation et la fréquence de rafraichissement...

  11. #11
    En attente de confirmation mail
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut
    Merci pour ces précisions.

    Effectivement la dedibox semble une bonne solution (Pas trop cher, performances/trafic, et ils s'occupent de l'admin). Après je vais chercher des retours utilisateurs pour voir si ça tiens ses promesses... quelqu'un ?

    Est-ce que quelqu'un a déjà monté son site JAVA sur un dédié 0VH en release 1 ou 2 ? Est-ce qu'on sort des releases en faisant ça ? Ca serait la solution idéale pour moi car je connais déjà bien leur fonctionnement.

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