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

Conception Web Discussion :

Choix d'une technologie : J2EE ou PHP ou Python ?


Sujet :

Conception Web

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 103
    Points : 66
    Points
    66
    Par défaut Choix d'une technologie : J2EE ou PHP ou Python ?
    Bonjour,

    Je suis étudiant et je doit concevoir et développer une application web. J'ai des difficultés pour choisir les technologies.

    Je vais essayer de vous décrire le site à développer bien qu'il ne m'est pas permis d'en parler en profondeur. C'est une plateforme de rencontre et de réseau social. Chaque personne aura divers outils pour communiquer. Elle devra intégrer également des services web et supporter une charge de 5000 connections simultanées (disons que c'est une estimation évidemment il difficile de prévoir la charge avant le lancement). Bien sur la plateforme devra être évolutive, maintenance facile, transactionnelle et sécuritaire. Le site web et certain service devra également être accéssible depuis les technologies mobiles (téléphone, ...). Il y aura également du streaming audio et vidéo.

    Le but n'étant pas de réaliser toutes les fonctionnalités d'un coup mais de les intégrer petit à petit. D'ou l'évolutivité.


    Bref, j'ai le tour des langages les plus connus python, J2EE, PHP, .NET.

    .net ne convient du fait que le serveur est sur Linux et que j'avoue ne pas connaître particulièrement.

    Il me reste donc J2EE et PHP et python. J'avoue ne pas savoir quoi choisir. Aujourd'hui, avec la montée de PHP5 au niveau de l'objet, certaines personnes pensent que PHP a atteint pratiquement le même niveau que Java sans les modèles de composant type package, ejb, ... Mais avec une bonne méthodologie au niveau du développement il est possible de combler ce manque. PHP est également un langage permissif ce qui peut poser quelques problèmes au niveau sécurité.

    D'autre part, python j'avoue ne pas connaître python niveau du développement web donc à moins qu'il est un bon framework je ne pense pas partir sur du python

    Enfin J2EE est le langage classique pour le développement d'application dite "professionnelle". Il est assez lourd (certain me ) a mettre en place mais c'est un langage défini comme sûr et fiable (gestion obligatoire des erreurs, etc...).


    Après il y a la possibilité d'utiliser des Framework Symphonie, Jelix (mais cette solution est en version béta donc pour une telle application est peut être inadéquate) pour PHP et Struts, Spring, Jboss Seam pour J2EE. Il est également possible de ne pas en utiliser et partir notemment J2EE sur les ejb,...

    J'avoue ne pas savoir sur quels technologies commencer le projet (le but n'étant pas dans quelques année devoir tout récrire) tellement il y d'argument avancer les uns par rapport au autre. Il reste l'expérience ce que je n'ai pas.

    Alors j'ai besoin de votre expérience pour me dire quels sont les meilleurs solutions et pourquoi?

    J'espère avoir été clair et pas trop bavard

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Tu fais ça pour un stage ?
    Si tu regardes juste ce que peut t'apporter ce stage comme expérience, le fait de choisir entre Java, PHP ou Python ne t'apportera pas la même expérience.
    Ensuite il y aussi des autres points à prendre en compte : est ce que tu développes ça seul ou en équipe ? Est ce que cette équipe éventuelle continuera de maintenir l'application après ton départ ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 103
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    En fait c'est plus qu'une simple expérience parce que c'est un stage de fin d'étude et de préembauche par conséquent je continuerai à maintenir et faire évoluer le projet. L'équipe sera composée de quatre développeurs. En fait l'entreprise est une jeune TPE et nous sommes la première équipe informatique. Le but est de concevoir une plateforme qui tienne la route dans le temps. Pas devoir réécrire le code du site web après quelques années parce que l'on mal choisie les technologies au départ. De plus dans un premier temps, ce n'est pas de développer entièrement la plate forme (vu le projet ce serait du suicide) mais construire les bases et de lui ajouter continuellement des fonctionnalités. Donc il faut une architecture logicielle qui tienne la route et une technologie qui puisse convenir également. Il y a aussi certain besoin: streaming notemment, module de paiement en ligne, divers web service...

    Bref, le problème pour moi actuellement ce n'est pas la technologie à proprement parler mais plutôt du choix de la technologie. Quel technologie pour quel type de projet? Mon expérience ne me permet pas de faire la part des choses. Au départ j'étais parti sur une application J2EE mais après quelques recherches sur le web j'hésite. Certain disent que J2EE est trop lourd, trop lent aujourd'hui. PHP5 commence à concurencer J2EE et DotNet. Pour python j'ai lu pas mal de bonnes choses sur lui mais j'avoue ne jamais avoir développé une application web avec lui.

    Mon but est de réellement choisir une technologie qui puisse nous permettre de poser les bases de l'application et de la faire évoluer dans le temps.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Comme tu pourras le voir dans le débat PHP contre Java , il y a plein de choses qui rentrent en compte.
    Si l'application est un site web qui sera chez un hébergeur sur un serveur dédié, il sera plus facile à mettre en place en PHP. Par contre si c'est plus une utilisation "locale" au sein d'une entreprise, peut-être que le Java sera plus utile.
    Ensuite, des développeurs Java "coutent" plus chers que des développeurs PHP. Peut-être que la base du site peut se faire en PHP et les évolutions en Java

  5. #5
    Membre du Club
    Profil pro
    Dev
    Inscrit en
    Février 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Février 2005
    Messages : 60
    Points : 64
    Points
    64
    Par défaut
    pour un projet si large Java.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 103
    Points : 66
    Points
    66
    Par défaut
    Merci pour votre intérêt


    Pour ce qui de l'hébergement, il est pratiquement sur que cela sera chez Adistar.


    J'ai lu attentivement le débat php vs java qui est très intéressant et qui s'étale sur 3 ans. Beaucoup prêche pour leur paroisse et certain avance des arguments très interessants. Pour ma part je regrette qu'il 'y est pas d'autre langage pris compte dans le débat notemment python (qui est un langage interprété à la fois procédurale et objet un peu comme php, il parait qu'il serait meilleur que J2EE et .Net) ou encore Ruby On Rails qui est très facile d'accès pour des débutants et qui permet de développer rapidement des sites Web. Le mieux serait d'organiser des benchmark temps de développement, temps d'exécution, test de charge etc... et les publier sur le site. Surtout qu'il y a une grande communauté sur le site developpez.com avec des experts dans plusieurs langages. Cela donnerai un plus au site qui est déjà bien rempli au niveau cours, tuto, communauté... Je pense que cela manque et cela mettrais tout le monde d'accord ou en tout cas on pourrait partir d'exemple et étude concrète pour débattre sur le choix d'une technologie. Enfin ceci est peut etre une idée en l'air...

    Quoi qu'il en soit je vois que je suis pas le seul à me poser la question. Personnellement j'ai souffert d'un développement en php (et j'ai pu lire cela également sur le débat que je ne suis pas le seul). Sur le développement d'un site OsCommerce où une SSII et un développeur freelance avait développé des module chacun de leur côté. Quand je suis arrivé sur cette appli déjà elle ne ressemblait plus à une OsCommerce. Elle était complétement bugué et pour la débugué je peux vous assurer que j'ai failli m'arracher les cheveux. Sans vouloir en rajouté (quand même un peu ) cette SSII a complétement déstructuré l'application. Etonnant pour une société de professionnelle. Grâce à eux on ne pouvait acheter qu'en France. En bref, tous cela pour dire que php est un langage puissant, avec de nombreuse api contrairement à ce qui a pu être dit sur le débat mais qui reste très dangereux. En effet, sans une méthodologie (doc, archtitecture logicielle, collaboration, ...) rigureuse et attentive, on risque de se disperser rapidement et aboutir à un projet instable.

    Ceci n'est évidement pas un problème pour de petit projet où l'on a le temps de bien s'attarder sur la structure de l'application, la gestion des ereurs, .... Cependant sur les gros projets je pense Java est mieux. Pourquoi? Parce qu'il permet d'aider le développeur à structurer son appli. C'est un langage typé et contraignant tant mieux. En effet, cela permet de se concentrer plus sur la logique métier et sur son architecture. Il moins de perte de temps car le débuggage est plus rapide et plus simple; la gestion des erreurs est obligatoire, typage des viarables, complétement orienté objet... PHP il faut chercher et croyer moi quand vous devez naviguer à travers une dizaine d'include pour vous rendre contre qu'il y a avait une erreur de précision sur un nombre car les calculs était légèrement différent; c'est long très long.

    Ceci est mon avis bien entendu maintenant cela reste à démontrer.

    Je crois que je reste sur ma première idée J2EE au vue de l'ampleur du projet et des objectifs de l'entreprise. Encore une fois merci pour votre intérêt. C'est sympa

    Arf oui j'oubliais une chose qui m'a énervé un peu par rapport au débat. Qui dit que le dévelopement Java coûte cher premièrement il existe des produits open source en Java que se soit tomcat(qui était utilisé lors de mon stage à l'armée donc je pense pas que se soit de la dob), Jboss, Jonas, OpenEjb.... Java est passé sous licence gpl me semble t il. Et il existe de nombreux sites ou l'on peut télécharger des CMS, eboutique, code open source J2EE (http://java-source.net/, sourceforge par exemple). Certes la communauté autour de l'open source est moins importante que php mais elle existe. Pour ma part certaine partie du code site que je vais développer passeront certainement sous GPL. C'est en discussion mais c'est mon souhait. Bref, oui les SSII se font de l'argent avec J2EE comme il se font de l'argent avec PHP. Il revient à tout à chacun de publier son code sous forme GPL ou autre. Voila Seule les développeurs J2EE coûte cher (quoi que dans certain cas ce n'ai pas toujours le cas lol) oui mais l'environnement peut ne rien couter pour peut que l'on aime le libre... Donc je ne pense que cela coûte si cher. Voila mon petit coup de gueule. Il revient à tout à chacun de faire du libre car rien et j'en suis certain rien ne vous empêche de publier du code source sous une licence GPL, BSD, ... que se soit en java ou en php. Voila pour moi cela ne rentre le coût (enfin pas complétemnt) ne rentre pas forcément en compte dans le choix de la technologie pour un projet.

    Lol j'espère ne pas avoir trop parler... S'il ya des critiques n'hésita pas je suis ouvert

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut
    Je ne connais pas Python et je n'ai travaillé qu'avec php 4, une partie de mon opinion est donc fondée sur ce que j'en ai appris par des collègues.

    Je pense que pour un projet de grande taille comme celui-ci, Java est un très bon outil, parce qu'il permet de mettre en place une bonne architecture et d'utiliser des outils éprouvés. Il y a certes un coût supplémentaire initialement au développement, mais qui est plus que compensé par la réduction des coûts de maintenance.

    Cependant, si Java permet de bien structurer une application, et permet l'usage d'outils efficaces, cela ne se fait pas tout seul! J'ai en effet vu des applications en Java à l'architecture inexistante, car personne ne s'en était soucié. Le record actuel : 3 jours pour changer un simple message d'erreur...
    Quelle que soit la technologie retenue, il faut donc décider d'une architecture avant de commencer à coder. J'estime par exemple que sur mon projet actuel, l'équipe aurait pu être moitié moins importante et accomplir le même travail (sans failles de sécurité!) si cela avait été fait.
    Pour une application WEB, je suis plutôt fan des architecture MVC (Modèle, Vue, Contrôleur, avec trois couches présentation, service et données). Le framework Spring peut aider à mettre en place une telle architecture. Pour l'accès aux données, Hibernate est un excelllent outil, de même que Struts ou Jsf pour la présentation. Je ne peux trop vous recommender de vous documenter sur eux si vous ne les connaissez pas. Leur apprentissage et leur mise en place réclame du temps, mais pour avoir travaillé sur des applications qui en font usage et sur d'autres qui ne le font pas, je peux vous garantir que l'investissement est plus que justifié. Remarquez que tous les outils que j'ai cité sont open-source.
    Bien sûr, c'est vous qui connaissez les détails de votre projet, et vous devriez probablement vérifier que d'autres outils / architectures ne vous conviennent pas mieux. Par exemple, je ne connais pour ainsi rien sur le streaming.

    Comme je suis un peu hors sujet, je vais m'arrêter ici.

    Bon courage.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 103
    Points : 66
    Points
    66
    Par défaut
    merci BugFactory

    excusez moi pour mon absence

    Comme je suis un peu hors sujet
    Pourquoi? si c'est pour le streaming je pense à en faire une appli à part peut être basé sur RED5. D'ailleurs celà intervient plus tard.

    Je m'interresse actuellement aux différents Framework je pensais déjà utiliser Hibernate pour le mapping / relationel.

    Pour ce qui est de la couche métier j'hesite entre les EJB 3 ou spring. Spring me parait interressant mais assez complexe à mettre en oeuvre (Je n'ai jamais utilisé ce framework, peut etre connaissait vous de bons tutoriaux et de bons bouquins j'aimerais m'y interresser). Et pour la couche présentation j'hésite également entre JSF ou Java et XLST car en fait avec les services RPC - XML à mettre en place j'aurais certainement déjà une partie de mes données formatées en xml. De plus Hibernate permet le mapping xml/ relationnel. XSLT permet en plus de bien séparé la couche donnée de la couche présentation. et il est possible d'avoir plusieurs format de sortie: HTML, XHTML, WML, PDF, ... Elle me semble une alternative interressante pour mon application. Quand penser vous?

  9. #9
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    si tu as fini par choisir Java, tu auras plus de renseignements sur le forum Développement Web en Java

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 103
    Points : 66
    Points
    66
    Par défaut
    Merci. Avant de migrer complétement vers java...

    J'aimerais savoir en terme de montée charge c'est mieux un système lamp ou j2ee. Je suis tombé aujourd'hui sur un exemple Friendster qui a migré de java vers php pour des raisons de charges. Je suis également tombé sur cette article. J'avoue restez assez perplexe car on me répète sans cesse que J2ee est plus robuste que php. Mais plusieurs ont migré sur un système php apache pour ces raisons. J'avoue ne plus savoir quoi penser. Le choix de la technologie est importante car l'entreprise ne pourra pas se permettre de changer de technologie à court terme. C'est pour cette raison que j'hésite encore (est ayant encore un peu de temps devant moi). J'aimerais avoir votre avis sur cette article.

    Merci

  11. #11
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par LeCogiteur
    J'aimerais avoir votre avis sur cette article.
    d'abord je voudrais parler de MySQL. il est souvent associé à PHP mais il y a encore beaucoup de professionnels qui lui font moins confiance que PHP. Donc déjà pour la base de données je serais tenté de te proposer PostgreSQL qui est en Open Source et qui est réputé être plus fiable que MySQL

    Citation Envoyé par LeCogiteur
    Friendster qui a migré de java vers php pour des raisons de charges.
    dans l'article que tu as indiqué les responsables disent qu'ils sont satisfait de la robustesse de Linux/Apache/PHP mais il ne disent pas qui ne sont pas satisfait de Java
    mon interprétation est la suivante : le trio LAP est capable de géré une grande charge aussi bien que Java donc le choix se porte uniquement sur le coté financier. La grande différence entre les 2 technologie est que le PHP est beaucoup plus populaire donc il y a beaucoup plus de développeurs et donc la main d'oeuvre sera beaucoup moins chère avec du PHP lors d'ajouts de fonctionnalités futures

Discussions similaires

  1. Choix d'une technologie en vue d'un projet
    Par Jean-Philippe André dans le forum ALM
    Réponses: 7
    Dernier message: 03/05/2012, 13h15
  2. Réponses: 0
    Dernier message: 03/03/2012, 16h33
  3. Choix d'une technologie
    Par PtitRun dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 13/06/2009, 13h15
  4. Debuter : Choix d'une technologie et modèle MVC
    Par pierremx dans le forum Débuter
    Réponses: 0
    Dernier message: 22/09/2008, 21h24

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