Meilleurs langages en 2018 selon l'IEEE : Python conforte sa place de leader
Grâce à son ascension dans le machine learning et l'embarqué

Le , par Michael Guilloux, Chroniqueur Actualités
Le 31 juillet, l’Institute of Electrical and Electronics Engineers (IEEE) a publié son classement annuel des meilleurs langages de programmation. Il s'agit de son cinquième classement après ceux de 2014, 2015, 2016 et 2017. Dans celui de l'année dernière, c'est Python qui a pris la tête du classement général en dépassant Java et C. Et cette année, le langage de programmation de Guido Van Rossum conforte sa place de leader.

Avant de dévoiler le classement de cette année dans les détails, rappelons que l'IEEE est la plus grande association mondiale de professionnels techniques. Ces dernières années, l’organisation s’est érigée en baromètre des langages de programmation en livrant chaque mois de juillet son classement des meilleurs langages selon divers critères : popularité générale, langages en forte croissance, langages les plus demandés par les employeurs, les meilleurs langages pour le développement de sites et applications web, pour le développement d’applications mobiles, pour le développement d’applications d’entreprise, de bureau et scientifiques, et pour le développement de systèmes embarqués.

Il faut noter que les données collectées pour son classement proviennent de dix sources différentes. Ces données incluent le nombre de recherches effectuées sur les différents langages sur Google Search et les tendances provenant de Google Trends. Une partie des données provient du site de nouvelles Hackers News et des sites tels que Twitter, Reddit et Stack Overflow, où l'organisation a voulu mesurer le partage d'informations et ressources en ligne ainsi que l'activité sociale autour de chaque langage de programmation.

L’IEEE a aussi collecté des données sur GitHub pour mesurer le nombre de nouveaux dépôts et de dépôts actifs pour chaque langage de programmation. Pour pouvoir capter la demande des employeurs, l’organisation a également collecté des données des sites d’emploi CareerBuilder et Dice où elle a mesuré le nombre de nouvelles offres d'emploi aux États-Unis mentionnant les différents langages de programmation.

Le tout est complété par les propres données de l'IEEE. L’association des professionnels techniques dispose en effet d'une bibliothèque numérique avec plus de 3,6 millions d'articles de revues et de conférences couvrant un éventail de disciplines scientifiques et techniques. Ces données ont permis de mesurer le nombre d'articles qui mentionnent chacun des langages. Un système de classement a donc été construit en pondérant et en combinant un total de onze indicateurs à partir des dix sources de données.

La sélection initiale comprenait près de 150 langages de programmation, mais le classement final n’en a retenu que 47, au lieu de 48 comme l’année dernière. Le tableau suivant donne le top 10 des langages en 2018 (colonne de gauche) en comparaison au classement de 2017 (colonne de droite).


IEEE : top 10 des meilleurs langages de programmation de l’année 2018 (colonne de gauche) en comparaison au classement de 2017 (colonne de droite)

Après avoir pris la première place l'année dernière, on voit que Python creuse l'écart cette année. Aussi, C++ gagne deux places dans le nouveau classement de l'IEEE en passant de la 4e à la 2e place. Les langages C et Java, qui étaient respectivement 2e et 3e l'année dernière, perdent chacun une place cette année.

Pourquoi Python creuse-t-il l'écart dans le classement ?

D'après l'IEEE, cela s'explique d'abord par le fait que Python est maintenant répertorié en tant que langage pour l'embarqué. L’association des professionnels techniques explique qu'auparavant, l'écriture d'applications embarquées était la chasse gardée des langages compilés, parce que cela impliquait des machines avec une puissance de traitement et une mémoire limitées. Mais aujourd'hui, beaucoup de microcontrôleurs modernes ont assez de puissance pour héberger un interpréteur Python. Et un aspect intéressant de l'utilisation de Python dans ce domaine serait qu'il est très pratique dans certaines applications de communiquer avec du matériel via une invite interactive ou de recharger dynamiquement des scripts à la volée. « La croissance de Python dans un nouveau domaine ne peut que renforcer la popularité du langage », affirme l'IEEE. Mais ce n'est pas tout.

Une autre raison évoquée pour justifier la popularité croissante de Python peut être vue dans le petit déclin du langage R. De 2016 à cette année, le langage pour les traitements statistiques R est respectivement passé de la 5e à la 6e, et maintenant à la 7e place. L'IEEE explique que l'intérêt pour les grands volumes de données se tourne de plus en plus vers leurs applications en apprentissage automatique, et il existe des bibliothèques Python de haute qualité pour les statistiques et l'apprentissage automatique qui peuvent faire de Python un langage plus intéressant que R dans son propre domaine de prédilection.

Meilleurs langages suivant différents critères

Comme nous l'avons dit plus haut, l'IEEE a également classé les langages de programmation en fonction de certains critères spécifiques. Par exemple, les meilleurs langages pour le web, mobile, desktop ou encore l’embarqué, mais aussi les langages en forte croissance et ceux qui sont les plus demandés par les employeurs. On remarquera cependant que, quel que soit le critère de classement, Python reste le meilleur langage à l'exception du domaine du développement mobile dans lequel Python ne fait pas partie des différents candidats.

Top 10 des langages de programmation en forte croissance (ou qui gagnent rapidement du terrain)


Précisons ici qu'une comparaison par rapport à l'année dernière montre que le langage Go de Google a gagné deux places dans le classement des langages en fonction de leur tendance à gagner rapidement du terrain, en passant de la 7e à la 5e place, ce qui est notable selon l'IEEE. L'association des professionnels techniques explique toutefois que le bond le plus remarquable est enregistré par Scala, qui est passé de la 15e place en 2017 à la 8e place cette année. Y a-t-il un lien avec le recul de Java dans le classement général ? Possible. « Scala a été créé pour être une amélioration de Java, donc peut-être que la chute de Java dans le classement général doit quelque chose à la tendance ascendante de Scala », commente l'IEEE.

Contrairement à Scala, le langage R a chuté dans le classement des langages qui gagnent du terrain le plus rapidement, en passant de la 5e place en 2017 à la 13e place cette année. Cela peut être imputé à l’ascension de Python dans le domaine du machine learning et de la statistique. Swift, le langage d’Apple perd quant à lui 14 places en une année, en chutant de la 5e place en 2017 à la 19e place cette année.

Top 10 des langages les plus demandés par les employeurs


Précisons que le classement ici ne prend en compte que les données US. En France, Python arrive en 4e position dans le classement des langages les plus demandés par les employeurs, d'après les offres d'emploi postées sur le Portail Emploi de Developpez.com en 2017. Il représentait 7,8 % du total des offres. Le classement était largement dominé par Java (24 %), JavaScript (21 %) et PHP (19 %).

Top 10 des langages les plus populaires dans la communauté open source


Top 10 des meilleurs langages pour le développement de sites et applications web


Lors de notre dernier sondage à choix multiples sur les langages préférés pour le développement Web (réalisé en octobre 2017), les trois marches du podium ont été occupées par PHP (37 %), JavaScript (36 %) et Java (18 %). Python n'est venu qu'à la 5e place (14 %), derrière C#/ASP.Net (17 %).

Meilleurs langages pour le développement d’applications pour les appareils mobiles


Top 10 des meilleurs langages pour le développement d’applications d’entreprise, de bureau et d'applications scientifiques


Meilleurs langages pour le développement de systèmes embarqués


Pour l'embarqué, le dernier sondage (à choix multiples) réalisé sur Developpez.com montrait Python encore à la 5e place (avec 7 % des votes) derrière C (46 %), C++ (31 %), Assembleur (21 %) et Java (10 %). Si l'on écarte Python, c'est le même trio leader que le classement de l'IEEE. Mais notre sondage a été réalisé il y a un an. D'ici là, Python est-il monté en popularité dans l'embarqué ?...

Enfin, il est bon de savoir que l'IEEE propose aussi une application interactive qui vous permet de faire des comparaisons plus personnalisées ou choisir les pondérations pour les différents indicateurs, de sorte à pouvoir mettre l'accent sur ce qui vous intéresse le plus.

Sources : Communiqué IEEE, Classement IEEE interactif

Et vous ?

Que pensez-vous de ces classements et de la position de Python dans chaque domaine ?
Python est-il également adapté pour l’embarqué ?
Quels sont les classements qui semblent en adéquation avec cette expérience ?
Quel est votre langage préféré dans chacun des domaines dans lesquels vous travaillez ?
En France, quels langages estimez-vous les plus demandés par les employeurs ?

Voir aussi :

Emploi développeur 2017 : les langages les plus demandés et les mieux payés, Java, JavaScript et PHP plus demandés, mais Perl, Go et Scala mieux payés
RedMonk janvier 2018 : Go semble déjà essoufflé et Swift rattrape Objective-C, alors que Kotlin est en pleine ascension dans le classement
Index TIOBE : C sacré langage de programmation de l'année 2017, Python enregistre encore la plus forte progression annuelle sur PYPL
IEEE : Python devient le meilleur langage en 2017 en dépassant C et Java, découvrez le classement complet selon divers critères
Meilleurs langages de programmation en 2016 : découvrez les langages en forte croissance et les plus demandés par les employeurs, selon l'IEEE
Meilleurs langages de programmation en 2015 : découvrez les langages en forte croissance et les plus demandés par les employeurs, selon l'IEEE


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de onilink_ onilink_ - Membre éclairé https://www.developpez.com
le 03/08/2018 à 10:36
Je ne comprend pas l'idée d'utiliser python en embarqué.
J'imagine qu'on parle d'embarqué sur des SoC à ce niveau? Genre rpi etc?
Car vu certains micro contrôleurs je sais même pas si on a la place de mettre un interpréteur python dessus...
Avatar de Matthieu76 Matthieu76 - Membre confirmé https://www.developpez.com
le 03/08/2018 à 10:36
C devant Java et C# pour des logiciels d'entreprise... Bizarre
Avatar de pboulanger pboulanger - Membre du Club https://www.developpez.com
le 03/08/2018 à 11:53
Je ne comprend pas l'idée d'utiliser python en embarqué.
Python a de nombreux atouts pour l'embarqué:
  • interpréteur minimaliste (MicroPython tient dans très peu de place)
  • module que l'on peut mettre à jour à chaud
  • code python très succinct

Aldebaran Software propose des API python dans son robot Nao...
NumWorks et Casio l'ont intégré dans des calculatrices programmables...
Avatar de f-leb f-leb - Rédacteur/Modérateur https://www.developpez.com
le 03/08/2018 à 13:03
Citation Envoyé par onilink_ Voir le message
Je ne comprend pas l'idée d'utiliser python en embarqué.
Pour l'IoT, il y a la solution Zerynth qui pointe avec une VM flashée dans le micro (pour microcontrôleur 32 bits minimum, moins de 80 kb de mémoire flash et 5 kb RAM).
Faudra que je regarde ça...
Avatar de hotcryx hotcryx - Membre extrêmement actif https://www.developpez.com
le 03/08/2018 à 13:30
Citation Envoyé par Matthieu76 Voir le message
C devant Java et C# pour des logiciels d'entreprise... Bizarre
C# est le standard .NET, donc ce n'est pas surprenant.
Avatar de onilink_ onilink_ - Membre éclairé https://www.developpez.com
le 03/08/2018 à 14:24
Citation Envoyé par f-leb Voir le message
Pour l'IoT, il y a la solution Zerynth qui pointe avec une VM flashée dans le micro (pour microcontrôleur 32 bits minimum, moins de 80 kb de mémoire flash et 5 kb RAM).
Faudra que je regarde ça...
D'accord, comme je le pensais on parle quand même de "gros" microcontroleurs, j'ai personnellement l'habitude de travailler avec des petites puces (quelques ko de flash et de ram).
Dans ce cas obligé de passer par du C/C++ voir l'asm de la puce.
Avatar de rubyonrails rubyonrails - Candidat au Club https://www.developpez.com
le 03/08/2018 à 22:40
moi je touche ma bille en machine learning avec ruby classé genre 700 sur 1200 à un kaggle .. et avec un pc hors d'age (changé depuis d'ailleurs, je pouvais pas ouvrir les 27 millions de ligne du kaggle suivant)

l'important c'est pas l'outil c'est la méthode ^^
Avatar de koyosama koyosama - Membre éprouvé https://www.developpez.com
le 04/08/2018 à 4:57
Citation Envoyé par onilink_ Voir le message
Je ne comprend pas l'idée d'utiliser python en embarqué.
J'imagine qu'on parle d'embarqué sur des SoC à ce niveau? Genre rpi etc?
Car vu certains micro contrôleurs je sais même pas si on a la place de mettre un interpréteur python dessus...
C'est très facile à répondre. J'ai rencontré beaucoup d'universitaire qui ont très peu de background en programmation.
La plupart du temps cela commence toujours par "J"ai entendu dire qu'on peut faire de l'AI avec ...". J'avais de lui apprendre l'existence de C++. On dirait que des gens découvre d'un coup que l'AI existe.
Le Python est langage simple comparé à C ou C++. Et ceux qui font de l'AI ne sont pas forcément specialiste de ce genre de language. Le learning curve est trop grand quand python est relativement ok.

Comme PHP mal utilisé il peut devenir une usine à gaze. Mais certains leur domaines c'est l"AI et pas la programmation. C'est à dire l'insctruction à otimiser et la logique algorthmiques vers l'AI.
Et la plupart des AI c'est plus pour les banques, l'industrie, tous les secteurs a gros volumes de données avec une prises descisionnel importantes. En fait là ils veulent réduire les coûts au max.
Avatar de abelar_s abelar_s - Membre actif https://www.developpez.com
le 04/08/2018 à 22:11
Que veut dire une plateforme au moment où tout langage peut se transpiler en toute plateforme ?

Ruby a mruby (embarqué) et RubyMotion/Ruboto pour mobile, sans compter les opportunités que donne JRuby.

Bien sûr "exister sur une plateforme" ne veut pas dire "être populaire pour tel usage", mais c'est difficile d'utiliser des critères et métriques aussi... "faussement simples"
Avatar de Jonathan muswil Jonathan muswil - Candidat au Club https://www.developpez.com
le 10/08/2018 à 19:33
vous avé raison quelque part
Contacter le responsable de la rubrique Accueil