Bienvenue au sein de la Communauté Java d'Extia ! Avant de profiter de toutes ses fonctionnalités, commence par te présenter brièvement aux autres membres.
L'éditeur a présenté la feuille de route du JDK pour les 10 prochaines années. En ligne de mire : la prise en compte des enjeux du Cloud, de la gestion massive de données, et des besoins des développeurs en matière de productivité.
A l'occasion de la conférence QCon de Londres, Oraclea dévoilé les principales évolutions qui toucheront Java SE d'ici 2020. Elles porteront notamment sur la gestion des objets, mais aussi sur des évolutions visant à mieux répondre aux problématiques duCloud Computing et du Big Data.
Lors de sa présentation, l'éditeur a notamment dévoilé la feuille de route de son kit de développement Java (JDK). Sur ce point, Oracle prend le contre-pied de Sun qui avait tendance à peu communiquer sur ses intentions. Le groupe se projette même très loin dans l'avenir : JDK 9 sera lancé en 2015, JDK 10 en 2017, JDK 11 en 2019, et JDK 12 en 2021.
Vers la disparition des primitives ?
Parmi les évolutions annoncées, JDK 10 introduira un système de type unifié, à travers lequel tout sera géré à travers des objets, sans nécessité de recourir aux traditionnelles primitives - qui devraient donc disparaitre à terme. Avec Java SE 9, Oracle compte renforcer l'interopérabilité de son framework, et travailler plus que jamais sur une machine virtuelle Java (JMV) multi-langages (la JVM actuelle prend déjà en charge JRuby, Scala et Groovy).
Autre objectif : faciliter le déploiement des systèmes Java, en introduisant des possibilités d'auto-tuning et d'optimisation des structures de données.
Le Cloud Computing, parmi les priorités d'Oracle
Sur le plan du Cloud, le multi-tenant sera l'un des objectifs de JDK 8 - avec à la clé une meilleure gestion du partage entre JVM sur un même OS et par thread. Une machine virtuelle Javahypervisor-aware fera son apparition avec JDK 9, avec une gestion partagée de la mémoire. Cette version sera aussi centrée sur le traitement massif de données, et introduira la prise en charge de l'accélération GPU (pour Graphics Processing Unit) etFPGA (pour Field Programmable Gate Array). Dans sa présentation, Oracle a également insisté sur sa volonté de s'orienter vers un modèle de développement plus ouvert et coopératif, notamment à travers le projet OpenJDK. La volonté du groupe serait donc de donner plus de place à la communauté des développeurs Java et à ses partenaires dans le processus d'évolution du framework Java. Source : http://www.journaldunet.com/developpeur/java-j2ee/feuille-de-route-de-java-d-ici-2020-0312.shtml
1- AngularJS est devenu la référence des infrastructures JavaScript côté client
Sur le terrain des infrastructures JavaScript, historiquement très nombreuses, plusieurs solutions commencent à s'imposer. Sur la partie serveur, Node.js a de plus en plus clairement remporté la bataille. Dernière preuve de cet engouement : Groupon et LinkedIn ont récemment annoncé la migration d'une partie de leur couche applicative serveur, initialement sous Ruby on Rail, vers Node.js.
Mais qu'en est-il des infrastructuresJavaScript côté client ? Sur ce terrain, quatre solutions s'affrontent : AngularJS, Knockout.js, Ember.js, ainsi que BackBone. Sachant que ce dernier affiche une position à part, puisqu'il est conçu pour fournir une ossature objets à un code. Il peut donc être utilisé avec les trois autres. Alors qu'AngularJS est porté par Google, Knockout.js et Ember.js (de son côté basé sur un assemblage d'autres projets) sont tous deux issus d'initiatives open source plus communautaires.
D'après les premiers indicateurs dont nous disposons autour de la valorisation de l'expertise Angular en termes de salaire, il semble qu'elle commence à être assez élevée en France. Selon une étude d'Urban Linker parue en 2014, les profils de développeur affichant une expérience Angular font partie de ceux qui peuvent prétendre aux niveaux de salaire les plus élevés sur le terrain du développement Web.
2- Une infrastructure Modèle-Vue-VueModèle pour gagner en productivité
Depuis environ un an, AngularJS ne cesse de monter en popularité (cf. le graphique Google Trend ci-dessous). Mais qu'apporte AngularJS ? "C'est une infrastructure MVVM ou Modèle-Vue-VueModèle conçue pour construire des Web Apps, et moins des sites web", explique Damien Benoit, lead développeur chez CCM Benchmark (éditeur du JDN). Google parle même d'infrastructure MVW (pour Model-View-Whatever). Le principe du MVVM est simple : les données que le client saisit engendrent une mise à jour du contrôleur qui met à jour par ricochet la vue. Et pas besoin de template temporaire de pré génération. AngularJS utilise directement la vue HTML d'origine pour répercuter ces mises à jour. r
AngularJS pose des problèmes pour le référencement Google
Avec ce dispositif, "l'objectif est d'offrir une solution pour développer plus vite", résume Damien Benoit. "Malgré tout, AngularJS pose des problèmes pour le référencement Google. Avec lui, l'optimisation SEO est loin d'être évidente. Il est nécessaire de faire des efforts de développement pour prendre en compte cette dimension." Mais, sur ce terrain, Google commence à faire des efforts pour mieux prendre en compte les contenus issus d'applications mobiles. Ce qui, dans le futur, devrait faciliter la tâche des développeurs AngularJS (lire l'article : SEO, Google va indexer le contenu des applications Android).
3- Ce qui fait sa force : un projet porté par Google
Reste que Knockout.js et Ember.js reposent sur le même principe qu'AngularJS. Alors qu'est-ce qui fait qu'Angular recueille autant d'engouement ? "Le fait que Google porte ce projet explique cette popularité. De fait, AngularJS bénéficie de la force marketing de Google, et de ses compétences", analyse Damien Benoit. Un investissement qui permettrait au framework JavaScript de faire la différence sur plusieurs points.
Un data-binding bidirectionnel mieux optimisé
D'abord, selon Jean Guillaume Dujardin et Pierre Vaidie de The Coding Machine, AngularJS offrirait un approche MVVM mieux optimisée. "Ce dispositif de data-binding bidirectionnel permet à un input de la page de s'afficher dans un autre endroit de la page, et donc facilite la vie des développeurs. En simplifiant le codage, il réduit aussi le risque de bugs", rappellent les deux experts (lire leur document de synthèse sur le sujet).
"Mais cette manipulation du DOM est aussi proposée par les autres frameworks JavaScript", pondère Damien Benoit.
4- Autre point fort : les directives
Autre point fort, souvent évoqué, et rappelé par Jean Guillaume Dujardin et Pierre Vaidie : le Declarative binding. "Les directives permettent de développer des attributs et des éléments HTML spécifiques de manière à manipuler proprement le DOM", constate-t-on chez The Coding Machine. Facilitant l'ajout ou la modification de composants, ces directives permettent de définir des attributs, une liste particulière avec une image par exemple, ou de piloter des comportements, un événement par exemple. A la différence de l'approche composant d'Angular, "d'autres frameworks, comme Knockout.js, passent par un attribut de node, ce qui peut être un peu plus verbeux. Quant à Ember.js, il est orienté templating, ce qui peut être encore un peu plus complexe", reconnait Damien Benoit.
"Ce qui nous permet de dire qu'Angular va exploser : les directives peuvent se partager", résume-t-on chez The Coding Machine. Et Damien Benoit d'ajouter : "AngularJS s'intègre aussi mieux avec Polymer, en reprenant son approche orientée composants."
5- Une feuille de route riche
En attendant, Google déroule sa feuille de route. En novembre dernier, le groupe a dévoilé AngularJS 1.2. Une nouvelle mouture qui introduit notamment la gestion des animations (via ngAnimate). AngularJS 1.3 vient aussi tout juste de sortir de ses laboratoires, avec des performances accrues et l'arrêt du support d'Internet Explorer 8. Mais déjà, AngularJS 2.0 est en ligne de mire, avec notamment la volonté de rendre compatible le framework JavaScript avec les Web Components. Il est notamment envisagé que la future version d'AngularJS s'appuie sur le polyfill (la couche d'abstraction du navigateur) de Polymer pour utiliser les Web Components (dixit InfoQ). Mais aussi qu'il prenne en charge ECMAScript 6 (EC6). Un gros travail devrait aussi être réalisé pour améliorer les performances (voir le post sur le blog du projet). Il est aussi prévu de rendre l'infrastructure plus modulaire. A suivre...