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

Java Discussion :

L'État de Java : où en est la technologie en 2014 ?


Sujet :

Java

  1. #1
    Expert éminent sénior

    Inscrit en
    Juillet 2009
    Messages
    3 407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 407
    Points : 149 059
    Points
    149 059
    Par défaut L'État de Java : où en est la technologie en 2014 ?
    L'État de Java : où en est la technologie en 2014 ?
    Entretien croisé avec le CTO France, le responsable du pôle JAVA et un expert de DigitasLBi

    NB : cet entretien est en deux parties

    S'il y a une technologie de développement qui alimente les chroniques des gazettes (IT et même grand public), c'est bien Java.

    Sécurité critiquée ou louée, rachat par Oracle, avantages et faiblesses de la JVM, procès Android, nouveaux frameworks, orientations prises… les sujets ne manquent pas.

    À tel point qu'il nous a paru bon de prendre un peu de recul pour dresser un « État de Java », sur le modèle de l'« État de l'Union » en politique, loin du flux continu de news et de « trolls » plus ou moins argumentés qui, à la longue, aveugle.

    Nous avons envisagé plusieurs options. Faire cet « État » avec Oracle, par exemple. Mais l'entreprise de Larry Ellison étant partie prenante sur toutes les questions sensibles (GlassFish, Android, mises à jour, etc.), nous avons cherché une autre option. Avec des SSII (ESN) ? L’idée nous paraissait bonne. Jusqu’à ce que nous rencontrions des développeurs de DigitasLBi.

    Pourquoi ? D’abord, parce que DigitasLBi – un réseau d'agences de « digitalisation & d'innovation technologique » (6.000 experts dont 300 en France) qui gère des projets globaux pour des marques comme Nissan, eBay, American Express ou La Poste - est totalement indépendant des éditeurs (voir aussi : sa page sur Developpez.com)

    Ensuite, parce que cette agence d’un nouveau genre se place à la croisée d’une multitude de chemins (beaucoup plus que les ESN). DigitasLBi fait aussi bien de la communication numérique, du design d’UI que du développement. Et dans le développement pur, l’agence touche aussi bien au web (HTML, CSS, JS) qu’au .NET ou, donc, à Java (sans oublier les bases de données). Simple exemple, DigitasLBi a pris en charge toute la communication numérique de Nissan (site web, applis mobiles, etc.)… mais va jusqu’à concevoir tout l'embarqué de ses véhicules.

    Enfin - et surtout - parce que son pôle Java/JEE est un nid d'expertises. Cette équipe d’environ 40 personnes est chapeautée depuis maintenant cinq ans par Romaric Le Bever, doté d'un riche background (e-commerce, ingénieur d’études, chef de projets techniques, etc.) et dont le bras droit est un passionné diplômé de l'Ecole des Mines de Nantes. Les deux, ainsi que le CTO – Arnaud Defrenne – se sont révélés être loin de toute querelle de chapelles malgré plus d'une dizaines d'années de carrière dédiée à leur technologie de prédilection.

    Dans la première partie de cet entretien nous avons abordé avec eux la popularité du langage, sa sécurité, Java 7 et Java 8, et le virage vers l’embarqué. N'hésitez pas à nous faire part de vos propres points de vue d’experts et à interagir avec eux (nous savons de source sûre qu'ils gardent un œil sur Developpez.com). La deuxième partie est ici

    Developpez.com : Quatre années après son rachat par Oracle, comment se porte Java aujourd’hui ? Vous semble-t-il toujours aussi populaire en France ?

    DigitasLBi : Je vous ferai une réponse influencée par ma perception de l’utilisation des technologies Java dans l’univers du marketing numérique. Cette mise en garde effectuée, il me semble que le Java se porte comme un charme. Nous assistons même à une recrudescence des projets web en Java.

    Une certaine image de sécurité, fiabilité et de solidité le rend populaire auprès des entreprises industrielles et aussi banques et assurances. Enfin à l’heure où les appareils connectés mobiles se multiplient, où la diversité des systèmes d’exploitation est de mise, finalement Java est un langage de développement multi-device, multi-OS, ce qui est très précieux. Android y est aussi pour quelque chose.

    Developpez.com : Certains accusent Java d’être lourd, lent et verbeux. Côté technique, comment voyez-vous le travail d’Oracle et de la communauté sur l’amélioration du langage avec l’arrivée de Java 7, et à l’aube de Java 8 ?

    DigitasLBi : Java a été à l’origine conçu comme un meilleur C++ dans les années 1990, incorporant des concepts de SmallTalk, Objective-C et Ada. À cette époque, Internet était balbutiant et la plupart des technologies d’aujourd’hui n’existaient pas.

    Java 7 est la reconnaissance qu’un langage unique n’est pas forcément adapté à toutes les situations, et s’est ouvert à des langages dérivés de la JVM avec l’instruction invokedynamic (qui est la 1ère nouvelle instruction JVM depuis Java 1.0 !). Oracle ne reste pas en plan, s’inspirant du meilleur des autres langages pour rendre Java plus productif — je parle ici du Project Coin incorporé à Java 7, et des lambda attendues avec impatience avec Java 8.

    Bien évidemment, toute modification substantielle de Java prend du temps (et parfois beaucoup !). Mais je pense que nous avons un équilibre entre évolution et stabilité du langage, ce qui est très important dans le monde de l’entreprise.

    Enfin, oui, Java est verbeux, particulièrement face à des langages comme Groovy ou Ruby. Nous supportons ici l’héritage des années 1990.

    Par contre, je ne peux pas laisser dire que Java est lent ! Ce qui est lent, ce sont les algorithmes pas toujours très optimisés pondus par certains développeurs (tous langages confondus). Ce qui est lent, c’est la masse de données à traiter, en augmentation constante. Ce qui est lent, ce sont les frameworks et solutions toujours plus complexes, libérant le développeur de considérations bas niveau en cachant la complexité (gain de productivité) mais également le coût associé.

    Java en lui-même est grossièrement aussi rapide que le C (ceci n’est pas un appel à troll…). Je teste régulièrement mes applications personnelles sur un vieux Pentium M (en fin de vie) de 2005 ainsi que sur un Raspberry Pi, ce qui me permet de détecter d’éventuel code non optimal.

    Developpez.com : Au passage, si l’on ne devait retenir que trois nouveautés de Java 7, quelles seraient-elles ?

    DigitasLBi : Je retiendrais principalement les améliorations apportées par Project Coin qui facilitent la vie quotidienne du développeur.

    Java 7 a également connu depuis sa sortie en 2011 une évolution « transparente » sur la JVM (début de l’intégration Hotspot et JRockit, notamment les aspects monitoring). C’est à mon sens important pour optimiser au maximum les performances d’applications toujours plus riches.

    Developpez.com : Que peut-on espérer pour Java 8 ?

    DigitasLBi : Personnellement j'attends de Java 8 de substantielles améliorations tant au niveau de la JVM (continuation de la fusion de HotSpot et JRockit, même si G1 a été repoussé à Java 9) qu’au niveau de la productivité développeur (les lambda, mais également javac multi-threadé).

    Malheureusement, pour certains de nos projets, nous ne pourrons passer à Java 8 que lorsque les éditeurs le supporteront officiellement !

    Developpez.com : Java a été beaucoup critiqué sur ses failles de sécurité. Vous parait-il plus sûr aujourd’hui, voire très sûr, ou pensez-vous - comme le disent certains - que régler ce problème prendra encore quelques années ?

    DigitasLBi : Le sujet de la sécurité est à prendre très au sérieux. La recrudescence des attaques et des piratages est une réalité. D’autre part avec le développement des applications « cloud » nous assistons à une explosions du stockage d’informations personnelles sur les réseaux. L’enjeu est donc doublement important.

    Par Java on peut entendre deux choses :

    - l’utilisation de Java comme langage Backend ;
    - les applets Java compilées et exécutées côté client.


    Les technologies utilisées en particulier en backend ont un rôle important dans la sécurisation des applications, quand on compare les différentes options, Java comme framework backend est plutôt bien placé. Néanmoins au-delà de cela, choisir un environnement ne suffit pas. Pour garantir à nos clients des applications sûres, nos propositions combinent des bons choix d’architecture avec exigences sur les processus, la documentation, la fréquence des mises à jours logiciels, et aussi certains services de sécurité qui vont simuler régulièrement des attaques pour éprouver les solutions.

    Sécuriser les serveurs c’est une choses, mais côté navigateur c’est un peu plus compliqué.

    Developpez.com : Sur ce sujet de la sécurité, Mozilla a désactivé tous les plug-ins par défaut de Firefox 26 (sauf Flash). Les applets Java sont au centre de cette décision. Vous parait-elle bonne ou mauvaise ?

    DigitasLBi : À partir du moment où des codes dangereux se diffusent comme des virus à l’échelle de la planète c’est une décision défensive mais sage.

    Nous n’utilisons pas cette technique qui tend à disparaître avec l’enrichissement du JavaScript coté client. Le véritable enjeu maintenant c’est garantir l’absence de faille en JavaScript.

    Developpez.com : Ces derniers temps, Oracle met beaucoup en avant l’embarqué (Java SE Embedded, Java ME, Java Card sur les cartes à puces, Java TV pour les téléviseurs connectés et les Box, etc.) comment analysez-vous ce mouvement ?

    DigitasLBi : Oui c’est le grand retour d’une des principales forces de Java : un langage qui s’exécute sur n’importe quel assembleur grâce à la machine virtuelle Java.

    L’explosion du DIGITAL c’est avant tout un très grand cycle d’innovation pour les périphériques. Téléphones, baladeurs, télé numériques furent les précurseurs mais on assiste maintenant à l’exploration systématique du potentiel de connecter tous les objets de la vie de tous les jours… Une balance pour se peser (et suivre son poids avec une appli), une montre pour se localiser et courir avec ses amis, un collier qui localise son animal familier etc…

    Cette formidable innovation sur le terrain des périphériques s’accompagne d’une diversité de systèmes d’exploitation très difficile à gérer !
    Dans ce monde de diversité il y a une recherche pour des solutions multi-device.

    Java apparaît comme une réponse pour les applications. HTML/JS une autre réponse pour les interfaces. Android est un système qu’on voit se répandre dans de nombreux appareils. D’autres systèmes open-source sont aussi très intéressants.


    Publications techniques et offres d’emplois de DigitasLBi sur Developpez.com

  2. #2
    Membre expérimenté Avatar de dfiad77pro
    Homme Profil pro
    Responsable Architecture logicielle
    Inscrit en
    Décembre 2008
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Architecture logicielle
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 541
    Points : 1 729
    Points
    1 729
    Par défaut
    Je ne suis pas du tout convaincu.
    Je travail en java et en .net, niveau web ça se vaut mais coté client lourds ,
    je suis plus productif en .net.

    LA multitude de framework JAVA est intéressante technologiquement mais ça deviens rapidement bordélique.

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    1 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 030
    Points : 4 203
    Points
    4 203
    Par défaut
    C'est une bonne chose d'avoir des avis d'experts essayant d'être objectifs.

    Globalement je suis d'accord avec ce qui est dit.

    Donc si je comprends bien, il y a beaucoup de développeurs Java qui développent avec les pieds. Sur la plupart des applications Java que j'ai utilisé, j'ai toujours senti une sorte de lourdeur, de latence.
    Justement Java se traîne un héritage des années 90, qui le rendent parfois inutilement complexe (tous ces fichiers de configurations...). Honnêtement, j'ai expérimenté récemment Eclipse (j'ai même testé Kepler), c'était une horreur. Long à démarrer, lentissime, peu réactif, colorations syntaxiques et helpers pas tops (il faut toujours aller chercher des Javadocs...). Par contre, même si je sens des latences, je donne un bon point à IntelliJ de JetBrain, qui supporte d'ailleurs Java 8.
    C'est clair que c'est verbeux. Ca va changer, mais j'ai souffert avec les Calendar...

    Alors peut-être aussi que certains Frameworks sont mal conçus. Car quand on ajoute Maven + Spring + JBoss + AspectJ + JUnit (ou son successeur) + Log4J + ..., les projets deviennent imbuvables je trouve. Il y en a partout, ça met 3 plombes à compiler, il faut déployer ensuite (heureusement on n'a plus trop à écrire les descripteurs de déploiement) ce qui met du temps également, l'autocomplétion met du temps à se dérouler,....

    Peut-être que le niveau d'expertise requis pour faire du très bon boulot sous J2EE est supérieur à du .NET. Peut-être que la portabilité du langage peut être un frein niveau performances ? Je ne sais pas.
    J'ai récemment porté une appli de Java 7 à C#.NET 3.5. J'ai mis une semaine car j'ai fait beaucoup de copier/coller adapté. Je n'ai pas fait de bench mais le résultat me semblait plus rapide et réactif. Et j'ai surtout remplacé des pages de code Java par des requêtes Lambda de quelques lignes, et les ##### de Calendar par de simples méthodes de la classe DateTime... J'ai en gros divisé la quantité de code par 4.

    Par contre, il me semble que MagicDraw UML soit un exemple d'appli Java bien codée. C'est réactif, fonctionnel, ça se lance assez vite,...

    Alors voila. Si on me donne l'occasion de me réconcilier avec Java, je ne dirai pas non (une bonne partie de mes études s'est basée sur Java. J'ai appris .NET en lisant des tutoriaux, par curiosité, et puis dans le monde professionnel. Mais contrairement à Java et Eclipse, dès que j'ai ouvert mon premier projet .NET avec Visual Studio (c'était quand même une plateforme de E-Commerce en entreprise), je me suis senti directement à l'aise et j'ai dès le premier jour réussi à corriger des bugs).

  4. #4
    Membre actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 253
    Points
    253
    Par défaut
    Le principal problème de Java c'est un langage assez ancien et qui n'a pas évolué comme on le pourrait le penser voir très tard en outre l'autre problème c'est les sociétés qui utilisent des vieux technos et qui ne veulent pas mettre à jour pour xyz raisons , ce problème n'existe pas avec une solution propriétaire.

    Par exemple côté client lourd à mon sens on devrait plus utiliser swing et d'autre UI vieux d'une dizaine d'année et surtout pas adapter à aujourd'hui mais plutôt passer à JavaFX qui est une merveilleuse technologie pour la création d'UI et qui offre ce que le .NET fait depuis des années avec le WPF.

    Car quand on ajoute Maven + Spring + JBoss + AspectJ + JUnit (ou son successeur) + Log4J + ..., les projets deviennent imbuvables je trouve.
    C'est justement le problème dans l'univers Java , tant que ton application fonctionne , le reste ça importe peu...

  5. #5
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    On n'attend pas parler de plusieurs éléments marquant, entre autre :
    - le départ de la fondation Apache du JCP.
    - la fin de la JVM Harmony
    - l'arret de OpenSolaris qui était un exellent OS pour java
    - les divers forks plus ou moins lié a la politique d'oracle, MySQL,OpenOffice,Hudson,...etc...

    Java a toujours été plus qu'un simple language, avec tout un environnement. et depuis 4ans meme si Java est tres présent, il évolu globalement moins vite que sous la direction de Sun, il y avait plus de création et d'innovation. parmis les projets dont on entend parler, javafx, coin, lambda etc... tout cela on en entend parler depuis bien plus de 4 ans.

    Quoi de nouveau depuis qu'oracle est la ? ... je n'arrive meme pas a en trouver...

    Personnellement j'aime bien java et j'en fais enormement, mais a ce que je vois oracle est en train de couler le navire, ou plutot de repaindre un navire couleur Open-source/Community en une couleur Business. c'est triste, ce qui faisait tout l'esprit de Java.
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  6. #6
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par Johnny P. Voir le message
    Par exemple côté client lourd à mon sens on devrait plus utiliser swing et d'autre UI vieux d'une dizaine d'année et surtout pas adapter à aujourd'hui mais plutôt passer à JavaFX qui est une merveilleuse technologie pour la création d'UI et qui offre ce que le .NET fait depuis des années avec le WPF.
    Ça doit dépendre des domaines mais pour ma part, ça fait un moment que je n'ai pas vu une application professionnelle en Swing. Tout ce qui est application complexe qui reste client lourd tend à se faire en Eclipse RCP. Pour les autres, elles se tournent de plus en plus vers le full web.

    Je ne sais donc pas si c'est du au fait que les applications tendent à se centraliser (et avec le web c'est plus pratique), que les gens ont une méconnaissance des nouveautés (JavaFX en est un exemple flagrant) ou que ce genre de technologie est boudé pour une autre raison.

    Citation Envoyé par Johnny P.
    C'est justement le problème dans l'univers Java , tant que ton application fonctionne , le reste ça importe peu...
    Que veux tu dire par là ?
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  7. #7
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    Ça doit dépendre des domaines mais pour ma part, ça fait un moment que je n'ai pas vu une application professionnelle en Swing. Tout ce qui est application complexe qui reste client lourd tend à se faire en Eclipse RCP. Pour les autres, elles se tournent de plus en plus vers le full web.
    Je fais le constat inverse dans ma boite. Le SWT est au contraire mourrant, pas un contrat le demandant en 6ans de boite.

    Pour le web meme constat, la portabilité est toujours problématique et le roulement des librairies suit un cycle de 2 ou 3ans. ce qui force des changements assez radicaux régulièrement ou lors des mises a jours. Nos gros clients ne font que des web-services et ont des applis lourd souvent sur netbeans platforme et déployé en JavaWebStart.
    Globalment c'est une augmentation des demandes pour du desktop au détriment du web.
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  8. #8
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par eclesia Voir le message
    Globalment c'est une augmentation des demandes pour du desktop au détriment du web.
    Et c'est dans quel domaine par curiosité, les SIG je suppose ?
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  9. #9
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 709
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 709
    Points : 4 790
    Points
    4 790
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    ça fait un moment que je n'ai pas vu une application professionnelle en Swing
    Je peux te faire visiter mes clients si tu veux
    Pour rebondir un peu sur la remarque d'Eclesia, je pense que chaque boîte de développement
    a ses habitudes qui correspondent au style des clients donc il n'y a pas de quoi en faire un troll.
    Je fais du Swing parce que mes clients ont tous des besoins desktop et c'est devenu ma spécialité.

    Ce que je trouve sympa dans Java c'est que je peux toujours faire aboutir les projets du client.
    Et je suppose que les participants à cette discussion sont dans le même état d'esprit.
    Après, il est normal que chacun "fasse son marché" dans les bibliothèques java en fonction de ses besoins et sensibilités.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  10. #10
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    je bosse uniquement en JavaSE sur un projet scientifique avec des tas d'aspects critiques.
    L'accusation de verbosité me fait marrer: heureusement que Java est verbeux! dans un équipe avec des programmeurs éparpillés à différents endroits de la planête il vaut mieux être extrèmement explicite.
    Certes j'utilise Groovy pour des maquettes et des scripts mais pas pour des runtime critiques.

    Je développe des éléments de framework ... mais aussi j'utilise d'autres framework et là il faut être très vigilant sur les aspects maintenabilité et durabilité des autres frameworks
    citation : Maven + Spring + JBoss + AspectJ + JUnit (ou son successeur) + Log4J +
    Maven: m'empoisonne la vie mais j'ai pas le choix
    AspectJ: utilisé au début ... mais en sommeil
    JBoss: était utilisé uniquement pour un besoin ponctuel : JMS -> remplacement par communication JGroups
    Spring: éliminé ...j'ai re-écrit cette partie de framework (trop fragile pour ce que l'on fait)
    JUnit: éliminé et remplacé par notre propre framework de test (je n'ai jamais compris pourquoi Junit est un "standard": les sources ne sont même pas documentées sérieusement et les fonctionnalités sont bancales)
    Log4J: pour des besoins particuliers de logging j'ai voulu faire ma propre librairie ... mais là je me suis planté car la librairie standard de Java (JUL) est un vrai caca de programmation (je m'en suis rendu compte trop tard) ... comme quoi on n'est pas toujours gagnant en s'imaginant être plus astucieux que les autres

    moralité: dans un milieu où Python est le langage dominant ... je suis bien content d'avoir Java! Après c'est vrai que le choix des bibliothèques sur lesquelles s'appuyer est un vrai casse-tête stratégique.
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  11. #11
    Nouveau Candidat au Club

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Afghanistan

    Informations forums :
    Inscription : Juin 2003
    Messages : 452
    Points : 0
    Points
    0
    Billets dans le blog
    1
    Par défaut Manque de java
    Je pense la seul chose qui manque qui devrait faire l'objet d'un JSR , c l'ajout de type structure et tableau comme en c pour alloué des données sur la pile d'execution.
    Cela permetrait d'éviter d'utiliser le GC, a d'avoir des fonctions rapide pour manipuler des vecteurs des matrices etc...
    Et surtout le langage pour servir pour des applications de bas niveaux comme des drivers etc...
    Sinon Lejos (programmation java sur la LEGO NXT ) est un bon example du standard qu'est JAVA et de ca puissance

  12. #12
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Je pense la seul chose qui manque qui devrait faire l'objet d'un JSR , c l'ajout de type structure et tableau comme en c pour alloué des données sur la pile d'execution.
    Cela permetrait d'éviter d'utiliser le GC, a d'avoir des fonctions rapide pour manipuler des vecteurs des matrices etc...
    structure et tableau ?
    Considérons que les structures existent, qu'ils sont l'équivalent des "class", qui passent par copie.
    Une structure ne pourra donc contenir que des attributs avec des variables primitives, vu que le garbage Collector gère les classes créées avec le mot-clé class. Je trouve ça très limité.
    Un tableau en C ou C++ ne passe pas par copie, donc tu dois le gérer toi même si tu l'alloues dynamiquement
    Conclusion tu remets en cause Java de A à Z. Autant gérer la mémoire manuellement, donc rester sur du C ou C++ (ou utiliser les smart pointers en C++, qui je trouve sont lourd à l'écriture).
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 126
    Points : 351
    Points
    351
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    structure et tableau ?
    Une structure ne pourra donc contenir que des attributs avec des variables primitives, vu que le garbage Collector gère les classes créées avec le mot-clé class. Je trouve ça très limité.
    Il pourrait aussi contenir d'autres structures

    Je ne trouve pas que cela soit très limité, ça répond à un besoin précis.

  14. #14
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par eclesia Voir le message
    Java a toujours été plus qu'un simple language, avec tout un environnement. et depuis 4ans meme si Java est tres présent, il évolu globalement moins vite que sous la direction de Sun, il y avait plus de création et d'innovation. parmis les projets dont on entend parler, javafx, coin, lambda etc... tout cela on en entend parler depuis bien plus de 4 ans.
    Ce n'était pas forcément mieux du temps de Sun...

    Avant Java 5.0, la plus grosse modif du langage concernait les classes internes dans Java 1.1, puis des mots-clefs strictfp et assert dans Java 1.2 et 1.4. Et c'est tout !
    Il aura fallut attendre 8 ans pour que Java 5.0 apporte un vent de fraicheur au langage...

    Et même là les "nouveautés" étaient discuté depuis bien longtemps.
    La JSR sur les Generics a débuté en 1999 alors que Java 1.3 n'était pas encore sorti... et que Java 5.0 est arrivée en 2004 !

    Quand à Java 7, il peut paraitre anodin en substance, mais il cache en son sein l'une des plus grosse modif de Java : l'ajout de l'instruction invokedynamic dans le bytecode.
    D'ailleurs l'implémentation des lambdas de Java 8 est fortement basé là dessus.


    Pour avoir suivi pendant un moment certaines mailings list (coin et lambda en particulier), il y a une attention très particulier porté aux impacts de chaque nouvelle fonctionnalités, ainsi qu'à leurs fonctionnements et les éventuels problèmes que cela peut entrainer.

    Il en résulte un processus bien plus long, mais peut-être aussi un peu plus réfléchi et un peu moins "fashion victim".
    On compare souvent Java à C#, mais même si les fonctionnalités semblent similaire, il prend bien souvent une direction et une approche différente?
    Par exemple :
    • Les enums qui sont de vrai objets (avec des attributs/méthodes) pouvant implémenter des interfaces.
    • La covariance/contravariance des Generics utilisable au besoin sur n'importe quel type Generics, alors qu'il faut définir un type précis avec C#.
    • Les lambdas qui s'affecte dans une interface fonctionnelle au lieu d'utiliser un type spécifique.
    • Les default's methods intégré au runtime, qui permet de profiter quand même des bénéfices de l'héritage.



    a++

  15. #15
    Expert éminent
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2007
    Messages
    2 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 2 161
    Points : 7 953
    Points
    7 953
    Par défaut
    Ca fait plaisir de lire un article assez objectif sur Java sans parti pris.
    Merci developpez.com !!

    Pour ce qui est des performances, je suis en total accord avec les experts de DigitasLBi.
    Je ne compte plus les fois où j'ai dû repasser sur du code non optimisé avec une gestion de la mémoire absolument désastreuse...

    Pour ce qui est du côté verbeux, personnellement, je trouve ça très bien.
    Ca rend le code parfaitement lisible et compréhensible qui peut alors être facilement repris et maintenu : essentiel pour des applications d'entreprise.

    De mon point de vu, un bon développeur est un développeur qui sait trouver l'équilibre entre perf et lisibilité.
    Car si tu codes quelques d'ultra performant mais tellement complexe et illisible que personne d'autre ne pourra le reprendre, celui ne sera jamais utilisé.
    L'inverse est tout aussi vrai.
    Java est un excellent langage pour gérer ces 2 aspects du développement.

  16. #16
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 469
    Points : 2 997
    Points
    2 997
    Par défaut
    Citation Envoyé par eclesia Voir le message
    Je fais le constat inverse dans ma boite. Le SWT est au contraire mourrant, pas un contrat le demandant en 6ans de boite.
    SWT tout seul ca ne m'etonne pas, il reste toujours Vuze qui tient en pur-SWT. Par contre les applis Eclipse RCP ca marche encore bien et il y a de la demande (en tout cas il y a des offres d'embauche). Mais c'est clairement pas pour faire des applis ludiques, c'est clairement oriente outils de travail.

    Niveau client, je pense malheureusement que Cordova va prendre le dessus. Par contre Java gardera surement beaucoup d'important cote serveur et sur les workstations.
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

  17. #17
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Citation Envoyé par super_navide Voir le message
    Je pense la seul chose qui manque qui devrait faire l'objet d'un JSR , c l'ajout de type structure et tableau comme en c pour alloué des données sur la pile d'execution.
    Cela permetrait d'éviter d'utiliser le GC, a d'avoir des fonctions rapide pour manipuler des vecteurs des matrices etc...
    Et surtout le langage pour servir pour des applications de bas niveaux comme des drivers etc...
    Sinon Lejos (programmation java sur la LEGO NXT ) est un bon example du standard qu'est JAVA et de ca puissance
    Pour information, maintenant (depuis java 6u23) la JVM applique l'Escape Analysis (http://docs.oracle.com/javase/7/docs...escapeAnalysis, https://weblogs.java.net/blog/forax/...alysis-default). Pour faire simple, si elle le peut (ou l'estime avantageux), la JVM va allouer les objets dans la pile. Par exemple un objet dans la portée est limitée à une seule méthode sera surement alloué sur la pile.

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Ce n'était pas forcément mieux du temps de Sun...
    Même constat pour moi, je dirais même que ça a nettement accéléré les choses depuis le rachat par Oracle, pas forcément pour du mieux mais bon, ça doit être très compliqué quand on veut garantir une certaine compatibilité ascendante.

    Pour l'aspect performance du langage, personnellement, je le trouve extrêmement performant compte tenu de son principe de fonctionnement.
    Je trouve normal de perdre quelques millièmes de secondes afin d'être largement plus portable d'un OS à un autre.
    Et comme ça a été dit plus haut, c'est plus souvent le mauvais programmeur qui fait qu'une application est lente...

    Le seul problème, qui est aussi une force, c'est l'incroyable diversité de choix dans les frameworks, là, il ne faut pas se tromper
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  19. #19
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Le seul problème, qui est aussi une force, c'est l'incroyable diversité de choix dans les frameworks, là, il ne faut pas se tromper

    C'est la raison pour laquelle j'ai du mal à me tourner vers des langages récents que je trouve sympathiques. En Java, besoin d'une implémentation d'un algo, d'un outil pour faire X? Pas de soucis on trouve tout (et aussi "de tout" ).

    Quand je suis arrivé du monde .Net il y a 5 ans, le monde java (pour le web) m'a fait l'effet d'être une grosse décharge pleine à ras bord de frameworks pas finis s'appuyant sur une multitude d'autres bidules assemblés avec du scotch. Maintenant que j'ai appris à m'y retrouver j'apprécie les choix qui s'offrent à moi. Puis j'ai aussi compris qu'il fallait rester raisonnable et utiliser des choses que lorsqu'on les comprend suffisamment. (ma première application JSF1 + Ejb == epic fail).

    Perso j'attends aussi énormément des langages alternatifs pour la JVM, l'écosystème de java + la maturité de la JVM + une syntaxe moderne, c'est une combinaison alléchante.

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 67
    Points : 97
    Points
    97
    Par défaut
    "Je ne peux pas laisser dire que java est lent..."

    Ah ah, elle est bien bonne celle là !

    Va pourtant bien falloir le laisser dire, car les machines virtuelles java sont d'une lenteur affligeante.
    Si c'est à cause de mauvais algos, il faut croire que tous les mauvais développeurs sont sur java...
    A chaque fois que je lance une application java, j'ai l'impression de faire un bon de 15 ans en arrière.

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/07/2008, 09h06
  2. Réponses: 7
    Dernier message: 03/08/2006, 17h06
  3. [Emploi] Les tests techniques Java/J2EE c'est quoi ?
    Par dedeloux dans le forum Emploi
    Réponses: 6
    Dernier message: 27/04/2006, 16h35
  4. [Java > C#] Quel est l'équivalent de ByteArrayOutputStream ?
    Par Ezek13 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 19/04/2006, 09h51
  5. Champ ds état visible ssi il n'est pas vide !
    Par Fredri dans le forum Access
    Réponses: 11
    Dernier message: 20/12/2005, 12h15

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