Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

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

    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
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre expérimenté
    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...
    Des tutos de pixel art: https://twitter.com/OniMille

  3. #3
    Membre éclairé
    C devant Java et C# pour des logiciels d'entreprise... Bizarre

  4. #4
    Membre éclairé
    Python dans l'embarqué
    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...

  5. #5
    Responsable Arduino et Systèmes Embarqués

    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...

  6. #6
    Membre extrêmement actif
    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.
    Si la réponse vous a aidé, pensez à cliquer sur +1

  7. #7
    Membre expérimenté
    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.
    Des tutos de pixel art: https://twitter.com/OniMille

  8. #8
    Futur Membre du Club
    ruby rulez
    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 ^^

  9. #9
    Membre éprouvé
    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.

  10. #10
    Membre actif
    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"

  11. #11
    Membre à l'essai
    vous avé raison quelque part

  12. #12
    Futur Membre du Club
    Python reste le meilleur langage à l'exception du domaine du développement mobile
    Comment expliquez-vous que Python ne soit pas employé en développement mobile ?

    D'ailleurs, par développement mobile, entend t-on développement sur un OS spécifiquement mobile (e.g Android) ou bien tou développement d'application tactile y compris sur un OS de type Ubuntu ?

  13. #13
    Futur Membre du Club
    Java en quatrième position pour les applications mobiles???????????😲😲😲😲😲

  14. #14
    Nouveau Candidat au Club
    Quel langage de programmation choisir ?
    Après quelques années passées dans le monde informatique, j'entreprends, cette année-ci (2019), d'apprendre un langage de programmation à fond.
    Et voilà, je suis tombé sur ce blog.
    Je suis flatté d'apprendre le langage PYTHON.
    Toutefois j'ai besoin des avis de membre de la communauté "developpez" afin de soit me proposer les avantages et les inconvénients de PYTHON soit de me proposer un autre langage de programmation tout en me donnant aussi ses avantages et inconvénients.

    Merci d'avance.

  15. #15
    Membre éprouvé
    Python a pour lui le multiplateforme (qui s'en sert vraiment ?), une syntaxe très concise( très peu de lignes pour faire le job), de magnifiques outils pour la datascience et sans aucun doute une grande activité sur les forums de part son choix idéal pour l'apprentissage.
    Mais de là à le mettre premier ça me fait sourire.

    Je fais un peu d'enseignement et j'entends là bas parler de python chez les universitaires (et de R) et je bosse pour l'industrie où je n'ai jamais vu un gramme de python dans une quelconque appli métier.

    J'ai passé pas mal de temps à apprendre python en y voyant ce langage magique permettant de faire un peu de tout (typiquement mon besoin) mais j'ai renoncé car ce n'est pas vrai dans les faits car c'est de la bricole dans beaucoup des domaines évoqués :
    >Pour le web, c'est pas faux car il y a des trucs super comme django mais qui pourrait affirmer que c'est un langage de référence en web face à des php qui dominent tout, du node ou du .NET avec azure.
    >Pour le mobile, suffit de tester Kivy pour comprendre qu'on ne fera pas d’équivalent de ce qui se fait avec les outils qui vont bien. Je ne dis pas qu'on peut pas faire les choses, je dis juste que comparer Kivy à Android studio c'est juste impossible tellement l'un est abouti et l'autre bricolage.
    >Pour le PC desktop, c'est comme pour le mobile. Comparer du .NET WPF ou winform ou des choses comme C++Builder ou Qt à Python ce n'est pas possible tellement la différence d'intégration est immense. Oui il existe des binding pour faire du Qt ou d'autres trucs dans Python mais outre le temps de retard que ça a par rapport aux langages principaux, ça reste de la bidouille.
    >Pour l'embarqué c'est pire encore. Car oui on peut mettre du python sur des machines assez puissantes pour faire tourner l'interpréteur mais dans tout projet embarqué il y a une question de ressource et perso ça me fait mal au cœur de voir des trucs consommant 5W comme un RPi faire un truc, avec batteries énormes, panneaux solaires et système de ouf pour être étanche sans surchauffer alors qu'un microcontroleur programmé en C fait la même chose en consommant 10µA sous 3v soit 166000 fois moins, sans problèmes de chaleur ni besoin en panneaux solaires... Pour moi dire que l'on peut faire de l'embarqué en python c'est comme dire que l'on peut écraser une mouche avec un bulldozer : "c'est pas faux"

    Reste des points trés positifs :
    les scrypting (le petit bout de code bien pratique qu'on déploie en 2 s et qu'on adapte en 2 lignes) où python est formidablement efficace
    la datascience mais où python se résume à un langage de script, comme son concurrent dans le domaine, R, par exemple
    et l'enseignement, il est sans doute formidable pour l'initiation et un déroulé pédagogique.
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres