Java est un langage de programmation orienté objet fortement typé. Créé en 1995, il a reçu de nombreuses améliorations depuis lors. Occupe régulièrement une position de leader dans les classements des langages de programmation ainsi que dans les classements des salaires des développeurs de logiciels .

Et surtout, le classement de Java ne change pas d'année en année - il reste constamment élevé. Essayons de comprendre ce qui rend Java populaire.

1. Multiplateforme — Le code écrit est converti en bytecode, qui est ensuite exécuté par la JVM. Il existe des implémentations JVM pour une variété de plates-formes. Cela signifie que le code, une fois écrit, fonctionnera sur Windows, Linux et macOS, et même sur diverses plates-formes exotiques, telles que Arduino, les réfrigérateurs intelligents et les aspirateurs. En d'autres termes, le code fonctionnera sur différentes plates-formes et systèmes d'exploitation, sans qu'il soit nécessaire de l'adapter pour chacun d'eux.

2. Gestion automatique de la mémoire — Le développeur n'a pas besoin de penser à l'endroit où les variables sont stockées dans la RAM, de les lire/écrire manuellement ou de se soucier de l'intégrité des données. Lorsque vous résolvez le problème commercial d'un client, vous devez penser au problème, pas à comment et où écrire des octets.

3. Vitesse (compilateur JIT) — En plus de la compilation statique, qui se produit "à l'avance", Java prend en charge la compilation juste-à-temps (JIT). Ceci est très pertinent pour le code serveur, qui peut s'exécuter pendant des mois, voire des années à la fois. Le code fréquemment exécuté est compilé de différentes manières et son temps d'exécution est mesuré. Le résultat est que plus une application s'exécute longtemps, plus elle devient rapide. Et c'est vrai pour un serveur en cours d'exécution. Cool, non ?

4. Rétrocompatibilité - Le code écrit dans les anciennes versions de Java fonctionnera également sur les versions plus récentes. C'est pratique : une fois la spécification Java mise à jour, vous n'avez pas à réécrire la moitié de votre projet "à cause de la mise à jour", mais vous pouvez toujours obtenir les derniers correctifs de sécurité.

5. Orientation objet — Les humains pensent en termes d'objets : une table, un trolleybus, un smartphone. Les développeurs ne sont pas obligés de penser à des paradigmes inhabituels pendant leur travail, ce qui permet d'éviter les erreurs inutiles dans notre code. Au lieu de cela, nous pouvons nous concentrer uniquement sur les détails qui sont importants dans la tâche. Par exemple, du point de vue d'un architecte d'intérieur, la taille et l'emplacement d'une table dans une pièce sont importants. Sa date de fabrication, le nom de l'ouvrier qui a coupé le bois pour la table et le numéro de téléphone du chauffeur FedEx qui l'a livré ne sont pas importants. De plus, les données et les méthodes pour travailler avec ces données sont stockées ensemble dans le code.

6. Typage statique (échec rapide) — La compatibilité des types de variables est vérifiée lors de la phase de compilation. Chaque développeur compile le code, de sorte que les erreurs de compilation sont détectées presque instantanément. Plus l'étape à laquelle une erreur est découverte est tardive, plus il est coûteux de la corriger.

7. Code en tant que documentation — Java se lit comme des phrases en anglais. En conséquence, dans la plupart des cas, il n'est pas nécessaire de consacrer des efforts à la maintenance de la documentation, car tout développeur, après avoir examiné le code, comprendra ce que fait une méthode ou de quel comportement une interface est responsable. De plus, il existe des conventions intelligentes concernant la dénomination "correcte" de toutes les entités dans le code. Le nom d'une méthode indique souvent clairement ce qu'elle fait.

Par exemple, la méthode getContext() renvoie le contexte et le champ age est responsable du stockage de l'âge. En Java, la longueur des noms n'affecte pas la quantité de ressources système requises pour travailler avec les entités. Le C ne gère pas cela non plus : lorsqu'un développeur rejoint un nouveau projet, au lieu de saisir la logique du code, il doit le déchiffrer.

8. De nombreuses bibliothèques et frameworks open source - 99% des tâches auxquelles un développeur est confronté dans la pratique quotidienne ont déjà été résolues par quelqu'un. Au fil du temps, les bonnes solutions se transforment en bibliothèques et même en frameworks. Quel est le meilleur - googler pendant 5 minutes ou réinventer votre propre vélo avec des roues carrées ?

9. Grande communauté - Ce langage populaire a une énorme base de développeurs qui pose beaucoup de questions sur Internet, donne beaucoup de réponses, écrit beaucoup de code, et fait face et résout de nombreux problèmes. Et plus il y a de développeurs, plus le langage est populaire et plus il se développe rapidement. C'est un cercle vertueux.

De nombreuses "qualités" positives de Java ont déjà été mentionnées, mais j'aimerais en ajouter quelques-unes :

  • La JVM (Java Virtual Machine) gère la mémoire pour vous, ce qui la rend sûre et le langage n°1 pour les outils financiers.

  • Il est très pratique d'écrire le serveur principal (logique du serveur) en Java.

  • Jusqu'à récemment, Java était le premier langage pour les applications Android.

    Kotlin, un langage JVM qui diffère de Java par le "sucre syntaxique" et quelques fonctionnalités, prend désormais sa place. Passer de Java à Kotlin et inversement prendra plusieurs jours. Et étant donné que le cycle de mise à jour de Java est maintenant de six mois, la prochaine version de Java pourrait contenir tous les éléments à la mode pour lesquels Kotlin a été écrit.

  • De nombreuses entreprises célèbres utilisent Java : Google, Facebook, Twitter, Amazon, LinkedIn, eBay, CodeGym et bien d'autres encore.