Journal Remise à niveau Java

Posté par  (site web personnel) .
Étiquettes : aucune
0
30
juil.
2006
Cher journal,

dans un soucis de remise à niveau, j'aimerai prochainement me lancer dans les nouveautés Java. (en italique car certaines ne sont plus très nouvelles :)

entre autres : J2EE 1.5, EJB 3.0, J2SE 1.6, Struts/JSF

Ca fait 2 ans que je développe sur un ERP, mais celui-ci étant un peu vieux, il n'utilise aucun framework, aucun EJB, et aucun truc moderne d'une manière plus générale. A part masteriser J2EE 1.4, je masterise plus grand chose...

Je connais un peu JSF par le biais de Sun Creator, mais ce soft est tellement bugué chez moi, que je perd beaucoup (en cherchant pourquoi ca ne marche pas, alors qu'en fait c'est un bug) du gain de productivité généré par JSF.

Et struts, c'est pas le truc officiel sun, mais faut reconnaitre qu'autour de moi beaucoup de gens connaissent Struts, et pas JSF. Lequel apprendre ?

Autrement, j'ai vu que J2EE 1.5 était là, p'têtre l'occasion de se mettre à jour, vous en pensez quoi ? De réel changements par rapport au 1.4 ?

Pour ce qui est de J2SE, j'voulais me lancer dans les nouveautés du 1.5, et v'là ty pas que le 1.6 est sorti... (il est loin le temps où sun laissait couler des années entre chaque version). Ca vaut le coup d'attendre les bouquins dessus, ou bien un bouquin couvrant la 1.5 fera l'affaire ?

Le gros point noir, c'est les EJB. Je ne connais pas du tout, et pourtant il parait que c'est incontournable. Je ne sais même pas à quoi ca sert, j'ai parcouru quelques sites vite fait, mais ca ressemble souvent à une sorte de branlette intellectuelle. Mais pour le coup, si c'est l'impression qui en ressort, les avis sont plus positifs que moi. "Les EJB c'est bon mangez- en", je ne cesse de lire un peu partout.

La plupart des ouvrages disponible couvrent les EJB 2.0, mais les EJB 3.0 sont sortis, et il parait que c'est beaucoup plus simple ! J'attendrais donc bien un peu avant d'acheter un bouquin, histoire d'en prendre un qui traite des 3.0... :-/

Voilà, ca fait beaucoup de chose, du coup j'ai pensé que ca méritait un journal privé. En plus il y a matière à troll, donc les moules sont contentes, et les pierre tramo aussi.

Si quelqu'un a un avis, une référence d'ouvrage, ou une blague, il est cordialement invité à commentairiser.

Merci !
  • # Moi ! Moi ! Moi !

    Posté par  (site web personnel) . Évalué à 3.

    J'ai un troll, m'sieur.

    Juste, java sapusaipalibre, c'est un langage tout caca avec une syntaxe de merde et plein de buzzwords pour décideurs pressés.
    Tu ferais mieux de te mettre à un vrai langage !



    Mais c'est vraiment parce que tu l'as demandé gentiment.
    • [^] # Re: Moi ! Moi ! Moi !

      Posté par  (site web personnel) . Évalué à 9.

      Pour mettre le pied dedans, je dirai juste que malgrès le nombre assez conséquent de langages figurant sur mon CV, quand que je suis sollicité, c'est tout ou en partie à cause de Java

      Donc à choisir, je préfère un faux langage qui me donne de quoi bouffer, d'autant que je néglige pas pour autant le vrai langage (python bien sûr)
  • # Java6 sorti ?

    Posté par  . Évalué à 4.

    Pour info, Java 6 (alias mustang) est encore en développement, la beta2 c'était y'a quelques mois, la rc1 pour bientot.
    Mais c'est vrai que des snapshots compilés et leur code source sont dispos depuis au moins 1 an.
    http://mustang.dev.java.net
  • # Mouais

    Posté par  . Évalué à 9.

    Les ejb, c'est tellement incontournable que presque plus aucune boite n'en veut tellement c'est de la grosse merde, c'est des usines à gaz c'est lourd à mettre à place...

    Si tuveux faire du j2ee, les trucs fashion, c'est spring, hibernate et certains framework mvc (on entend bcp parler de tapestry).

    Il parait que jsf c'est pas tip top malgré la grosse poussé commerciale de sun, je sais pas si les specs des ejb3 on été validés mais c'est pas tres repandu et meme si struts c'est mort, j'ai eu recemment vent d'un nouveau projet basé sur du struts dans la boite où j'effectue ma mission.
    • [^] # Re: Mouais

      Posté par  . Évalué à 3.

      Même constat de mon côté. Les EJB entités sont à l'abandon, on voit à la rigueur de ci de là des EJB session et des MDB (Message Driven Bean), mais ça reste rare.

      Par contre, des applis struts, j'en vois des tonnes. Et pourtant, je ne trouve pas que struts soit la panacée, bien au contraire.

      Je crois que struts 2 est en chantier, il s'agit de la fusion avec une autre techno.

      Donc, sur la techno à apprendre, je dirais struts 2, jsf (un peu) et spring.
      • [^] # Re: Mouais

        Posté par  (site web personnel) . Évalué à 2.

        Bon beh si les EJB ne sont plus tellement usités, j'vais peut être pas trop me prendre la tête alors... Pour le reste j'irai googeuliser un peu pour voir la tête que ca a.

        Merci pour les infos.
        • [^] # Re: Mouais

          Posté par  (site web personnel) . Évalué à 2.

          Nan franchement les EJB c'est fini (enfin, ça n'a jamais vraiment commencé, en pratique).

          Par contre je crois qu'EJB 3.0 n'aura pas grand chose en commun avec ses prédécesseurs d'un point de vue technique, donc ça peut valloir la peine de s'y intéresser. (Je ne me suis pas encore penché dessus, ce n'est que du ouï-dire.)
    • [^] # Re: Mouais

      Posté par  (site web personnel) . Évalué à 2.

      Les ejb j'en vois encore beaucoup. Dire que c'est lourd, c'est vrai, mais il faut garder a l'esprit que c'est une infrastrucure industrielle (lourd et robuste), qui est prévue pour être manipulée par des gens qui savent ce qu'il font, et pas des gars qui n'on pas de formation et qui bidouillent les fichiers de conf sans trop savoir.
      Pour les EJB, la version 3 est sortie avant cet été. Sun a pas mal communiqué sur les ejb entity 3.0, qui ressemblent à de l'hibernate avec annotation.
      Pour struts, dire que c'est mort,je croit pas, y'a encore du monde dessus, bien que ça ne soit pas pas super génial (en plus la doc est pourrie). Pour JSF, j'ai pas essayé, mais il me semble que ça n'est pas prévu que pour le web.
      Pour les trucs fashion, je dit Groovy, grails (version java de ruby on rails), et le MDA...
    • [^] # Re: Mouais

      Posté par  . Évalué à 3.

      Pareil ici. Les EJBs, c'est peut-être bien; mais on ne trouve pas de développeurs suffisement compétents pour les utiliser. Ca fini toujours en chaleur et lumière tellement les codeurs PHP promus experts J2EE nous produisent des cochonneries. En prime dans les 2.0, les pièges sont un peu nombreux.

      Pour l'instant Spring a bien la cote, et Struts est toujours dans les cartons parce qu'il est bien maitrisé et qu'on n'a pas trouvé un truc dont le coût d'apprentissage justifie la migration.
    • [^] # Re: Mouais

      Posté par  . Évalué à 2.

      C'est quoi les EJB ? Wikipedia est on ne peut plus flou dessus...
      • [^] # Re: Mouais

        Posté par  . Évalué à 7.

        In short: une façon (de plus) d'exposer des objets peu importe (en théorie) l'endroit ou il se trouve. Les nuances se font selon le type d'objet que tu veux exposer:

        - si c'est un objet ne gérant aucune donnée, mais devant juste effectuer une opération.
        - si c'est un objet ne gérant que des données "intermédiaire" devant effectuer une opération
        - si l'objet gère en fait la donnée critique
        - si l'objet est juste un message devant arriver quelque part
        - etc...

        C'est là que les concept de session bean (stateless et stateful), d'entity bean, de message driven bean, etc... apparaisse.

        L'implémentation derrière est (comme dans pratiquement tout les cas) de montrer au client un objet qui a l'air "local", de marshaller l'appel (d'une façon ou d'une autre) afin de l'envoyer sur le réseau au serveur, qui va en déduire quel appel réel effectuer. Les nuances se situe généralement sur comment trouver l'objet distant et le fait que l'appel soit plus ou moins bloquant.

        Si tu connais les web service (stateless session bean), COM+, Corba, RMI, ou même les RPC, tu as normalement une idée de ce que veulent faire les EJB.

        Comme presque toujours dans le monde java, on y ajoute le mot "enterprise" parce que ça le fait, et on y ajoute une série de bullshit marketing style "scalability", "transparence", "performance", "reliablity",... etc...

        Ce qui rend les EJB particulièrement lourd, c'est qu'à l'inverse de certain techno (genre COM, Corba ou Web Service), y'a pas vraiment une contrat first approach (tu ne définis pas avant dans un langage à part le contrat que ton objet expose), le contrat est en quelque sorte inclus dans le code. Et dans le cas des EJB<=3, ce code est particulièrement lourd (y'a bcp à taper) et complexe à maintenir (tu veux rajouter un param à une méthode, c'est vite long, et du coup, les développeurs fainéant que nous sommes préfère l'éviter, ce qui amène parfois à des design douteux). La version 3 ne change pas complètement cela, elle intègre la annotations java 5, donc c'est un peu moins lourd à écrire. Un autre désavantage des EJB, c'est qu'ils sont lourd et chiant à tester, ou même à utiliser, tu te retrouves vite à contraindre tes développeurs à avoir un serveur d'application surchargé sur chaque poste de dev. (pareil pour pas mal d'autre truc: unit tester un EJB est pas trivial, les perf sont parfois suprenante, etc...).

        En très coutr pour répondre au journal: amha, si tu vises le court terme: Struts, Spring, Hibernate. Si tu trouves ça fun, regarde JSF, mais c'est pas encore top utilisé, et ça ne couvre pratiquement que la couche présentation.

        ps: wikipedia en dit tous de même plus que moi: http://en.wikipedia.org/wiki/Enterprise_Java_Bean
        • [^] # Re: Mouais

          Posté par  . Évalué à 3.

          Merci de ta reponse: malheureusement, j'avoue que j'ai du mal a comprendre.

          T'as evoque les Web Services. Cet hiver j'ai eu une unite de Corba, et bien que je comprenne ce que ca fait, j'arrive toujours pas a voir d'interet concert a l'utilisation :-(


          Java, c'est un petit peu "overwhelming". Je suis completement perdu dans les technos. Le tutorial J2SEE de Sun fait 1500 pages. On sait pas par ou commencer, et on a 500 IDE dont le seul argument semble etre qu'il te fait pisser du code plus rapidement que le voisin.

          Bref, c'est mon point de vue, mais j'avoue que j'arrive pas du tout a rentrer dans la logique et le langage J2EE.
          • [^] # Re: Mouais

            Posté par  . Évalué à 2.

            [de Corba] j'arrive toujours pas [à] voir d'[intérêt concret à] l'utilisation :-(

            Euh, tu ne trouves pas un intérêt concret à faire exécuter sur une machine distante du code dans le langage que tu veux sans grosse différence avec du code local ?

            Ou sous un autre angle : tu ne trouves pas un intérêt concret à offrir un service distant dans un langage évolué (= sans s'obliger à manipuler les octets d'une connexion TCP ou d'un paquet UDP (ni à gérer ces communications d'ailleurs)) sans forcer pour autant ni la plate-forme ni le langage des utilisateurs du service ?
            • [^] # Re: Mouais

              Posté par  (site web personnel) . Évalué à 1.

              L'interet que l'on ma donné lors d'une pseudo formation, c'est toute l'infrastructure (en partie standardisé pour les fournisseurs de serveur j2ee, ce que pernet de ne pas être dépendant d'un fournisseur). En général, ça propose : les connexions au base de donnees (JDBC) annuaire (JNDI), au queue de messages (JMS) et aux autre systèmes d'informations (je-sais-plus-quel-sigle), la gestion des transactions dans le code (et pas que pour les requetes sql), le clustering (avec dans ce cas un serveur qui peut terminer le boulot de son voisin qui vient de planter), la gestion de la persistence des données, la gestion du cycle de vie des objets de ton application (start / stop / pause / run / unload / load), des normes par exemple pour la config d'un site web (un fichier pour tout les serveurs existant), etc...

              Je suis entrain de me dire que c'est dingue que je doive l'expliquer. Sun n'a pas fait une belle plaquette commerciale ??? Z'on des cours à prendre chez ms...
              • [^] # Re: Mouais

                Posté par  . Évalué à 2.

                > Je suis entrain de me dire que c'est dingue que je doive l'expliquer. Sun n'a pas fait une belle plaquette commerciale ??? Z'on des cours à prendre chez ms...

                Euh vi c'est clair, le prob aussi c'est que java, c'est pas que Sun, et en général après avoir du te tapé oracle, bea, ibm et sun faire leur blabla sur le produit qui est plus scalable, plus secure, plus clusterisable, plus whatever que l'autre, t'en reste avec une impression de flou... ça le fait plus d'avoir un évangéliste ms entrainé pour, qui commence sa présenation par un slide t'expliquant que les slide ça fait chier tous le monde et que t'en auras qu'un... (bon après reste à voir la pertinence de l'info et retirer l'aspect marketing, mais en tous les cas c'est plus ludique).

                Le problème général avec cette "infrastructure", c'est:
                - qu'elle est relativement complexe, un hello world en "J2EE" est atrocement compliqué (par rapport à ce que ça devrait être). Pratiquement tu te retrouves vite avec un bulldozer pour écraser une mouche. Et ce n'est pas parce qu'une solution est "d'entreprise" que ça veut dire qu'elle est lourde...
                - que la plupart de ces "avantages" ne sont pas réellement gratuit: dans le cadre de l'appel d'objet distant le vrai problème n'est pas la technologie de "transport" (EJB, COM, Corba, etc...) mais la définition du contrat entre les parties, et pour cela, la technologie n'aide pas. Dans le cas du clustering, le problème sera d'avoir un système cohérent en cas de crash (principalement la persistence des données) et là dessus, la techno ne peut que partiellement aidé (on reste obligé de se poser la question et si on intérragit avec des systèmes tiers ça devient vite très complexe). Le même raisonnement s'applique à la plupart des "parties" de J2EE.
                - que ce n'est pas si "standard" que cela, tous le monde implémente un peu le standard "à sa mode" avec ses extensions, ce qui veut dire que l'avantage du standard est nettement moindre. (ceci dit c'est clair que ça vaut mieux qu'une anarchie complète). Il faut aussi ne pas oublier que le "standard" est relativement libre: il impose l'organisation du binaire, pas des sources par exemple.

                Allez j'y retourne... (faire du des EJB dialoguant avec un fax en envoyant un sms...)
    • [^] # Re: Mouais

      Posté par  (site web personnel) . Évalué à 1.

      Tout à fait :-)

      Spring et Hibernate sont incontournables.

      Pour les frameworks web:
      Struts, ça commence à dater un peu (mais c'est encore très utilisé).
      Spring-MVC, le framework web de Spring est assez simple et très flexible.
      Tapestry, un framework web orienté composants est très très bien fait.

      Sinon, EJB 3, ça sera très similaire à Hibernate, donc dans un premier temps, focalise toi sur Hibernate.

      Bon courage
  • # JSF

    Posté par  . Évalué à 3.


    Je connais un peu JSF par le biais de Sun Creator, mais ce soft est tellement bugué chez moi, que je perd beaucoup (en cherchant pourquoi ca ne marche pas, alors qu'en fait c'est un bug) du gain de productivité généré par JSF.


    Je suis à peu près dans la même situation que toi, mais nous migrons actuellement d'un framework masterisant java 1.4 à du spring/struts/sitemesh/quartz , log4j , hibernate et tous les autres mots clefs à la mode. ça me permet de me remettre au gout du jour.

    Je te conseille d'accentuer ton effort sur JSF et de ne pas te focaliser que sur cet outil de sun , je te conseille callisto nouvellement releasé et qui integre le developpement JSF. Si ce n'est pas déja fait il faut vraiment s'impregner des notions de JavaServer Faces, car les notions de composant réutilisable, d'intégration dans l'ide favorise vraiment la productivité.

    Il y a aussi oracle JDevelopper qui integre les JSF. De plus jdev integre nativement je crois les ADF la bibliothèque impressionnante de composant jsf d'oracle.

    Hope that helps . . .

    JamesHolmes.com Java Server Faces Resources
    http://www.jamesholmes.com/JavaServerFaces/

    Developing Smart Web UIs with Ajax, JSF and ADF Faces
    http://www.oracle.com/technology/pub/articles/cioroianu_jsfa(...)
    https://ajax4jsf.dev.java.net/

    Librairie des composant jsf d'alfresco
    http://wiki.alfresco.com/wiki/Component_Library

    MyFaces - the free JSF Implementation
    http://www.irian.at/myfaces-sandbox/home.jsf

    Eclipse Callisto
    http://www.eclipse.org/callisto/

    Oracle ADF (JSF Components)
    http://www.oracle.com/technology/products/jdev/htdocs/partne(...)

    jsf [RIALTO - Rich Internet Ajax Toolkit - OpenSource]
    http://rialto.application-servers.com/wiki/jsf

    etc etc ..
    • [^] # Re: JSF

      Posté par  (site web personnel) . Évalué à 2.

      Wa, j'ai de la lecture :)

      Merci pour tout tes liens.

      Je vais tenter d'approffondir l'experience JSF (qui m'avait bien plu quand même, mais vraiment gachée par ce maudit Sun Creator)...

      Sinon hibernate revient assez souvent aussi, j'vais donc aller jeter un oeil, histoire de voir ce qu'il en est.

      Merci.
  • # Du libre !

    Posté par  . Évalué à 3.

    Java en libre : ça existe !
    Un petit article pour avoir une idée de l'avancement des travaux (c'est un peu vieux...) :
    http://www.redhat.com/magazine/012oct05/features/java/

    gcj avec classpath fait aujourd'hui tourner "out of the box" Eclipse, Azureus, Tomcat, JOnAS, etc...

    Classpath :
    http://www.gnu.org/software/classpath/

    JOnAS :
    http://jonas.objectweb.org/

    Fedora a actuellement la meilleur intégration de java (libre). La faq :
    http://fedoraproject.org/wiki/JavaFAQ
  • # jsf c'est de la daube

    Posté par  . Évalué à 1.

    mais alors vraiment.

    Lourd, chiant a developper, impossible a debugger.
    Le code HTML genere est imbittable avec moult javascript de partout.
    Le modele n'est pas si propre que ca.
    Tu perds la navigation back/next (ca depend surement de l'utilisation que tu en fait ca).
    Bref, j'en garde un plutot mauvais souvenir.

    Perso, j'ai vraiment pas apprecie et je le deconseillerais fortement au taff si on me demande mon avis.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.