Alors que l'Internet des objets (IoT) continue d'évoluer, il devient peut-être plus difficile de savoir quels outils conviennent le mieux pour l'exécution des différentes tâches. De la même manière, estimer la popularité relative des langages de programmation sans avoir une idée claire des prérequis peut s'avérer compliqué. Tenter enfin d'identifier les langages de programmation les plus populaires parmi 6,2 millions de développeurs IoT (et l'estimation date de 2016) rend l'exercice encore plus périlleux. Mais notre confrère de Network ne s'est pas laissé impressionner par le défi.

Les informations sur le sujet sont rares, cependant, si vous êtes prêt à rechercher des sources sur les sites Quora ou Medium, à écumer les sites d'entreprises et les blogs IoT, et si vous êtes prêt à remonter quelques années en arrière, vous pourrez voir émerger quelques dominantes.

Les principaux langages de programmation IoT

Une enquête réalisée en 2018 par la Fondation Eclipse auprès de développeurs IoT avait déjà classé les principaux langages de programmation utilisés pour l'IoT :

Java

C

JavaScript

Python

C++

PHP

C#

Assembler

LUA

Go

R

Swift

Ruby

Rust

Dans ce classement, il apparaît que les quatre premiers langages de tête - Java, C, JavaScript, et Python - n'ont pas bougé par rapport à la même enquête réalisée en 2017 par la Fondation Eclipse. À la différence près que l'enquête de 2018 a également essayé de classer les langages de programmation IoT en fonction des usages et des applications : les dispositifs IoT, les passerelles ou le cloud. Pour les dispositifs IoT, le C et le C++ devancent Python et Java, tandis que pour les passerelles, l'ordre classement change, Java, Python, arrivant devant C et C++. Pour le cloud, le classement est également modifié et donne : Java, JavaScript, Python et PHP.

D'après l'éditeur de Chicago Intersog, ces données permettent de déduire qu'« un capteur de base utilise probablement le langage C, car il peut travailler directement avec la RAM. Pour le reste, les développeurs pourront choisir le langage qui leur convient le mieux et convient le mieux à leur mode de développement ». Intersog ajoute à cette liste les langages Assembly, B#, Go, Parasail, PHP, Rust et Swift pour les applications IoT, dont l'usage sera fonction de la tâche.

Les langages de programmation IoT qui payent le plus

En 2017, IoT World avait adopté une approche différente, essayant de déterminer quels langages de programmation IoT étaient les plus rentables pour les développeurs. Les résultats ? « En moyenne, les développeurs Java et C peuvent s'attendre à de meilleurs salaires que les spécialistes des autres langages utilisés dans l'IoT, même si les codeurs Go seniors peuvent prétendre à un niveau de salaire potentiellement plus élevé. Les développeurs Go aguerris sont parmi les mieux payés de l'industrie, même si les développeurs de niveau junior et intermédiaire ont un potentiel de salaire plus modeste que leurs pairs ». Quant à la société de développement d'applications TechAhead, les six premiers langages de programmation utilisés pour les projets IoT en 2017 sont, dans l'ordre, les langages C, Java, Python, JavaScript, Swift et PHP. Enfin, sur Quora, la bataille sur les langages de programmation IoT continue de faire rage. Un fil de discussion ouvert en 2015 autour de la question « Quels langages de programmation seront les plus utiles dans l'IoT », suscite de nombreuses réponses. Mais finalement, on y retrouve les favoris habituels, avec une prédominance de Java, Python et C/C++.

Vers le multi-langage pour l'IoT ?

De toute évidence, il y a un consensus sur les langages de programmation IoT de premier plan, mais les rivaux ont leurs avantages et leurs cas d'usages. Java, le langage de programmation IoT le plus populaire, peut tourner dans de nombreux environnements - du back-end aux applications mobiles - et domine dans les passerelles et le cloud. Le langage C est généralement considéré comme le langage de programmation incontournable pour les périphériques IoT embarqués, tandis que le langage C++ est le choix le plus courant pour les implémentations Linux plus complexes. Quant à Python, il est bien adapté aux applications voraces en données. Compte tenu de la complexité de la situation, le site « IoT for All - Medium » est peut-être celui qui résume le mieux la situation. Il fait remarquer que « même si Java est le langage le plus utilisé pour le développement IoT, JavaScript et Python suivent de près dans différents sous-domaines du développement IoT ». Mais le pronostic le plus évident, visible partout sur le web, c'est que le développement IoT est multi-langage, et cela devrait probablement perdurer.