Go signe son retour dans le top 10 de l'indice de popularité des langages TIOBE après une absence de près de six ans,
Python, C et Java conservent la tête du classement

Le langage Go de Google a réintégré le top 10 de l'indice Tiobe de popularité des langages de programmation. C’est en juillet 2017 que le langage est apparu pour la dernière fois dans ce top 10. Go se classe 10e dans l'édition de mars de l'indice, après s'être classé 11e le mois précédent. Il faut noter que Go n'a jamais obtenue une meilleure place que la dixième.

Voici le commentaire de Paul Jansen, PDG TIOBE Software, à ce sujet :

Citation Envoyé par Paul Jansen
Go est entré dans le top 10 de l'indice TIOBE ce mois-ci. Les ingénieurs semblent aimer le langage de programmation Go. Qu'est-ce qui le distingue ? Go n'est pas révolutionnaire, mais sa force réside dans la combinaison des bonnes fonctionnalités. Il a une simultanéité et une récupération de place intégrées, est typé statiquement et a de bonnes performances. Le fait que Go soit soutenu par la société Google aide également. Cela améliore la confiance à long terme dans le langage. Des applications populaires telles que Docker et Kubernetes ont été développées à l'aide de Go. Go restera-t-il dans le top 10 ? C'est une question intéressante, car la position numéro 10 de l'indice TIOBE semble changer presque tous les mois.
Voici le top 10 présenté par TIOBE :

Nom : top10.png
Affichages : 6170
Taille : 39,4 Ko

L'indice TIOBE Programming Community est un indicateur de la popularité des langages de programmation. L'index est mis à jour une fois par mois. Les notes sont basées sur le nombre d'ingénieurs qualifiés dans le monde, les cours et les fournisseurs tiers. Les moteurs de recherche populaires tels que Google, Bing, Yahoo!, Wikipédia, Amazon, YouTube et Baidu sont utilisés pour calculer les notes. Il est important de noter que l'index TIOBE ne concerne pas le meilleur langage de programmation ou le langage dans lequel la plupart des lignes de code ont été écrites. L'index peut être utilisé pour vérifier si vos compétences en programmation sont toujours à jour ou pour prendre une décision stratégique sur le langage de programmation à adopter lors du démarrage de la construction d'un nouveau système logiciel.

Un autre index, PYPL, n'incorpore pas Go dans son top 10. PYPL analyse la fréquence à laquelle les didacticiels de langage sont recherchés à l'aide de Google. Il faut attendre la douzième place pour voir Go qui a gagné une place par rapport à la même période l'année dernière. Voici son classement dans l'édition mars 2023 :

Nom : PYPL.png
Affichages : 1716
Taille : 10,2 Ko

Bien que ces baromètres ne représentent pas la réalité dans le monde de l'IT Pro francophone, force est de constater que, parmi les langages les plus demandés dans les offres d'emploi sur Developpez.com, Go a occupé la neuvième place.

Nom : developpez.png
Affichages : 1721
Taille : 75,4 Ko

Go et l'actualité

Go 1.20 est disponible

Go 1.20 apporte quelques ajouts notables au niveau des outils et des fonctionnalités du langage. L'optimisation guidée par les profils (PGO - profile-guided optimization) lors de la compilation est particulièrement remarquable. Cette version est la dernière à prendre en charge certaines anciennes versions de Windows et macOS.

Le langage de programmation Go de Google veut activer la télémétrie par défaut

Russ Cox est l'ingénieur de Google qui dirige actuellement le développement de Go, et il a présenté une proposition controversée, qui impliquerait d'activer la télémétrie dans Go par défaut. Cox a révélé la proposition sur GitHub.

La télémétrie, comme le décrit Cox, implique qu'un logiciel envoie des données du logiciel Go à un serveur pour fournir des informations sur les fonctions utilisées et sur les performances du logiciel. Il soutient qu'il est avantageux pour les projets open source de disposer de ces informations pour guider le développement.

Citation Envoyé par Russ Cox
Comment les développeurs de logiciels comprennent-ils quelles parties de leur logiciel sont utilisées et s'ils fonctionnent comme prévu*? La réponse moderne est la télémétrie, ce qui signifie qu'un logiciel envoie des données pour répondre à ces questions à un serveur de collecte.

Je pense que les projets de logiciels open source doivent explorer de nouvelles conceptions de télémétrie qui aident les développeurs à obtenir les informations dont ils ont besoin pour travailler de manière efficace et efficiente, sans collecter de traces invasives de l'activité détaillée des utilisateurs.

J'ai écrit une courte série d'articles de blog sur une telle conception, que j'appelle la télémétrie transparente, car elle collecte le moins possible (kilooctets par an à partir de chaque installation) et publie ensuite chaque élément qu'elle collecte, pour inspection et analyse publiques.

J'aimerais explorer l'utilisation de la télémétrie transparente, ou d'un système similaire, dans la chaîne d'outils Go, qui, je l'espère, aidera les développeurs de projets Go et les utilisateurs. Pour être clair, je suggère seulement que l'instrumentation soit ajoutée aux outils de ligne de commande Go écrits et distribués par l'équipe Go, tels que la commande go, le compilateur Go, gopls et govulncheck. Je ne suggère pas que l'instrumentation soit ajoutée par le compilateur Go à tous les programmes Go dans le monde : c'est clairement inapproprié.
La télémétrie transparente possède les propriétés clés suivantes :
  • Les décisions concernant les mesures à collecter sont prises dans le cadre d'un processus public ouvert.
  • La configuration de la collecte est automatiquement générée à partir des métriques activement suivies : aucune donnée n'est collectée qui n'est pas nécessaire pour les métriques.
  • La configuration de collecte est servie à l'aide d'un journal transparent inviolable, ce qui rend très difficile la fourniture de différentes configurations de collecte à différents systèmes.
  • La configuration de la collecte est un module Go mis en cache et proxy, de sorte que tout proxy Go local améliorant la confidentialité déjà utilisé pour les modules ordinaires sera automatiquement utilisé pour la configuration de la collecte. Pour atténuer davantage les inquiétudes concernant les systèmes de suivi par le téléchargement de la configuration de collecte, chaque installation ne se soucie que de télécharger la configuration chaque semaine avec une probabilité de 10%, de sorte que chaque installation ne demande la configuration qu'environ cinq fois par an.
  • Les rapports téléchargés n'incluent que le nombre total d'événements sur une semaine complète, pas n'importe quel type de suivi d'événements classés dans le temps.
  • Les rapports téléchargés n'incluent pas les ID utilisateur, les ID machine ou tout autre type d'ID.
  • Les rapports téléchargés contiennent uniquement des chaînes déjà connues du serveur de collecte : noms de compteur, noms de programme et chaînes de version répétées à partir de la configuration de collecte, ainsi que les noms des fonctions dans des programmes de chaîne d'outils Go spécifiques et non modifiés pour les traces de pile. Les seuls types de données autres que des chaînes dans les rapports sont le nombre d'événements, les dates et les numéros de ligne.
  • Les adresses IP exposées par la session HTTP qui télécharge le rapport ne sont pas enregistrées avec les rapports.
  • Grâce à l'échantillonnage, seul un nombre constant de rapports téléchargés est nécessaire pour atteindre un objectif de précision spécifique, quel que soit le nombre d'installations existantes. Plus précisément, seuls 16 000 rapports environ sont nécessaires pour une précision de 1 % à un niveau de confiance de 99 %. Cela signifie qu'à mesure que de nouveaux systèmes sont ajoutés au système, chaque système signale moins souvent. Avec une estimation prudente de deux millions d'installations Go, environ 16 000 rapports chaque semaine correspondent à un taux de rapport global bien inférieur à 2 % par semaine, ce qui signifie que chaque installation téléchargerait un rapport en moyenne moins d'une fois par an.
  • Les métriques calculées agrégées sont rendues publiques sous forme graphique et tabulaire.
  • Les données brutes complètes collectées sont rendues publiques, de sorte que les responsables du projet n'ont aucun avantage ou aperçu exclusif dans leur rôle de collecteur direct de données.
  • Le système est activé par défaut, mais la désactivation est simple, efficace et persistante.


Bien que l'idée derrière la proposition ne soit peut-être pas mauvaise, l'idée actuelle prévue peut effrayer les développeurs, actuels ou potentiels, du langage de programmation Go dans tout projet futur. Il faut rappeler que la plupart des développeurs et utilisateurs open source sont notoirement opposés à la plupart des formes de télémétrie.

Russ vise à introduire un concept de « télémétrie transparente » pour aider les projets open source à mieux comprendre le logiciel, en gardant à l'esprit la confidentialité. Dans ses billets de blog (une série de 3 articles), il mentionne que les sondages et les rapports de bogues sont insuffisants. Il est donc nécessaire d'introduire le moyen le plus simple de collecter des données sur l'utilisation d'une application (c'est-à-dire la télémétrie) tout en gardant les choses ouvertes à tous.

Cela signifie que l'ensemble du processus de collecte des données, de la manière dont elles sont traitées et de ce qui en résulte, est ouvert à tous.

La proposition actuelle prévoit d'ajouter la télémétrie avec une option de désactivation. En d'autres termes, la télémétrie est activée par défaut à moins que quelqu'un ne la désactive explicitement.

D'où certaines réactions.

« Cela devrait être désactivé par défaut », a écrit l'utilisateur Stolas. « Il n'y a aucune raison pour qu'une chaîne de développement ait un type de télémétrie activé par défaut. Ou, comme je comprends la nécessité qu'il soit activé par défaut, il devrait vérifier ce que l'utilisateur veut au premier démarrage ».

« Je pense que proposer un opt-in est une meilleure solution que d'aller sur un opt-out », a ajouté l'utilisateur w3bb. « Les personnes qui refuseraient la télémétrie à une invite sont des personnes qui ne veulent pas de la télémétrie, rendre la vie de ces personnes plus difficile est vraiment mauvais, que ce soit intentionnel ou non ».

Si de nombreux développeurs s'y sont opposés, quelques-uns l'ont soutenu.

Nom : filippo.png
Affichages : 1722
Taille : 37,6 Ko

C'est le cas de Filippo Valsorda, qui a travaillé dans l'équipe Go avant de prendre son envol dans la maintenance open source. Il a exprimé son soutien à la proposition Go et sa déception quant à la teneur de la critique :

Je suis très excité de voir la proposition de télémétrie transparente de Russ Cox. Il a quelques propriétés fondamentales qui la rendent très différente des alternatives actuelles, et je pense que c'est un bon modèle pour les projets open source. C'est assez simple pour avoir une intuition de son profil de confidentialité et assez puissant pour obtenir des signaux importants.

Il est triste de voir beaucoup de réactions négatives à cette proposition sous la forme de plaisanteries « intelligentes » sur Google.

@arp242@github.com a une bonne vision de Go vs Google, dont j'ai toujours voulu parler, mais j'ai toujours supposé que ce ne serait pas bien reçu de ma part.

Avoir un modèle mental brisé de « l'autre côté » n'aide la cause de personne. Cela conduit simplement à se parler les uns après les autres.

J'ai lu beaucoup de commentaires sur la proposition de télémétrie transparente au cours des dernières 24h, et je suis déçu. Il s'agit d'une grande conception non conventionnelle, il y a beaucoup de compromis à discuter et de détails à explorer. Lorsque Russ me l'a montré, j'ai fait au moins une douzaine de suggestions et beaucoup ont été mises en œuvre.

Au lieu de cela [je lis] : toute télémétrie opt-out est contraire à l'éthique ; Google est mauvais ; ce n'est pas nécessaire. Personne n'a même expliqué pourquoi la publication de l'une de ces données pouvait être un problème.

Cela me rappelle les commentaires de Searchtodon.
Emploi informatique 2021 : les langages de programmation les plus demandés et les mieux payés
Portail Emploi de Developpez.com
Emploi informatique 2021 : les tendances et les effets de mode

Sources : TIOBE, index PyPl

Et vous ?

Quel(s) est/sont votre/vos langage(s) de programmation préférez ? Pour quels types de projets l'utilisez/les utilisez-vous ?
Que pensez-vous de Go ?
Comment pouvez-vous expliquer son retour dans le top 10 de l'index TIOBE ?
D'ailleurs, que pensez-vous des méthodes d'évaluation de popularité de TIOBE ou des index concurrents ? Lesquelles trouvez-vous pertinentes et lesquelles le sont moins selon vous ? Pourquoi ?