JavaRush /Blog Java /Random-FR /Pause café #68. Un avis honnête sur Java et son écosystèm...

Pause café #68. Un avis honnête sur Java et son écosystème. Trois nouveaux outils Java à considérer en 2021

Publié dans le groupe Random-FR

Un avis honnête sur Java et son écosystème

Source : Dev.to D'accord, j'avoue que mon langage principal est le C#. Mais ceci est mon opinion impartiale sur Java et son écosystème environnant. J'ai utilisé assez souvent la commande bash en Java, voyant toutes ses lacunes. Par exemple, Java n'a pas de propriétés, il n'a nativement aucun événement, aucune structure, aucune surcharge d'opérateur, et jusqu'à Java 10, il n'y avait pas d'inférence, donc il n'y a pas de « var ». Tout est en C# ! De plus, j'ai utilisé bash pour Java en raison du manque de LINQ, var et énumérations. Et pourtant j’écris pas mal en Java, notamment lorsque je crée des applications pour Android, mais pour d’autres choses aussi. Mon premier projet était aussi en Java ! Ainsi, vendredi soir, par urgence, j'ai dû écrire en Java pendant plusieurs heures d'affilée. Et devinez ce que j'ai découvert ? FLUX! Pause café #68.  Un avis honnête sur Java et son écosystème.  Trois nouveaux outils Java à considérer en 2021 - 1Apparemment, Java 8 a introduit les threads ! Et je n'en avais aucune idée ! Pour ceux d'entre vous qui ne le savent pas, Streams est une implémentation Java de LINQ. J'ai également découvert que Java 10 dispose d'une inférence de type, donc Java a désormais une fonction var ! Je n'arrive pas à croire à quel point mes connaissances sont obsolètes, mais honnêtement, il y avait une raison à cela. Ces deux choses ont fait une grande différence dans ma réflexion ! Saviez-vous que Java vérifie toujours les exceptions, mais pas C# ? J'avoue que cette fonctionnalité me manque vraiment en C# ! Oui, il n'y a pas de structures, de propriétés, etc., mais bon sang, c'est élégant ! Je pense que Java, de par sa conception, oblige le développeur à écrire des applications plus robustes. Alors que dans le monde .NET, cela est largement laissé à la discrétion du codeur. Certains développeurs aiment ces restrictions, tandis que d'autres préfèrent la liberté. Bien que les deux langages soient assez sécurisés, Java présente évidemment un léger avantage. Alors, pourquoi les grandes entreprises préfèrent-elles Java ? Je pense que je connais la réponse maintenant ! Ce qui me frustre le plus, c'est que... dans la plupart des exemples de code que vous voyez sur Internet, ces fonctionnalités avancées ne sont pas toujours utilisées... Je pense que si un nouveau développeur Java voit 'var' écrit partout dans la base de code , il va devenir fou ! Et les flux ? Que sont les flux ? Les développeurs Java adorent la boucle For ! En fait, même les boucles foreach sont assez rares dans le monde Java (et il y a peut-être une raison à cela : la boucle For est beaucoup plus optimisée). Mais ce ne sont pas de mauvaises fonctionnalités ! J'irai plus loin et je dirai que ces fonctionnalités sont incroyables ! Cela me fait vraiment mal lorsque j'écris des applications Android et que je remarque que presque nulle part dans l'API Android les énumérations ne sont utilisées ! Et c’est juste car Android a été écrit il y a de nombreuses années. Ce qui m'énerve le plus, c'est que je dois utiliser des constantes à chaque fois que j'ai besoin d'utiliser la fonction Activité pour les résultats sous Android, comme ceci : int PICK_IMAGE_FROM_GALLERY = 3000 Frère, c'est fou ! Et pourtant, les gens du monde entier en sont venus à l’accepter. Et même moi. Java manque également d'implémentation native des événements ! Si seulement il y avait des événements et des délégués comme C#... (Hé, créateurs du langage Java, si vous lisez ceci, vous devez ajouter des événements ! Et si vous les avez déjà ou si vous êtes en préparation, faites-le moi savoir ). Je vais maintenant vous dire quel pourrait être le plus gros défaut de l'écosystème Java. DOCUMENTATION!!! La documentation encombrée et inutile du site Web d'Oracle semble stupide et obsolète, au niveau de 2007. Il ne contient même pas toujours des exemples de code. Si vous commencez à chercher une fonctionnalité ou une méthode API relativement inhabituelle, vous trouverez une définition, une déclaration, des arguments ennuyeux, à quel package elle appartient - et c'est tout. Je pense que c'est absurde. Ne trouvez-vous pas cela absurde ? Pas d'extraits de code ? Nous, les développeurs, devons donc nous appuyer fortement sur des forums comme StackOverflow ou d'autres sites Web de programmation comme TutorialsPoint... Parfois, ils sont très utiles avec de bons exemples de code montrant cette fonctionnalité, mais d'autres fois, ils ne sont pas très utiles. Je recommande de comparer la documentation de Microsoft en C# avec la documentation d'Oracle en Java... Ciel et terre ! Vous ne me croyez pas ? Allez vérifier : Oracle et Microsoft. La documentation sur le site de Microsoft est magnifique ! Ils ont même un mode sombre ! Nous, les développeurs, sommes fous du mode sombre. Qu'en est-il de la documentation Oracle ? Comme je l'ai dit, c'est resté en 2007. Peut-être qu’il n’y avait pas de mode sombre à l’époque ? Donc, je veux dire que Java est incroyable ! Mais ce langage souffre grandement d’une documentation obsolète. Il s'agit pour la plupart d'anciens documents et d'anciens manuels qui ne mettent pas en évidence les nouvelles fonctionnalités indispensables telles que les threads, les variables et les énumérations. De nos jours, on dit que Java commence à devenir obsolète et sera remplacé par Kotlin, mais je ne suis pas d’accord. Car même si cela est vrai, il ne la remplacera pas avant longtemps. Cela prendra de très nombreuses années. Vous souvenez-vous que Scala a également essayé de le remplacer ? Alors qu’est-il arrivé ? Java régit toujours l'ensemble de l'écosystème JVM. Même si j'admets que Scala est très différent de Java, principalement en termes de fonctionnalités. Maintenant, enfin... encore une chose qui me procure plus d'émotion que tout ce qui existe dans le monde Java. Cela obtient le JDK. Pourquoi est-il si difficile de télécharger le JDK ? Ce que je veux dire, c'est que si j'ai besoin d'un JDK, une simple recherche Google me dirigera vers le site Web d'Oracle, j'y vais et trouve la version du JDK dont j'ai besoin. Jusqu'à présent, tout est relativement simple, mais pour le télécharger, je dois m'inscrire. Pourquoi devrais-je créer un compte sur Oracle et gérer ensuite leurs e-mails chaque semaine au lieu de simplement télécharger le JDK ? Gardez à l’esprit que Java est open source dès le premier jour ! Contrairement au C#, qui n’est devenu open source que récemment, en 2015. Donc, je suis déjà frustré et je vais sur le deuxième site Web dans les résultats de recherche Google. Cela me renvoie au site OpenJDK. J'y trouve le JDK et clique sur "télécharger". Mais (surprise surprise !) ils fournissent des liens vers des implémentations JDK à partir d'autres sites ! Parmi les sites il y a ce foutu Oracle, mais il y a aussi un lien vers le site de Red Hat. Oui, Red Hat est génial, c'est l'un des pionniers des sociétés open source dans le monde. Ok, je vais sur leur site internet ! Je vais le télécharger à partir de là ! Je clique sur ce lien, je trouve la version du JDK que je recherche et devinez quoi ? Je dois m'y inscrire aussi... (pause dramatique) C'est juste triste... Putain ! Qu'est-ce qui ne va pas avec ces gens ? Finalement, j'abandonne et j'installe Chocolatey (c'est comme apt-get, mais pour Windows. Je pense que c'est le premier gestionnaire de paquets largement distribué et utilisé pour Windows). Donc, après tout cela, je dois écrire une commande simple dans PowerShell comme : choco install jdk-1.8. Et je le fais ! (si vous êtes un développeur C#, vous savez à quel point il est facile d'obtenir le SDK .Net en seulement 2-3 clics, sans inscription ou quoi que ce soit du genre). Pour conclure mon long discours : Java est un excellent langage de programmation. Il est beau, fiable et possède (à mon avis) le meilleur IDE au monde - le célèbre IntelliJ IDEA de JetBrains. De plus, Java dispose d’une communauté très utile et d’un écosystème vaste et diversifié. Et je dis ceci : un développeur C#... Mais nous devons mettre à jour la documentation. Exemples de codes. API. Nous devons faciliter l’obtention du JDK. Dans l'ensemble, Java évolue dans la bonne direction, sa popularité a peut-être un peu souffert récemment, mais cela ne fera pas disparaître Java. Depuis de nombreuses années, elle figure en tête de liste des meilleures langues du monde ! J'utilise Java tout le temps et je continuerai de le faire à l'avenir.

Trois nouveaux outils Java à considérer en 2021

Source : OpenSource Malgré la popularité de Python, Go et Node.js, qui ont été activement utilisés ces dernières années pour mettre en œuvre des projets liés à l'intelligence artificielle, à l'apprentissage automatique et à Kubernetes, les technologies Java jouent toujours un rôle clé dans le développement d'applications d'entreprise. Selon Developer Economics, il y avait 8 millions de développeurs Java d’entreprise dans le monde au troisième trimestre 2020. Pause café #68.  Un avis honnête sur Java et son écosystème.  Trois nouveaux outils Java à considérer en 2021 - 2Le langage de programmation Java existe depuis plus de 25 ans et est constamment mis à jour. De nouveaux outils et cadres émergent qui peuvent dynamiser vos candidatures et votre carrière. La grande majorité des plates-formes Java ont été créées pour implémenter des processus de longue durée avec un comportement dynamique, conçus pour s'exécuter sur un serveur ou des machines virtuelles. Cela a changé en 2014 avec l’avènement des conteneurs Kubernetes. Désormais, les plus grands défis lors de l'exécution de Java sur Kubernetes sont les suivants : optimiser les performances des applications en réduisant l'empreinte mémoire, en accélérant les temps de démarrage et de réponse et en réduisant la taille des fichiers.

Trois nouveaux frameworks et outils Java

Les développeurs Java recherchent toujours les moyens les plus simples d'intégrer des outils populaires et des projets open source dans leurs applications Java. De nouveaux outils hautes performances augmentent considérablement la productivité du développement et encouragent davantage d'entreprises et de développeurs individuels à utiliser la pile Java. Aujourd'hui, nous allons parler de trois nouveaux frameworks et outils Java :

Quarkus

Quarkus est conçu pour développer des microservices cloud et des applications sans serveur. Il offre des temps de démarrage rapides, une petite taille de jeu de mémoire résidente (RSS) et une densité de mémoire élevée dans les plates-formes d'orchestration de conteneurs telles que Kubernetes. Selon le neuvième rapport annuel de JRebel, l'utilisation de Quarkus parmi les développeurs Java a augmenté de 6 % (moins de 1 % l'année précédente). Micronaut et Vert.x ont augmenté respectivement de 4% et 2% (l'année dernière - d'environ 1%).

Eclipse JKube

Avec Eclipse JKube, les développeurs Java créent des images de conteneurs basées sur des applications Java basées sur le cloud à l'aide de stratégies de création Docker, Jib ou Source-To-Image. L'outil génère également des manifestes Kubernetes et OpenShift au moment de la compilation et améliore l'expérience avec les outils de débogage, de surveillance et de journalisation.

Microprofil

MicroProfile résout les problèmes associés à l'optimisation de l'architecture d'entreprise des microservices Java sans introduire de nouveaux frameworks ni refactoriser des applications entières. De plus, les spécifications MicroProfile (par exemple, Health, Open Tracing, Open API, Fault Tolerance, Metrics, Config) continuent d'évoluer conformément à la mise en œuvre de Jakarta EE.

Conclusion

Il est difficile de dire quels frameworks ou outils Java conviennent le mieux aux développeurs Java d'entreprise. Tant qu’il existe des opportunités d’améliorer la pile Java et d’accélérer la croissance des entreprises, nous pouvons nous attendre à l’émergence de nouveaux cadres, outils et plates-formes. Consultez-les pour voir s’ils peuvent améliorer vos applications Java en 2021.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION