Nous avons récemment publié un article résumant une étude de l’IEEE sur la popularité des langages de programmation basée sur les offres d’emploi. Cet article a suscité de nombreux débats, notamment sur la question de savoir si les langages utilisés par l’IEEE dans son enquête étaient bien des langages.
La plupart d’entre nous connaissent les sondages et leurs résultats, en particulier pendant les campagnes électorales. Malheureusement, il est prouvé depuis longtemps que les sondages sont loin d’être exacts. Certains sondages penchent naturellement en faveur d’un parti ou d’un autre (non pas pour des raisons malveillantes, mais simplement en raison de la manière dont ils recueillent leurs données). D’autres sondages présentent des biais démographiques.
Les analystes politiques ont mis au point une technique permettant de dresser un tableau un peu plus précis à partir des données des sondages. Pour ce faire, ils agrègent les résultats de plusieurs sondages afin de niveler les tendances générales et d’obtenir une image plus précise de l’ensemble des candidats.
Nous rencontrons le même problème avec les enquêtes sur les langages de programmation. Une enquête sur les membres menée par l’IEEE, une société d’ingénieurs électriciens, est susceptible d’avoir des résultats différents de ceux d’une enquête sur le nombre de tutoriels proposés sur un langage, tels qu’ils sont trouvés sur Google (c’est l’enquête PYPL). Je détaillerai chaque enquête dans un instant.
Indice ZDNET de popularité des langages de programmation
Afin de compiler l’indice ZDNET de popularité des langages de programmation, nous nous inspirons du monde de l’analyse politique. Nous regroupons les données d’enquêtes provenant de neuf classements différents. Cela devrait nous permettre de voir quels sont les langages les plus populaires selon les méthodes d’enquête et de mieux comprendre l’intérêt et l’utilisation des langages.
Commençons par les raisons pour lesquelles les gens veulent savoir quels sont les langages les plus populaires. En général, du moins lorsqu’il s’agit d’étudiants, ils veulent apprendre ceux qui sont les plus demandés en matière d’emplois.
Dans d’autres cas, les programmeurs veulent évaluer si leurs compétences actuelles sont encore pertinentes ou s’il est temps d’envisager l’apprentissage d’autres langages. Les changements de popularité peuvent signifier qu’il est temps de rafraîchir ses connaissances dans un nouveau langage.
Votre premier critère doit toujours être d’utiliser un langage qui permet de faire le travail
Les développeurs qui conçoivent des produits veulent également connaître les langages les plus répandus. Car s’ils créent des API ou d’autres types de compatibilité, ils veulent s’assurer qu’ils produisent des solutions que les clients utiliseront. Bref, il est très important de prendre en charge les environnements les plus populaires.
Enfin, si vous démarrez un projet, vous devez choisir le langage dans lequel vous souhaitez le développer. Votre premier critère doit toujours être d’utiliser un langage qui permet de faire le travail. Si un langage est extrêmement populaire mais prend deux ans à coder, et qu’un autre est moins populaire mais prendrait deux mois pour votre application, vous devriez clairement choisir le langage le moins populaire.
Mais, toutes choses étant égales par ailleurs, le choix d’un langage plus populaire signifie généralement l’accès à davantage de programmeurs et de ressources, ce qui est également un élément important à prendre en considération.
Qu’est-ce qui définit la popularité ?
Quel est donc le langage le plus populaire ? La réponse à cette question n’est pas aussi simple qu’on pourrait le penser. La clé est de déterminer ce qui définit la popularité.
Cette question est tellement ouverte qu’un article de Wikipédia est consacré à la mesure de la popularité des langages de programmation. L’article présente un certain nombre de facteurs possibles pour mesurer la popularité, notamment
- Le nombre de fois où le nom du langage est mentionné dans les recherches sur le web, comme l’indique Google Trends
- Le nombre d’offres d’emploi qui mentionnent le langage
- Le nombre de livres vendus qui enseignent ou décrivent la langue
- Les estimations du nombre de lignes de code existantes écrites dans le langage, qui peuvent sous-estimer les langages qui ne sont pas souvent trouvés dans les recherches publiques
- Le nombre de projets dans ce langage sur SourceForge, Freecode et GitHub
- Le nombre de messages sur les forums et les groupes de discussion concernant le langage
Cette liste n’est pas exhaustive. Vous pourriez ajouter certaines de ces mesures à cette liste :
- Le nombre de cours vendus par les écoles de programmation
- Le nombre d’étudiants inscrits à des cours de programmation dans le monde entier
- Le nombre de vidéos sur chaque langue sur YouTube
- Le nombre de messages sur Reddit ou Stack Exchange à propos d’un langage
Vous voyez ce que je veux dire. La situation peut devenir encore plus complexe si l’on tient compte de la popularité d’un pays à l’autre. Certaines langues sont-elles plus populaires en Inde ? Aux États-Unis ? En Europe ?
En fin de compte, la popularité n’est pas une réponse à vecteur unique.
Agrégation de plusieurs enquêtes
C’est là que le bât blesse. Même s’ils savent que la popularité peut être mesurée sur la base d’un grand nombre de facteurs différents, les étudiants et les professionnels de l’IT veulent toujours savoir s’ils orientent leur carrière et leur entreprise dans la bonne direction. Nous nous sommes tournés vers neuf indices de cinq organisations pour recueillir nos données brutes. Il s’agit des indices suivants
PYPL
L’indice de popularité des langages de programmation tire ses données de l’activité de recherche sur Google. Il mesure la fréquence à laquelle les tutoriels d’un langage donné sont recherchés sur Google.
Il s’agit d’une mesure d’intérêt, mais pas nécessairement d’une mesure d’utilisation.
Tiobe
Tiobe est une société de services de qualité logicielle. Elle a créé un index régulièrement mis à jour basé sur le « nombre d’ingénieurs qualifiés dans le monde, les cours et les fournisseurs tiers ».
Les sites web populaires tels que Google, Amazon, Wikipedia, Bing et plus de 20 autres sont utilisés pour calculer les évaluations. Il ne s’agit pas nécessairement d’une mesure de l’utilisation.
Utilisation de GitHub en 2023
Chaque année, GitHub mène une série d’enquêtes. Son rapport de synthèse est d’une lecture passionnante. Les données de GitHub mesurent les principaux langages en fonction de leur utilisation.
Stack Overflow Professional Developers
Stack Overflow mesure l’utilisation par profil d’utilisateur. Dans cet indice, il mesure l’utilisation par les répondants qui s’identifient comme des programmeurs professionnels.
Il s’agit très probablement de personnes qui codent pour gagner leur vie.
Stack Overflow Learning to Code
L’indice suivant mesure l’utilisation par les personnes interrogées qui ont indiqué qu’elles apprenaient à coder. Cet indice est intéressant car il indique les langages que les nouveaux développeurs pensent qu’il est important d’apprendre.
Stack Overflow Other Coders
Stack Overflow ne définit pas spécifiquement ce groupe d’autres codeurs. Mais il s’agit de personnes qui ne se considèrent ni comme de nouveaux codeurs, ni comme des pros.
Je mettrais sur cette liste les personnes qui sont capables de coder mais qui utilisent le codage dans le cadre d’une autre profession ou qui réalisent des projets utilisant le codage sans être rémunérés pour leur travail de codage en particulier. Là encore, il s’agit d’une mesure de l’utilisation.
Indice IEEE Spectrum
L’IEEE est la plus grande organisation professionnelle technique de scientifiques, d’ingénieurs et d’autres professionnels. L’indice Spectrum mesure l’intérêt pour les langages de programmation « pondéré en fonction du profil du membre type de l’IEEE ».
Indice IEEE Jobs
Cet indice est décrit comme « ce que les employeurs recherchent ».
IEEE Trending
Cet indice est décrit comme « cherchant à repérer les langages qui sont dans l’air du temps ». Il s’agit des langages qui font parler d’eux.
Certains indices suivent un nombre relativement restreint de langues. D’autres consacrent beaucoup de temps à la longue traîne. Mon modèle d’agrégation a pris en compte les 20 premières langages (si elles sont fournies) de chaque index.
Quelle est donc la langue la plus populaire ?
J’ai combiné les différentes sources mentionnées ci-dessus. Pour réduire la liste, je n’ai retenu que les langages répertoriés dans au moins cinq index. PYPL a répertorié C et C++ ensemble, alors dans ce cas précis, je les ai séparés en deux listes et je leur ai donné le même poids.
Dans mon précédent article sur le sujet, la question de savoir si HTML (le langage des pages web) ou SQL (un langage d’interrogation pour les bases de données) sont réellement des langages a fait l’objet d’un débat. Plutôt que d’imposer mon propre jugement de valeur, je les ai simplement inclus parce qu’ils étaient répertoriés dans plus de cinq index. J’ai fait de même pour « shell », pour lequel j’ai inclus tout langage shell.
Le résultat est le classement figurant dans le tableau suivant :
Graphique combiné des mesures de popularité des langues. David Gewirtz/ZDNET
Mais le problème, c’est que cela ne permet pas de savoir sur quoi se concentrer. Pour en avoir le cœur net, j’ai procédé à une analyse des données. J’ai regroupé les données des neuf sources. J’ai ensuite pondéré chaque langue en fonction de sa place dans chaque graphique et du nombre de fois où elle apparaissait. J’ai pris les 19 premiers résultats et j’ai généré le graphique d’agrégation des groupes de langues suivant. Pour mémoire, je voulais 20 résultats, mais aucune autre langue n’apparaissait dans 5 index ou plus, ce qui fait que nous avons obtenu 19 résultats.
Analyse agrégée pondérée basée sur les critères décrits dans cet article. David Gewirtz/ZDNET
Quels sont les 5 groupes de langage ?
Comme vous pouvez le constater, il existe cinq groupes de langages.
- Le premier groupe comprend Python, JavaScript et Java. Ces langages sont tous très représentatifs dans le monde du codage de l’IA. Il ne fait aucun doute que vous devez vous familiariser avec ces trois langages.
- Le groupe suivant contient les langages classiques basés sur le C, ainsi que SQL et TypeScript (qui est une variante plus robuste de JavaScript).
- Viennent ensuite les langages qui étaient dominants il y a quelque temps, les langages web utilisés pour construire et exploiter les sites web.
- Suit une série d’autres langages qui gagnent en popularité (R, Dart) ou en perdent (Ruby).
- Enfin, en bas de l’échelle, on trouve Swift, le langage de prédilection d’Apple
Objective-C, l’ancien langage de programmation d’Apple, a pratiquement disparu de la liste depuis qu’Apple a lancé Swift. Mais alors qu’Apple se targue d’avoir de nombreux développeurs, Swift n’est manifestement pas un langage qui suscite l’intérêt des programmeurs.
La familiarité avec un langage n’est qu’une partie du puzzle
Encore une fois, qu’est-ce que cela nous apprend ? Si vous connaissez le codage moderne, vous vous rendez compte que vous n’utilisez pas seulement un langage. Vous développez toujours pour quelque chose, qu’il s’agisse d’un système embarqué, d’un iPhone, d’une application web ou d’une application serveur Microsoft.
La familiarité avec un langage n’est qu’une partie du puzzle. Par exemple, peu importe que vous aimiez Python ou le très ancien, mais toujours d’actualité, C. Si vous programmez des plugins ou des thèmes WordPress, vous écrivez en JavaScript et en PHP.
Peu importe la popularité des autres langages. Si votre employeur est un développeur Microsoft, vous avez intérêt à connaître le C#. Et si vous envisagez de coder pour une application d’intelligence artificielle, vous aurez besoin de Python et il ne serait probablement pas inutile de vous familiariser avec R.
Lire entre les lignes
J’aimerais attirer votre attention sur quelques autres points intéressants. Tout d’abord, le langage le plus utilisé dans l’index IEEE Job est SQL. C’est logique, sauf que ce n’est pas le cas. Il est très rare que vous ne fassiez que coder en SQL. Vous utilisez SQL pour accéder aux données, mais vous gérez ces requêtes de données dans un autre langage. Il est donc bon (voire nécessaire) de connaître le langage SQL. Cependant, le simple fait de suivre un cours de SQL ne vous garantira pas un emploi, un bon salaire ou une vie facile.
Cela est directement lié à la manière dont fonctionnent les offres d’emploi. La plupart des offres d’emploi dans le domaine de la programmation font état d’une variété de langages. Cela s’explique par le fait que la plupart des projets réels nécessitent une combinaison d’outils. Ainsi, même si vous voyez une annonce pour un programmeur Java, SQL fait probablement partie du lot. C’est pourquoi, si vous ne comptez que les langages sur les sites d’offres d’emploi, SQL est susceptible d’apparaître en tête de liste.
Deuxièmement, les langages spécifiques à Apple sont moins bien représentés que ce à quoi on pourrait s’attendre au premier abord, compte tenu de la popularité des applications iOS. Mais c’est logique. Si vous souhaitez créer votre propre application, vous devez apprendre ces langages. Mais il n’y a pas énormément d’entreprises qui embauchent des développeurs d’applications Apple, du moins en premier lieu. C’est pourquoi Swift est relativement loin dans le classement. L’Objective-C est en train d’être remplacé par Swift, et nous pouvons le voir chuter sous nos yeux.
À l’exception de Java, les langages de la famille C dominent toujours
À l’exception de Java, les langages de la famille C dominent toujours. C++, C, C# et même Objective-C sont tous des langages basés sur le C. Si vous ne voulez apprendre qu’un seul langage, ce ne sont plus ces langages que je vous recommanderais d’apprendre immédiatement. Aujourd’hui, je recommanderais plutôt Python, Java et JavaScript.
À ce stade de ma carrière, je peux programmer, de mémoire, dans une vingtaine de langages. Je peux généralement apprendre un nouveau langage en quelques jours. Cela s’explique par le fait que ma thèse d’école d’ingénieur portait sur la conception de langages et que j’enseigne la programmation par intermittence depuis 20 ans. Le fait d’être multilingue m’a aidé parce que je choisis presque toujours une langue pour le travail que je fais, et non parce que j’ai suivi un seul cours et que c’est tout ce que je sais. Cela peut sembler intimidant, mais vous pouvez le faire aussi.
Mon conseil, surtout si vous voulez vous lancer dans la programmation, est d’apprendre plusieurs langages et plusieurs framework. Construisez des choses dans ces langages. La programmation n’est pas seulement un exercice intellectuel. Vous devez réellement faire des choses.
Il est important d’être à l’aise dans plusieurs langages et framework, car l’industrie informatique évolue énormément. Apprendre à apprendre des langages est donc aussi important qu’apprendre un langage – et la meilleure façon d’y parvenir est d’en apprendre plusieurs.
Allez-y. Apprenez quelques langages. Construisez des choses géniales. Racontez-nous dans les commentaires ci-dessous.
Source : « ZDNet.com »