background preloader

Faut-il encore adopter Java pour un client lourd ? Avec quel langage vous lanceriez-vous ?

Faut-il encore adopter Java pour un client lourd ? Avec quel langage vous lanceriez-vous ?
L'objet de ce post n'est pas de revenir sur le désengagement d'Oracle vis-à-vis de JavaFX. Bouye l'a fait dans son actualité mieux que je ne saurais le faire. Je ne parlerai pas non plus Swing qui date des années 1990 et qui a révolutionné la programmation multiplateforme. Nous savons que les technologies Java tournées vers le client lourd sont soit vieillissantes (Swing) soit incertaines quant à leurs pérennités (JavaFX). Mais nous savons également que l'écosystème Java est d'une puissance inégalée dans le monde de l'open source ne serait-ce que pour la richesse de ses API. Java est porteur d'une rigueur qui s'exprime à travers l’élégance du langage dès les premières phases de programmation qui s'impose aussi bien aux développeurs qu'aux chefs de projet. Gestion des sources (GIT ou SVN)Construction compilation (maven)Tests unitaires (Junit)Intégration continue (Jenkins)Offre des IDE (Eclipse, Netbeans) Une alternative à Java devra tenir la comparaison sur les points décrits supra.

Lollipop est désormais la version Android la plus utilisée, seize mois après sa sortie officielle Seize mois, c’est le temps qu’il a fallu à Lollipop pour enfin devenir la version du système d’exploitation Android la plus populaire d’après les données de Google. Conformément à sa tradition, Google vient en effet de publier son tableau de bord sur l’utilisation des différentes versions de son OS mobile, destiné aux développeurs Android. On peut encore se souvenir des débuts difficiles de Lollipop. En janvier 2015, deux mois après sa sortie, Android Lollipop a affiché une progression très lente, en ne figurant toujours pas dans le tableau de bord de Google pour les développeurs Android. Autrement dit, cette version d’Android était exécutée sur moins de 0,1 % des terminaux Android, alors que son prédécesseur KitKat avait pu enregistrer une part de 1,1 % un mois après son lancement. Pour ce mois-ci, avec maintenant 36,1 % de parts, Lollipop détrône KitKat et devient le nouveau leader du classement. Source : Tableau de bord Android Et vous ? Qu’en pensez-vous ? Voir aussi

Proposition pour la prise en compte de l'inférence du type dans une prochaine version de #Java, le mot clé var ferait son apparition Un reproche qui revient régulièrement en ce qui concerne Java est le fait que le langage semble plutôt « verbeux » comparé à d'autres langages plus modernes. Par exemple, il convient d'écrire : LinkedList<String> stringList = new LinkedList<String>() Même si des améliorations dans le langage apportées lors des JDK 7 et 8 permettent désormais d'écrire LinkedList<String> stringList = new LinkedList<>(), voire LinkedList<String> stringList = new LinkedList() (au prix de quelques warnings suivant la configuration de votre IDE), il reste que la déclaration obligatoire du type à gauche est redondante dans bien des cas et peut sembler assez souvent inutile. Une nouvelle proposition d'amélioration du JDK (JEP ou JDK Enhancement Proposal) en date du 8 mars 2016 vient de voir le jour, la JEP 286: Local-Variable Type Inference. Si la proposition est retenue, ce mot serait utilisable pour les variables locales, les boucles for-each et les boucles for traditionnelles.

Quel framework Web Java utilisez-vous principalement en 2016 ? En 2012, l'équipe Java avait réalisé un sondage concernant l'utilisation des frameworks Web Java par nos membres. Vous pouvez y trouver les résultats ci-dessous : Sondage d'utilisation des frameworks Java Web réalisé en 2012 On y trouvait alors les tendances suivantes :une forte utilisation de frameworks matures : Java Server Faces, Struts et Spring MVC ;la montée en puissance de GWT ;l'utilisation de frameworks plus à la marge : Play! Nicolas pour l'équipe Java. Une mise à jour de sécurité Java publiée par Oracle en 2013 se révèle inefficace, la faille peut être exploitée sous les dernières versions de Java Une mise à jour de sécurité Java publiée par Oracle en 2013 se révèle inefficace et la faille qui était censée être fixée peut de nouveau être exploitée selon les chercheurs de la firme de sécurité polonaise, Security Explorations. Une trentaine de mois s’est écoulée depuis la publication de la mise à jour par Oracle. Cependant, c’est aujourd’hui des milliers de serveurs et d’ordinateurs qui sont sous la menace d’une attaque en exploitant une faille vieille de plus de deux ans, avertissent les chercheurs. Les chercheurs de la firme de sécurité Security Explorations avaient déclaré avoir implémenté un code illustrant l’impact de la mise à jour en question et l’avaient testé sous les environnements Java SE Update 97, Java SE 8 Update 74, et Java SE 9 Early Access Build 108. La société de sécurité polonaise a, conformément à sa nouvelle politique, averti le public de la découverte d’une faille dans la mise à jour de 2013, sans préavis adressé à Oracle. Source : seclists.org Et vous ?

Un correctif publié par Oracle en 2013 pour colmater une faille de Java SE est aisément contournable, d'après des chercheurs Une faille de Java SE, la distribution de la plateforme Java destinée typiquement aux applications pour postes de travail, qu’Oracle a colmatée en 2013 semble toujours fonctionnelle. Pour être plus précis, des chercheurs ont trouvé un moyen de contourner le correctif de sécurité mis en place par Oracle, ce qui signifie que des millions d’utilisateurs de Java ont été vulnérables pendant plus de trois ans. C’est Adam Gowdiak, le PDG et fondateur de l’entreprise de sécurité Security Explorations, qui a divulgué ces informations dans un billet : « salut à tous, le 7 mars 2016, Security Exploration a modifié sa politique de divulgation. Par conséquent, nous ne tolérons plus les correctifs défectueux. Si jamais une instance d’un correctif défectueux pour une vulnérabilité que nous avons signalée à un vendeur était trouvée, nous allons procéder à la divulgation sans délai », a-t-il prévenu. Le correctif d’Oracle embarque un vérificateur pour les alias de type (spoofing).

Si Java est considéré par plusieurs professionnels comme étant lent et lourd, le framework web le plus rapide selon TechEmpower est écrit en Java TechEmpower a publié les résultats d’un test de performance de cent soixante-deux plateformes d’applications web, de framework et de microframeworks écrits dans différents langages de programmation, dont Java, C++, Go, Python ou encore Ruby. Ces résultats mettent en évidence la suprématie de Java par rapport aux autres langages utilisés pour écrire les différentes plateformes en termes de rapidité. En effet, d’après les résultats de TechEmpower, le framework rapidoid écrit en Java affiche une performance de 100 % dans les résultats du test de performance en termes de rapidité, contre 99,6 % pour le framework cpoll_cppsp écrit en C++ ou encore 89,9 % pour le framework fasthttp_postgresql écrit avec le langage Go. Java est souvent présenté par certains programmeurs web et autres experts du génie logiciel comme étant un langage lent et assez lourd par rapport aux autres langages du web. Source : TechEmpower Et vous ? Que pensez-vous de ce test de performance de TechEmpower ? Voir aussi

Oracle corrige 136 failles de sécurité dont plusieurs sont exploitables sans authentification, la firme encourage vivement l'adoption des correctifs Oracle vient de publier des mises à jour de correctifs pour 49 de ses produits. Ces mises à jour considérées comme critiques par la firme contiennent pas moins de 136 nouveaux correctifs de sécurité. Elles viennent corriger un nombre important de failles détectées dans les produits d’Oracle parmi lesquels on peut citer les bases de données (Berkeley DB, MySQL), les produits de virtualisation Linux, Java SE, Solaris, les serveurs GlassFish, la suite d’application de tests, les produits pour la suite de collaboration, etc. Bien que les détails pour l’exploitation de ces failles détectées n’aient pas été donnés, Oracle recommande toutefois d’appliquer dès que possible ces correctifs publiés. Et pour cause, « dans certains cas, il a été rapporté que les attaquants ont eu du succès parce que les clients ciblés n’avaient pas appliqué les correctifs d’Oracle qui étaient disponibles », a signalé Oracle. Source : Oracle Et vous ? Que pensez-vous du nombre relativement élevé de failles corrigées ?

Peu de nouvelles fonctionnalités pour JavaFX dans Java 9, JavaFX supportera les modules, un billet de blog de Fabrice Bouyé Suite à un échange sur la liste de diffusion des développements de l'OpenJFX concernant la future mise à jour du support de WebKit dans JavaFX, Kevin Rushforth a réitéré une fois de plus que le futur JDK 9 ne contiendrait pas d’améliorations majeures concernant JavaFX. En effet, par souci de priorité des ressources, le gros du travail en cours concerne l’implémentation des modules (projet Jigsaw) dans le toolkit graphique. À un développeur qui demandait quel serait le statut du support de WebGL dans cette nouvelle version de WebKit, Kevin a en effet répondu : Envoyé par Kevin Rushforth No. It was an issue of resources versus priority and scope. Contrairement à AWT/Java2D/Swing et ImageIO qui seront livrés dans un gros module monolithique, JavaFX fait en effet l'objet d'un travail plus poussé par les équipes d'Oracle et sera découpé en plusieurs petits modules pour permettre d'utiliser telle ou telle portion du toolkit séparément (exemple : les propriétés sans les contrôles, etc.).

Top 10 Easy Performance Optimisations in Java | Java, SQL and jOOQ. There has been a lot of hype about the buzzword “web scale“, and people are going through lengths of reorganising their application architecture to get their systems to “scale”. But what is scaling, and how can we make sure that we can scale? Different aspects of scaling The hype mentioned above is mostly about scaling load, i.e. to make sure that a system that works for 1 user will also work well for 10 users, or 100 users, or millions. An entirely different aspect of scaling is about scaling performance, i.e. to make sure that an algorithm that works for 1 piece of information will also work well for 10 pieces, or 100 pieces, or millions. If there was anything like free lunch (there isn’t), we could indefinitely combine scaling up and out. Big O Notation Java 7’s ForkJoinPool as well as Java 8’s parallel Stream help parallelising stuff, which is great when you deploy your Java program onto a multi-core processor machine. But don’t be fooled by the effect that parallelism has! 1. Takeaway

Related: