Partage
  • Partager sur Facebook
  • Partager sur Twitter

Avantages de Java

Pour le web

Anonyme
    31 mai 2008 à 20:55:34

    Bonsoir !

    Je suis actuellement en stage de fin de formation (licence professionnelle en développement web) et mon projet de stage est donc le développement d'une application web en Java (servlet, JSP, bean, JSTL).

    Tout stage s'accompagne évidemment d'un rapport et je dois justement indiquer dans celui-ci pourquoi le langage Java a été choisit. Cependant cela ne plaira pas si j'écris qu'il m'a été imposé par l'entreprise. Demander les raisons à l'entreprise ? C'est déjà fait et les raisons sont purement fondées sur du bouche à oreille comme quoi Java est bien. Alors écrire cela dans le rapport de stage ne plaira pas non plus.

    Je suis donc ici pour vous demander quels sont les avantages d'utiliser Java pour une application. J'y ai déjà réfléchit et j'ai pensé à cela pour le moment:

    • Java est portable. Il suffit juste que la JVM soit installée sur le système pour que l'application fonctionne.
    • Java apporte une approche orientée objet (contrairement à PHP par exemple, même si dans la version 5 l'objet est un peu plus présent). Les avantages de cette approche objet étant à définir.


    Rassurez-vous, je ne suis pas ici pour que vous fassiez le travail à ma place (ce n'est pas mon genre). Je recherche juste des arguments. J'ai également effectué des recherches sur Internet et le principal argument qui en est ressortit est que Java est portable.

    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      1 juin 2008 à 20:32:23

      Bonsoir,
      Je n'ai jamais développer une application WEB en java donc je ne sais pas trop si la liste des avantages ci-dessous sont acceptables. (Dommage que ce soit obligatoirement en JAVA)

      1. - Java est aujourd'hui un langage aussi rapide que le c++ pourvu qu'on ne l'utilise pas pour une application très lourde (jeux en ligne, logiciel de traitement d'image, encodage vidéo etc...)
      2. - Java est organisé, il contient des classes bien conçu et bien reparties.
      3. - Java est connu et donc plus de chance de trouver des développeurs java; pour concevoir ou amélioré une application.
      4. - Java est gratuit et permet les mêmes avantages que le point 3
      5. - Java est portable
      (liste non exhaustive)

      Mais évite de comparer java au php. Ils ne sont pas vraiment comparables plutôt java / .NET / C++ / Ruby

      En espérant t'avoir aidé.
      • Partager sur Facebook
      • Partager sur Twitter
        2 juin 2008 à 9:31:17

        c++ et encore de loins et surtout pas le C

        aussi rapide que le C++ tant qu'on ne fais pas de la merde avec
        c'est tres permissif comme langage mais on le paye vite en perf si on fais des betises
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          2 juin 2008 à 10:35:35

          +1

          Citation : daedric

          c'est tres permissif comme langage [...]


          Je ne le savais pas ça, en est tu sûr ?
          • Partager sur Facebook
          • Partager sur Twitter
            2 juin 2008 à 13:12:09

            disons que tu as beaucoup de maniere de faire, tu peux 'jouer' assez facilement

            comme j'ai vu une source sur ce site ou il y avais tous les champs de la classe qui etais dans une interface.... enfin voila c ce que je veux dire
            • Partager sur Facebook
            • Partager sur Twitter
              2 juin 2008 à 14:04:00

              Je crois que le coup de cette fameuse interface restera dans les anales... ^^
              • Partager sur Facebook
              • Partager sur Twitter
                2 juin 2008 à 14:16:12

                je savais meme pas que c'etais possible :s
                • Partager sur Facebook
                • Partager sur Twitter
                  2 juin 2008 à 14:37:54

                  On peut voir cette interface ?

                  Sinon pour moi, l'intérêt de java c'est qu'il est très documenté comparé à d'autres langages, il offre des classes pour faire la plupart des choses simplement et rapidement, la gestion de la mémoire est aussi un vrai plus.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    2 juin 2008 à 17:49:51

                    Citation : Ga3L

                    c'est qu'il est très documenté ...


                    Oui, Sulimo tu devrais mettre ceci dans ta liste très important. ;)
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      2 juin 2008 à 18:46:09

                      Je dirais même qu'il est trop documenté ! C'est parfois à s'y perdre dans la documentation et puis tellement de personnes aident les autres que parfois on trouve du grand n'importe quoi !

                      Mais plus que des arguments sur Java en lui-même il me faut des arguments pour expliquer pourquoi utiliser J2EE. Et ça ce n'est pas simple. Je vais encore me creuser un peu la cervelle. o_O
                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 juin 2008 à 19:22:29

                        N'hésite pas à mettre ce que tu as trouvé... ^^
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          2 juin 2008 à 19:31:14

                          Pas de soucis, je posterais ce que j'aurais trouvé. Ca permettra, pourquoi pas, d'en débattre. Plus précisément de débattre de l'utilisation de Java pour un projet web, ce langage étant assez peu utilisé par les "particuliers".

                          La raison doit être qu'il n'est pas simple (connaître Java "normal" est indispensable) et qu'il faut plus de rigueur comparé à d'autres langages plus permissif (tel que le PHP par exemple).

                          Mais c'est très "jouissif" de se dire que l'on a réussi à développer une application web en Java ! :p

                          Edit : je viens de creuser un peu plus profondément dans mes cours et je viens de trouver ces arguments.
                          • J2EE est une spécification, contrairement à .NET qui est une stratégie de produits.
                          • Java et J2EE sont intéressants car c'est une solution portable, sécurisée et standardisée.


                          Merci monsieur le professeur ! Reste plus qu'à les expliquer ! :o
                          • Partager sur Facebook
                          • Partager sur Twitter
                            2 juin 2008 à 21:47:11

                            tu oublis les IDE java Netbeans et Eclipse qui ratatine les IDE des langages concurrents!
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              2 juin 2008 à 22:12:54

                              Je ne les oublient pas, rassure-toi. Tout simplement le choix d'un langage de programmation pour un projet ne se base pas sur la qualité des IDE disponibles pour le développement (je l'espère en tout cas).

                              En plus je n'utilise pas d'IDE ! J'utilise le bloc note (notepad ++). Pourquoi ? Tout simplement parce que les IDE nous oblige à respecter leur structure et celle-ci ne me conviens pas. J'admets que ça peut faire fuir certaines personnes de devoir écrire tout le code plutôt que d'utiliser les générateurs de code des IDE (pour les accesseurs par exemple je reconnais que c'est assez long de les créer lorsque ta classe contiens une vingtaine d'attributs... :o ) mais je suis comme ça !

                              En plus notre professeur de Java cette année (J2EE, RMI, SOAP, REST) nous a prévenu dès le premier cours : "Je n'utilise pas d'IDE donc ne me demandez pas d'aide sur Eclipse et consors." Donc forcément on a pris l'habitude de coder dans le bloc note et de compiler en ligne de commande.

                              Mais je ne dis pas que NetBeans et Eclipse sont mauvais, loin de là ! Ils sont très bien, même si NetBeans à ma préférence.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                2 juin 2008 à 23:19:29

                                Nous en deuxieme année on a des cours d'Eclipse.
                                En premiere année on nous conseille Scite pour linux et notepad ++ pour Windows
                                Je trouve qu'ils sont pas mal, mais c'est vrai que c'est parfois fatidieux. Mais bon je trouve qu'on a plus de mérite.
                                Sinon pour moi Java, c'est la portabilité qui prime ;)
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Anonyme
                                  3 juin 2008 à 15:50:03

                                  Citation : Sulimo

                                  Tout stage s'accompagne évidemment d'un rapport et je dois justement indiquer dans celui-ci pourquoi le langage Java a été choisit. Cependant cela ne plaira pas si j'écris qu'il m'a été imposé par l'entreprise. Demander les raisons à l'entreprise ? C'est déjà fait et les raisons sont purement fondées sur du bouche à oreille comme quoi Java est bien. Alors écrire cela dans le rapport de stage ne plaira pas non plus.



                                  Si c'est la stricte vérité, pourquoi mentir ? Ta démarche est mauvaise : tu cherches à justifier le choix de personnes à leur place, alors que ces personnes n'avaient, à te lire, pas de vraie justification.

                                  Ça serait certainement plus intéressant de te poser la question de la pertinence de ce choix, retrospectivement - et alors ton avis aurait nettement plus d'importance.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    3 juin 2008 à 16:41:41

                                    Il faudrait au moins savoir les autres contraintes imposées par l'entreprise :

                                    • type d'environnement (solaris, windows, linux, autres)
                                    • contrainte au niveau des charges (load balancing, ...)
                                    • utilisation d'autres applications Java à distances (via rmi par exemple)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      3 juin 2008 à 18:33:28

                                      @ipoulet : tu as parfaitement raison. Il serait plus logique de réfléchir à la pertinence de ce choix. Mais chercher des arguments (positifs et négatifs) pour réfléchir à cette pertinence ou pour justifier le choix de Java ne revient-il pas à la même chose au fond ?

                                      @millie : les contraintes ? L'environnement principalement utilisé est Windows. Quant au niveau des charges cela n'a pas encore été réfléchit mais l'application pourrais très rapidement monter en charge. Et pour le moment rien n'est prévu du côté de RMI. Et tant mieux parce que ce n'est pas ma tasse de thé. ^^
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        4 juin 2008 à 9:55:21

                                        AMHA, "justifier le choix de Java" c'est déjà très biaisé comme démarche. "Chercher des arguments postifis et négatifs" ça ressemble plus à "Pourquoi Java"/"Pourquoi pas Java", et c'est toujours plus riche et intéressant.

                                        Et tu vois, plutôt que de chercher au hasard des qualités que Java possède, faire une liste de certaines contraintes (tu viens de parler de Windows et de la montée en charge) est plus intéressant : déjà, la portabilité que quasimment tout le monde t'a servi sans réfléchir, tu t'en fous.

                                        Pour la montée en charge, c'est une piste intéressante : que vaut Java dans ce domaine, est-ce que les solutions mises en avant par SUN pour le web sont fiables à ce niveau ?
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Anonyme
                                          4 juin 2008 à 15:07:59

                                          Citation : iPoulet

                                          déjà, la portabilité que quasimment tout le monde t'a servi sans réfléchir, tu t'en fous.


                                          Qu'il s'en foute de ça et les examinateurs s'en foutront de sa note aussi. ;)

                                          Bien que ce soit quelque chose de connu de tellement connu qu'on estime qu'on peu s'en foutre "java portable" reste une des phrases qui ont lancés java et je dirais même que c'est grâce à cette portabilité que java a sa place où il est aujourd'hui.
                                          Si tu omets de cité la portabilité de java les ou l'examinateur risque d'omettre une chiffre à ta note. Bien qu'IPoulet s'en fou, je te conseil d'indiquer cette information.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            4 juin 2008 à 21:15:02

                                            oui mais la portabilitees c'est bien beau mais ca se fait pas tout seul non plus dans le code ... ne serais ce que pour les separateur de path (\\ sous windows, / sous linux)
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Anonyme
                                              4 juin 2008 à 22:21:39

                                              Il n'y pas uniquement ce séparateur qui change selon que l'on soit sous Linux ou sous Windows. Il y a également le séparateur de chemin, pour par exemple indiquer le classpath. Sous Linux c'est ":" et sous Windows c'est ";".

                                              Au final je ne sais pas trop ce que je vais avancer comme arguments et j'y reviendrai à la fin, quand j'aurais terminé le reste du rapport (qui est déjà bien avancé).
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                4 juin 2008 à 22:51:09

                                                portable c'est beau, mais c'est inutile si tous les pc de la boîte son sous windows. Là où est le problème c'est: pourquoi on a besoin d'un outil portable? C'est assurément un point dont pas mal de logiciels internes à une boîte se foutent.
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  5 juin 2008 à 0:08:36

                                                  De toute façon, il ne faut pas de voiler la face. Le fait d'utiliser Java était une contrainte dès le début du stage (probablement même défini dans ton sujet de stage).

                                                  Comme l'a déjà indiqué iPoulet, il vaut mieux voir pourquoi le choix de l'entreprise sur ce projet pour cette technologie était intéressante/pas intéressante.

                                                  Il y a des choses évidentes mais que les gens ne pensent pas forcement comme : tous les développeurs de la boite connaissent java donc ça sera plus maintenable par la suite. Si t'avais proposé une solution et une implémentation en Ruby, je ne sais pas si ça aurait été subtile si personne n'avait entendu parler de ce langage.


                                                  Certains parlent de la portabilité, Java n'est pas si portable que ça.

                                                  Pour Java SE,

                                                  Sur une même plateforme, il y a des problèmes de compatibilité entre différente spécifications de Java SE (d'une inférieur à supérieur, il y a souvent une extension des méthodes (par exemple apparition d'une surcharge avec un paramètre long dans Java 6 et absent dans JDK 1.4 => impossibilité d'exécuter le code compilé avec 6 sur le 1.4)
                                                  Sur une même plateforme, utilisation de méthode qui ont disparu avec des versions plus récentes (souvent notés depreciated)

                                                  Sur des plateformes différentes. Certains ont parlé de Linux et de Windows, mais tous les deux utilisent en général le JDK de Sun. Il y a d'autres JDK comme le JDK d'IBM qui fonctionne sur z/OS (l'utilisation des fichiers est bien plus problématique dans ce cas). L'utilisation d'un même binaire entre le JDK de sun et le JDK d'IBM peut poser pas mal de soucis.


                                                  Avec Java EE,

                                                  On utilise Java EE avec un serveur d'application et changer de serveurs d'applications peut être un sacré bordel.

                                                  Il peut y avoir des différences liées à l'environnement dans lequel s'exécute l'application : une application déployée sur un seul serveur d'application et une application répartie sur 5 serveurs d'applications et un serveur Web peut donner des comportements totalement différents (par exemple si certaines parties nécessites des mutex qui ne seront évidemment pas distribués entre les machines). Autres exemples s'il est nécessaire que des données soient partagés entre les machines (caches distribués).

                                                  Il peut y avoir l'utilisation de solution non portable (utilisation d'un scheduler lié au serveur d'application)

                                                  Il peut y avoir des différences au niveau de l'implémentation des Stub et des Tie des EJB (utilisation d'ejbdeploy sous WAS et souvent d'une solution à base de xdocklet sous Jboss) : les conteneur EJB des différents serveurs d'applications ne tournent pas forcement de la même manière.

                                                  Certaines bibliothèques nécessitent des dépendances différentes suivant les serveurs d'applications (par exemple IceFaces)


                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Anonyme
                                                    5 juin 2008 à 13:29:41

                                                    Stop ! Vous voulez me faire exploser le cerveau ? o_O

                                                    Certains de tes arguments (les méthodes dépreciées ou les incompatibilités entre versions) sont très intéressants et je dois avouer que je n'aurais pas penser à cela. Même si ça me fait parfois râler.

                                                    Et concernant les JDK "non officiels" je savais qu'il en existait mais je ne me suis jamais trop renseigné à leur sujet. Peut-être as tu des liens intéressants à me proposer ?
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    Anonyme
                                                      5 juin 2008 à 22:15:16

                                                      Millie pour sûr tu as raison.
                                                      Mais quand on parle de la portabilité de java c'est surtout au niveau d'implantation sur tout type de support.
                                                      Ce qui permet de répondre à Alanis, Java n'est pas utiliser que sur des systèmes d'exploitation Mac, Linux Windows etc... Mais aussi sur des produits direct; Robots, appareils mobile etc...
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        6 juin 2008 à 15:51:34

                                                        une incompatibilite entre version c'est tres tres rare un copain a eut des pb avec SwingUtilies qui a change de package je crois dans la 1.6
                                                        mais c'est tout ...
                                                        si vous voulez voir des pures incompatibilite regardez le .NET
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          7 juin 2008 à 10:06:12

                                                          Citation : daedric

                                                          une incompatibilite entre version c'est tres tres rare un copain a eut des pb avec SwingUtilies qui a change de package je crois dans la 1.6
                                                          mais c'est tout ...
                                                          si vous voulez voir des pures incompatibilite regardez le .NET



                                                          Alors il y a eu relativement de la chance. Tous les problèmes cités ci dessus, je les ai tous eu (et souvent plus d'une fois).

                                                          Mais si on se contente de passer d'un Java sur une même plateforme avec le même type de JVM (par exemple de Sun) d'une version à une autre. Les risques se limitent. Par contre, quand on utilise le même binaire avec des JVM différentes, des environnements différents ou lorsque l'on migre vers d'autres serveurs d'applications pour du Java EE, ça se passe jamais sans douleur.
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            7 juin 2008 à 14:21:07

                                                            Citation : Sulimo

                                                            <position valeur="justifie">En plus je n'utilise pas d'IDE ! J'utilise le bloc note (notepad ++).


                                                            Pas d'IDE pour J2EE? J'ai beaucoup de mal à me l'imaginer. Ca veut dire que tous les taglibs, xml de configuration des applications, définitions de beans et paramétrages du serveur java tu te les tapes à la paluche? Tu dois perdre un temps dingue, ou alors tu arrives à tout faire fonctionner dès le premier coup et t'es vraiment un surdoué...
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                            Anonyme
                                                              7 juin 2008 à 15:17:01

                                                              Pour les taglibs je n'utilise que ceux de JSTL pour le moment, donc de ce côté ça ne pose pas de problèmes. Pour les fichiers XML de configuration pour le moment je n'ai que le web.xml de mon application. En plus celui-ci ne contient que le mapping des URL et je n'en ai pas beaucoup à mapper.

                                                              Pour la définition des bean c'est vrai que c'est un peu rébarbatif de tout faire à la main mais je l'ai dit, je n'aime pas les structures imposées par les IDE. Et au final je ne perds pas beaucoup de temps.

                                                              Le temps que je perds je le récupère sur le fait que les fonctionnalités que je mets en place fonctionnent du premier ou deuxième coup (pas tout le temps, c'est vrai).

                                                              Et puis un IDE c'est bien parce que ça nous indique que l'on a oublié un point virgule ou que telle méthode ne prends pas les paramètres que l'on a indiqué par exemples. En plus si on compile en console les messages d'erreur pour ces oublis sont assez explicites et les erreurs rapidement corrigée. Mais si le problème viens de l'algorithme l'IDE ne nous est d'aucun secours.
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Avantages de Java

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown