Serveur minecraft

Toutes choses Java – Un bon serveur Minecraft

Le 13 janvier 2020 - 10 minutes de lecture

À une époque où la demande de nouveautés est constante, en particulier en ce qui concerne la technologie, certaines choses continuent de résister à l'épreuve du temps. Java, par exemple, existe depuis des décennies, mais il reste le langage de programmation incontournable pour un nombre incalculable de développeurs. En fait, la langue n'est jamais tombée en dessous du n ° 2 de l'indice Tiobe, et en août 2019, elle était n ° 1.

C'est assez étonnant quand on pense à la myriade de changements technologiques et commerciaux qui se sont produits depuis le début de Java. Mais, comme avec une technologie de longue durée similaire, allant de Minecraft à Linux, Java n'a pas maintenu sa position en restant immobile. Le langage – et l'écosystème qui le soutient – a évolué avec les plateformes et les cas d'utilisation que les développeurs ciblent actuellement avec lui.

Rich Sharples, directeur principal de la gestion des produits pour les logiciels intermédiaires de Red Hat, abordera le cycle vertueux qui a été établi par des légions de développeurs adoptant une approche «Java d'abord», y compris les produits et services spécifiques qui mettent les capacités de Java en conformité avec les nouvelles. technologies telles que les conteneurs et Kubernetes, sans serveur et fonctionne comme un service.

ADM: Qu'est-ce que Java? Quand a-t-il été créé et quel problème résout-il?

Sharples: Java est un langage de programmation orienté objet et une plate-forme informatique polyvalents qui ont été lancés pour la première fois par Sun Microsystems en 1995. Bien qu'il ait été initialement conçu pour fonctionner dans des environnements à ressources limitées, comme les appareils ménagers et les navigateurs (via Java Applets et WebStart), où il a vraiment excellé dans le développement d'applications côté serveur critiques pour l'entreprise. L'environnement d'exécution Java (JRE) comprend toutes les bibliothèques de classes, les temps d'exécution et les outils dont un développeur a besoin pour développer des applications. Je dirais que quatre grands domaines d'innovation ont rendu Java plus adapté au développement d'applications métier que certains de ses contemporains:

  • Java a été conçu pour un monde en réseau – dès le premier jour, Java a eu des bibliothèques intégrées pour développer des applications en réseau en utilisant des protocoles standard ouverts comme HTTP.
  • Java est ouvert depuis le début. Il a été initialement développé en tant que standard ouvert pris en charge par de nombreux fournisseurs et a été assez tôt dans l'adoption d'un modèle de développement et de gouvernance open source. Cela a permis à Java d'être beaucoup plus grand que le seul fournisseur qui l'avait initialement créé (Sun Microsystems).
  • Il a popularisé le modèle de machine virtuelle où Java peut fonctionner partout où la machine virtuelle Java peut fonctionner sans avoir à coder ni même recompiler l'application pour une architecture de puce ou un système d'exploitation particulier.
  • Java a été introduit à peu près au même moment où les systèmes multiprocesseurs gagnaient du terrain et c'était l'un des premiers langages à utiliser ces avancées matérielles sans que le développeur n'ait à faire trop de travail. Cela a permis à Java d'évoluer pour prendre en charge la croissance des applications Web et mobiles à un moment où Internet gagnait en popularité pour les entreprises et les particuliers.

Ces avancées techniques et le modèle ouvert ont permis à un vaste écosystème multifournisseurs d'émerger rapidement dans ce qui était un monde assez fragmenté au milieu des années 1990. Pour la première fois, vous pouvez rapidement développer des applications en réseau sophistiquées et ne pas être lié à une architecture à puce unique, un système d'exploitation ou un fournisseur de technologie.

ADM: Qu'est-ce que l'indice Tiobe?

Sharples: L'indice Tiobe est un index de longue date mesurant la popularité des langages de programmation. Il fonctionne depuis 2001 et offre donc une perspective unique à long terme. L'index est basé sur des termes de recherche, il reflète donc l'intérêt général et ne prétend pas être un index de la meilleure langue pour une application donnée.

ADM: Comme le non. 1 langage de programmation sur l'index Tiobe, pourquoi Java a-t-il une telle tenue?

Sharples: Il est important de se rappeler que si l'industrie technologique évolue à un rythme rapide – le rythme aux niveaux inférieurs (puces, systèmes d'exploitation, langues, protocoles réseau) a des cycles d'adoption qui peuvent être mesurés en décennies – il est tout simplement impossible pour des industries entières de changer les fondements technologiques plus rapidement. À titre d'exemple – même une technologie rapidement adoptée et évolutive comme les conteneurs Linux, qui ont presque dix ans, et Kubernetes, 5 ans, seront probablement des adolescents avant d'avoir saturé le marché de masse.

Qu'est-ce que Java App Developer Magazine

ADM: Comment Java a-t-il évolué pour répondre aux exigences de l'écosystème technologique en évolution?

Sharples: Le modèle ouvert et multi-fournisseurs a été un atout majeur – il est très difficile pour un seul fournisseur de pionnier sur un marché pendant une période de temps prolongée – et prendre des perspectives différentes de diverses industries a été un atout majeur de l'évolution de Java. Le choix d'Open Source Java en 2006 a également été une décision qui n'a fonctionné que pour renforcer l'écosystème Java, car cela a permis à Sun Microsystems et plus tard à Oracle de partager la responsabilité de la maintenance et de l'évolution de Java avec de nombreuses autres organisations et individus.

ADM: Quels nouveaux outils et plates-formes sont utilisés avec Java?

Sharples: Java est toujours le langage de programmation le plus populaire pour les entreprises développant des applications critiques et cela ne changera pas de sitôt. Au cours des deux dernières années, Red Hat a utilisé nos racines profondes en Java et Kubernetes pour découvrir comment nous pouvons garantir que les organisations peuvent continuer à utiliser le langage avec lequel elles sont les plus productives (Java) dans le contexte de un environnement natif du cloud. Nous nous sommes retrouvés avec Quarkus. Quarkus, en un mot, vous permet d'optimiser vos applications et services pour un environnement de mémoire et de processeur limité où les applications peuvent être redéployées et redémarrées plusieurs fois par jour (vs en cours d'exécution pendant des mois) – nous devons donc également optimiser pour les frais généraux de démarrage. En utilisant quelque chose comme GrallVM, nous pouvons également compiler les applications et les services en code natif – économisant encore plus de temps et de mémoire.

ADM: Quels sont certains des nouveaux cas d'utilisation de Java?

Sharples: Avec Quarkus, Java peut très facilement rivaliser avec des langages plus légers tels que Node.js et Go dans FaaS et les environnements de microservices, de sorte que les développeurs peuvent toujours tirer parti de l'énorme écosystème d'outils, de cadres et de temps d'exécution pour Java. Il offre Java natif dans le cloud sans compromis.

ADM: Comment Java s'intègre-t-il avec les conteneurs et Kubernetes?

Sharples: Java a été conçu pour fonctionner sur de grandes machines multiprocesseurs avec beaucoup de mémoire. Vous pouvez à peu près garantir que vous êtes propriétaire de la machine et vous pouvez exécuter plusieurs applications pour chaque serveur JVM ou d'application. On s'attendait à ce que ces applications s'exécutent en continu pendant des mois ou des années et de nombreuses fonctionnalités intéressantes de la machine virtuelle Java moderne supposent cette nature à long terme. La JVM effectue des optimisations très intelligentes pendant son fonctionnement. Et beaucoup de travail a été consacré au développement de serveurs d'applications qui pourraient recharger dynamiquement les applications lors du changement ou mettre à jour dynamiquement les configurations sans avoir à avoir d'impact sur les autres applications en cours d'exécution.

Ce n’est tout simplement pas le monde dans lequel nous vivons aujourd’hui. Vous obtenez maintenant une tranche d'une machine virtuelle ou d'un conteneur ou même juste une fonction pendant quelques centièmes de seconde. Dans un monde natif du cloud, tout est immuable, donc si nous voulons apporter des modifications aux services, nous pouvons reconstruire l'image du conteneur en utilisant les dernières versions de tout – nous supprimons l'ancienne version et laissons Kubernetes redémarrer les nouveaux pods. Cela élimine complètement les problèmes de dérive opérationnelle que nous avions lorsque des serveurs et des applications individuels étaient corrigés et mis à jour à la volée en production.

Ainsi, beaucoup des capacités dynamiques de Java apportent beaucoup de poids et de complexité et offrent peu de valeur dans ces environnements. Ce poids prend la forme d'un démarrage et d'une initialisation lents et d'une utilisation accrue de la mémoire.

Comment Java Evolved App Developer Magazine

ADM: Qu'en est-il des technologies sans serveur et FaaS?

Sharples: FaaS, et plus largement sans serveur, est devenu un élément central du paradigme de programmation natif du cloud. Les développeurs peuvent atteindre l'agilité par le découplage et la distribution sans avoir à trop réfléchir à l'infrastructure sous-jacente afin qu'ils puissent passer plus de temps à réfléchir à leurs applications. Mais c'est un autre domaine où Java traditionnel n'est pas bien adapté et d'autres langages plus légers et plus agiles (comme node.js et Go) sont devenus des alternatives populaires à Java.

ADM: Pour l'avenir, comment voyez-vous le paysage évoluer?

Sharples: Compte tenu de l'attention et de l'adoption que nous constatons avec Quarkus, je pense que Java verra vraiment le jour pour les développeurs qui créent des applications, des services et des fonctions natifs du cloud modernes. En plus d'optimiser ces environnements à haute densité, Quarkus permet également aux développeurs d'utiliser à la fois un style de programmation impératif, c'est-à-dire. ce qu'ils connaissent ainsi que réactif / piloté par les événements – et je pense que cela facilitera la transition vers réactif / piloté par les événements, où nous nous dirigeons tous pour prendre en charge les architectures de prochaine génération.

À propos de Rich Sharples

À propos de Rich Sharples

Rich est le directeur principal de la gestion des produits au sein du groupe d'activités Plateformes d'applications chez Red Hat. Il a passé les vingt dernières années à évangéliser, utiliser et concevoir des middlewares d'entreprise. Il a précédemment travaillé pour Forte Software et Sun Microsystems et en tant que développeur de logiciels indépendant et consultant dans la construction de grands systèmes logiciels distribués pour les secteurs de l'espace, des transports et de l'énergie.

Il siège également au conseil d'administration de la fondation node.js. Dans ses temps libres, il aime courir, faire du vélo et tout ce qui le fait sortir.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.