En clair, comme le note le PDG, si Python devance Java, ce serait la première fois depuis que Tiobe a commencé son indice de popularité des langages de programmation en 2001 que Java serait en dehors des deux premières places.
En septembre 2020, Java était le langage de programmation avec la plus forte baisse, la popularité du langage ayant baissé de 3,18 % depuis septembre 2019. Paul Jansen indiquait d'ailleurs à ce propos : « En 2003, le langage de programmation C++ était un vrai gagnant. Il a atteint les 17,53 % de part de marché en août 2003, se rapprochant de la deuxième place et devenant lauréat du prix du langage de programmation le plus utilisé en 2003. Depuis, le C++ s'est dégradé. Après 2005, il n'a plus atteint les 10 % d’utilisation et en 2017, il a atteint un creux historique de 4,55 %. Mais si on le compare à l'année dernière, le C++ est désormais le langage à la croissance la plus rapide du pack (+ 1,48 %). Je pense que la nouvelle norme C++ 20 pourrait en être l'une des principales causes. Surtout à cause de la nouvelle fonctionnalité des modules qui va remplacer le redoutable mécanisme d'inclusion. Le C++ bat les autres langages avec une tendance positive comme R (+ 1,33 %) et C# (+ 1,18 %). En revanche, Java est en réelles difficultés avec une perte de -3,18 % par rapport à l'année dernière ».
Notons que dans le top 10, seuls Java (4,32 %) et SQL (0,37 %) ont perdu en popularité.
Cette année a marqué le 25e anniversaire de Java. A l'occasion de son anniversaire, Oracle a annoncé la disponibilité de Java 15 avec des nouveautés et améliorations, entre autres :
- L'ajout des Hidden Classes : qui sont des classes qui ne peuvent pas être utilisées directement par le bytecode d'autres classes. Elles sont destinées à être utilisées par des frameworks qui génèrent des classes à l'exécution et les utilisent indirectement. Une Hidden Class peut être définie comme un membre d'une niche de contrôle d'accès et peut être déchargée indépendamment des autres classes.
- La réimplémentation de l'ancienne API Datagram Socket : cette fonctionnalité améliore la maintenabilité et la stabilité du JDK en remplaçant les implémentations sous-jacentes des API java.net.DatagramSocket et java.net.MulticastSocket par des implémentations plus simples et plus modernes. Les nouvelles implémentations seront faciles à adapter pour fonctionner avec des threads virtuels, actuellement explorées dans Project Loom.
- ZGC : ZGC a été intégré dans JDK 11 par JEP 333, dans le but d'améliorer la productivité en réduisant les temps de pause GC, de gérer des tas allant de relativement petits (quelques centaines de mégaoctets) à très grands (plusieurs téraoctets), ainsi que de poser un base pour les futures fonctionnalités et optimisations du GC utilisant des pointeurs et des barrières de charge colorés. Avec JEP 377, ZGC passe de la catégorie de fonctionnalité expérimentale à fonctionnalité de production.
- Les blocs de texte pour une meilleure lisibilité de chaînes de caractères : les blocs de texte sont destinés à simplifier la tâche d'écriture des programmes Java en facilitant l'expression de chaînes de caractères couvrant plusieurs lignes de code source, tout en évitant les séquences d'échappement dans les cas courants. Un bloc de texte est une chaîne littérale de plusieurs lignes qui évite la plupart des séquences d'échappement, formate automatiquement la chaîne de manière prévisible et offre au développeur le contrôle du format lorsqu'il le souhaite.
- Shenandoah : Shenandoah a été intégré dans JDK 12 par JEP 189. Il a été marqué comme expérimental afin de correspondre au statut d'autres nouveaux GC, notamment Epsilon GC et ZGC. JEP 379 fait passer récupérateur de mémoire Shenandoah d'une fonctionnalité expérimentale à une fonctionnalité de production, mais ne propose pas de changer le GC par défaut, qui reste G1, et ne propose pas de changer le processus de développement de Shenandoah, qui continuera à prendre en charge les dernières JDK et JDK LTS / STS populaires.
Mis à jour chaque mois, l'index de la communauté de programmation de TIOBE mesure la popularité des langages de programmation. Comme le souligne TIOBE, l'index n'est pas le reflet des meilleurs langages de programmation ou de ceux qui ont le plus de lignes de code. Au lieu de cela, les évaluations sont basées sur le nombre d'ingénieurs qualifiés, de cours et de fournisseurs tiers axés sur un langage en particulier, ainsi que sur les résultats des moteurs de recherche populaires tels que Google, Bing, Yahoo, Wikipedia, Amazon, YouTube et Baidu.
Pour les développeurs, l'index est également un moyen utile de déterminer si leurs compétences en matière de programmation sont à jour et de les aider à choisir le langage qu’ils voudraient peut-être adopter lors de la plongée dans un nouveau projet logiciel.
Le paysage des langages de développement en France
Une étude complète annuelle sur les langages les plus demandés, et les salaires proposés, basée sur les offres d'emploi postées sur le Portail Emploi de Developpez.com a été publiée. Cette étude fait suite à trois ans d'études du même genre réalisées au fur et à mesure des années ; celle-ci se base donc sur les données de l'année 2019, antérieure à la pandémie.
Concernant la méthodologie, l'ensemble des offres d'emploi postées sur le Portail Emploi a été pris en considération et les annonces demandant chaque technologie ont été comptabilisées. Dans le cas où une annonce demande plusieurs technologies (cas extrêmement courant), elle est donc décomptée pour chaque technologie étudiée, ce qui permet donc de dégager la demande globale pour chaque technologie, du moment qu'elle fait partie d'au moins une des compétences requises pour un poste. Notez également que la manière de déterminer les offres en fonction des technologies a évolué ce qui peut expliquer des petites différences sur les chiffres des années passées.
Voici la popularité des différents langages dans les 20 000 offres d'emploi postées en 2019 sur Developpez.com :
Emploi développeur 2019 : les langages les plus demandés et les mieux payés
Portail emploi
Source : TIOBE